[算表] 更新,合併兩個條件式卻顯示錯誤

看板Office作者 (光芒)時間7年前 (2016/09/27 16:23), 7年前編輯推噓0(00112)
留言112則, 3人參與, 最新討論串1/1
軟體:excel 版本:2010 各位大大好 我現在有兩個條件式 1. =IF(H2=$R$1,IF(AND(P2>0,P2<=2),IF(OR(N2<1000,N2>7000),P2-0.5,P2-1), IF(OR(N2<1000,N2>7000),2-0.5,2-1)),"") 2.=IF(H2=$R$1,IF(AND(P2>0,P2<=2),IF(OR(N2<7000,N2>5999),2-0.5,2-1)),"") 需要把這兩個條件式合併為一個 但怎麼想就是想不出來= = 可以請各位大大幫忙看一下嗎?? 我檔案編號(N2)有二種條件 1.N2<1000 or N2>7000 2.5999<N2<7000 我自己試寫上去,公式如下 =IF(H2=$R$1,IF(AND(P2>0,P2<=2),IF(OR(N2<1000,N2>7000,5999<N2<7000), P2-0.5,P2-1,P2),IF(OR(N2<1000,N2>7000,5999<N2<7000),2-0.5,2-1,2)),"") 但一直顯示引數過多 可以幫我看一下嗎?? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.242.252 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1474964621.A.289.html

09/27 16:48, , 1F
二種條件是and,但原文寫的是or
09/27 16:48, 1F

09/27 16:48, , 2F
^^^第二種
09/27 16:48, 2F

09/27 16:55, , 3F
另外http://imgur.com/a/jH7pR 這方面要以那個false為準呢
09/27 16:55, 3F
※ 編輯: Tampa (1.160.242.252), 09/27/2016 18:30:32 ※ 編輯: Tampa (1.160.242.252), 09/27/2016 18:31:23

09/27 18:43, , 4F
判斷N2介於5999和7000不是5999<N2<7000這樣寫
09/27 18:43, 4F

09/27 18:45, , 5F
區間寫法規則原po前面已寫到and(p2>0,p2<=0)
09/27 18:45, 5F

09/27 18:56, , 6F
引數過多為if內value_if_true和value_if_false外多了一個
09/27 18:56, 6F

09/27 18:56, , 7F
引數的關係 http://imgur.com/a/9FBvy
09/27 18:56, 7F

09/27 20:32, , 8F
所以我P2要為第三個情況 要另外寫一個迴圈
09/27 20:32, 8F

09/27 20:34, , 9F
可用為真一個情況,為假時再加另一個判斷,加的這個判斷就
09/27 20:34, 9F

09/27 20:35, , 10F
又可以為真或為假。這為判斷,不是迴圈
09/27 20:35, 10F

09/28 11:42, , 11F
其實我建議把一個if做出一直列的輔助列
09/28 11:42, 11F

09/28 11:43, , 12F
可能會多出7-8個輔助列
09/28 11:43, 12F

09/28 11:44, , 13F
或者1個輔助列最多放3-4個if的運算
09/28 11:44, 13F

09/28 11:44, , 14F
最後,如果真的有需求,在合併起來,會比較清楚邏輯
09/28 11:44, 14F

09/28 11:47, , 15F
運算式中的p直列含意為合?
09/28 11:47, 15F

09/28 11:48, , 16F
如果算上p2 可能就有超過8種以上條件了
09/28 11:48, 16F

09/28 11:48, , 17F
或者你檔案寄給我啦
09/28 11:48, 17F

09/28 11:48, , 18F
我調整一下
09/28 11:48, 18F

09/28 11:54, , 19F
個人覺得原po要清楚的話,就把檔案提供到版上
09/28 11:54, 19F

09/28 11:55, , 20F
要求提供給單一版友那不是很奇怪嗎?那還要這個版集思廣意
09/28 11:55, 20F

09/28 11:55, , 21F
幹嘛
09/28 11:55, 21F

09/28 13:10, , 22F
你的第二行程式碼好像有異常
09/28 13:10, 22F

09/28 13:10, , 23F
2-1 =IF(OR(N2<7000,N2>5999),2-0.5,2-1)
09/28 13:10, 23F

09/28 13:11, , 24F
2-2 =IF(AND(P2>0,P2<=2),IF(OR(N2<7000,N2>5999),2-0.
09/28 13:11, 24F

09/28 13:11, , 25F
5,2-1))
09/28 13:11, 25F

09/28 13:12, , 26F
2-3 =IF(H2=$R$1,IF(AND(P2>0,P2<=2),IF(OR(N2<7000,N2
09/28 13:12, 26F

09/28 13:12, , 27F
>5999),2-0.5,2-1)),"")
09/28 13:12, 27F

09/28 13:12, , 28F
我把你的三層程式碼分離解釋
09/28 13:12, 28F

09/28 13:13, , 29F
21- 當n2<7000或>5999 yes=1.5 no=1
09/28 13:13, 29F

09/28 13:14, , 30F
2-2 出問題 當p2介於0~2的話,yes(2-1的結果),no(這裡沒
09/28 13:14, 30F

09/28 13:16, , 31F
輸入任何公式) ,但要看你的設定,當然也可以只有yes沒有
09/28 13:16, 31F

09/28 13:16, , 32F
no,當然程式也可以跑,但如果你另有所指,就代表這行你少
09/28 13:16, 32F

09/28 13:16, , 33F
了no的判斷
09/28 13:16, 33F

09/28 13:18, , 34F
2-3當h2=$R$1的話,yes(2-2結果),no(空白值"")
09/28 13:18, 34F

09/28 13:19, , 35F
結論:當你p2沒有在0-2時,你的判斷是什麼?,如果這裡沒有
09/28 13:19, 35F

09/28 13:19, , 36F
任何問題的話,我就可以繼續接著處理後續的問題
09/28 13:19, 36F

09/28 13:20, , 37F
資料編輯列內寫的稱為"公式",並不是"程式碼"也不是"程式"
09/28 13:20, 37F

09/28 13:22, , 38F
if判斷為真為假為true或false,也並不是以yes或no
09/28 13:22, 38F
還有 34 則推文
09/28 15:45, , 73F
活頁簿,一種就是設置VBA讓他會依照時間跟排序,點按紐後
09/28 15:45, 73F

09/28 15:46, , 74F
會將純文字複製到其他的工作表上
09/28 15:46, 74F

09/28 15:46, , 75F
這樣就不用一次跑7行20000個以上的公式了
09/28 15:46, 75F

09/28 15:46, , 76F
而且只有純文字的速度會快很多
09/28 15:46, 76F

09/28 15:47, , 77F
除非你的公式內的係數設定是會變動的,但說實在的,係數
09/28 15:47, 77F

09/28 15:48, , 78F
假如會變動的話,也是能另外找個儲存格做輸入調整,建議
09/28 15:48, 78F

09/28 15:48, , 79F
調整一下儲存資料的架構
09/28 15:48, 79F

09/28 16:00, , 80F
樓上是在回覆這篇嗎?那裡有放大量的資料和運算式
09/28 16:00, 80F

09/28 16:20, , 81F
另外公式內的"引數"而不是"係數"
09/28 16:20, 81F

09/28 16:20, , 82F
09/28 16:20, 82F

09/28 16:48, , 83F
感謝指點
09/28 16:48, 83F

09/28 17:03, , 84F
回S大,因為或許我學習的不多,如果比較複雜一點的情況下
09/28 17:03, 84F

09/28 17:03, , 85F
有整份檔案,大致上可以省略許多時間,在猜測問題的問題
09/28 17:03, 85F

09/28 17:03, , 86F
上,也可以大致上找出原po另外需要但沒注意到的部分
09/28 17:03, 86F

09/28 17:04, , 87F
可以加速學習,而且有些原po的檔案有個資或者隱私,不便
09/28 17:04, 87F

09/28 17:04, , 88F
直接公布是其次,主要可以直接在表單上做測試再回饋給板
09/28 17:04, 88F

09/28 17:04, , 89F
友經驗
09/28 17:04, 89F

09/28 17:10, , 90F
尤其是怕說 資料量其實很複雜,或許原po在前10%的資料分
09/28 17:10, 90F

09/28 17:11, , 91F
析上用大家提共的公式沒問題,但到了一半原po又才發現有
09/28 17:11, 91F

09/28 17:12, , 92F
其他的考量沒注意到,就還要花時間在解決一次,時間上的
09/28 17:12, 92F

09/28 17:12, , 93F
花費會比較多,我是以長時間的狀況來分析的話拉
09/28 17:12, 93F

09/28 17:13, , 94F
可以節省s大跟大家的時間
09/28 17:13, 94F

09/28 17:14, , 95F
對於較簡單問題來說,或許當下回復就能解決,但我可能還
09/28 17:14, 95F

09/28 17:14, , 96F
沒那麼強
09/28 17:14, 96F

09/28 17:15, , 97F
還是說s大另有其他的想法一起討論看看
09/28 17:15, 97F

09/28 17:16, , 98F
個人無其他想法,您和原po討論即可
09/28 17:16, 98F

09/28 17:30, , 99F
請s大多加包涵,因為我怕資料有法律上的問題,所以我都不
09/28 17:30, 99F

09/28 17:30, , 100F
敢隨便公布,除非是很簡單那種,如果是對方公司資料那類
09/28 17:30, 100F

09/28 17:30, , 101F
隨意公布我怕惹上麻煩,請多見諒
09/28 17:30, 101F

09/28 21:11, , 102F
只能說如是私信請就不要回15:44~15:48回文,除你們自己知
09/28 21:11, 102F

09/28 21:12, , 103F
道外,會有其他人知道在回什麼意思?
09/28 21:12, 103F

09/28 21:31, , 104F
?甚麼意思,我前面有想說會很麻煩,直接跟原po要檔案來
09/28 21:31, 104F

09/28 21:31, , 105F
參考阿,不大懂你的需求
09/28 21:31, 105F

09/28 21:35, , 106F
意思為時間15:44~15:48的回文,應為w大有取得原po的檔案
09/28 21:35, 106F

09/28 21:36, , 107F
因有寫到細節,如大量的資料跟運算式、7行20000個以上的公
09/28 21:36, 107F

09/28 21:36, , 108F
式的回文
09/28 21:36, 108F

09/28 21:38, , 109F
而這方面的回文應為w大和原po彼此的建議
09/28 21:38, 109F

09/28 22:06, , 110F
喔 以後我會注意
09/28 22:06, 110F

09/28 22:08, , 111F
我不大曉得這裡有這樣的規則 抱歉才來這板半個月左右
09/28 22:08, 111F

09/28 22:09, , 112F
下次我會注意
09/28 22:09, 112F
文章代碼(AID): #1NwYoDA9 (Office)
文章代碼(AID): #1NwYoDA9 (Office)