請幫我看這函數哪裡錯~

2010-06-20 4:11 am
除了C18是時間格式外
其他都是文字格式
=OR(IF(AND(LEFT(E18,1)="D",RIGHT(E18,1)<>LEFT(F18,1)),"不上班",""),IF(AND(LEFT(E18,1)="N",RIGHT(F18,2)="二班"),"",IF(And(LEFT(E18,1)="N",RIGHT(F18,2)="一班",C18<TIME(7,30,0)),"未下班","不出現"))

回答 (3)

2010-06-22 6:35 am
✔ 最佳答案
第1種狀況"不上班"與第2種狀況"不出現"同時成立時
是否要以第1種情況"不上班"優先?

第1種狀況為空白與第2種情況"未下班"或"未出現"同時成立時
是否要以第1種狀況空白優先

2010-06-21 22:35:27 補充:
把公式改為:
=IF(AND(LEFT(E1,1)="D",RIGHT(E1,1)<>LEFT(F1,1)),"不上班",IF(AND(LEFT(E1,1)="N",RIGHT(F1,2)="二班"),"",IF(AND(LEFT(E1,1)="N",RIGHT(F1,2)="一班",C1<TIME(7,30,0)),"未下班",IF(LEFT(E1,1)="N","不出現",""))))
將公式複製往下拉
試試看有問題再聯絡
2010-06-20 5:17 am
OR
如果有任何一個引數的邏輯值為 TRUE,即傳回 TRUE;唯有所有引數的邏輯值均為 FALSE 時,才會傳回 FALSE
OR語法
OR(logical1,logical2,...)
Logical1,logical2,... 是 1 到 30 個您想要測試其為 TRUE 或 FALSE的條件。
註解
所有的引數都必須評估為邏輯值 TRUE 或 FALSE,或是在包含邏輯值的陣列或參照中。
如果陣列或參照引數中包含文字或空白儲存格,則這些值都會略過。
如果所指定的範圍中並未包含邏輯值,則 OR 會傳回錯誤值 #VALUE!。 你的問題在上面紅色區域,你的結果並非邏輯值


2010-06-19 21:19:28 補充:
紅色不見了,上面的倒數第2行,就是你出錯的地方,如下

如果所指定的範圍中並未包含邏輯值,則 OR 會傳回錯誤值 #VALUE!

2010-06-21 22:33:35 補充:
你應該設定階層式的情況,如非A則B,非A非B則C,非A非B非C則D,這種條件式才容易寫程式.
現在你分成兩個不同的條件,而且不知道你如果在符合兩個或兩個以上的條件下,要顯示何東西,建議你將1,2分寫成兩個欄位,再看看要如何將兩個程式湊成一個程式
您的下載地址
http://www.FunP.Net/114838
下載後將副檔名(.jpg)改成(.xls),我將你的兩個條件分別輸入在G,H欄.你再看要如何組合,如有問題再說
2010-06-20 4:50 am
請問這函數如何出錯 ??? 目的 ??? 有無範例說明 ???

2010-06-19 23:16:08 補充:
您的函數最外層為 OR , OR 為邏輯函數只傳出 TRUE / FALSE , 不會傳出
其他字串

2010-06-19 23:21:43 補充:
如果 E18 為 DA , F18 為 A一班 ---> 應該要上班
不過執行
IF(AND(LEFT(E18,1)="D",RIGHT(E18,1)<>LEFT(F18,1)),"不上班","")
卻顯示空白 ---> IF 的條件為 FALSE 而不是 TRUE

2010-06-19 23:23:16 補充:
您可以分段 debug 您的函數, 先自己試一下

2010-06-20 18:28:18 補充:
可以上傳部份範例到以下網址嗎 ???

http://www.FunP.Net


收錄日期: 2021-04-15 19:52:57
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20100619000016KK06998

檢視 Wayback Machine 備份