2016-12-06 106 views
1

非常簡單的問題。我有四列。如果第1列中的值爲False OR 0或N/A,那麼我想檢查第2列。如果第2列中的值爲False OR 0或N/A,那麼我想檢查第3列。如果第第3欄是假或0或N/A,那麼我想在第4欄,我已是如下的公式來打印值:使用IF語句檢查值

=IF(NOT(OR(ISNA(BJ2),BJ2=FALSE,BJ2=0)),BJ2, 
IF(NOT(OR(ISNA(BK2),BK2=FALSE,BK2=0)),BK2, 
IF(NOT(OR(ISNA(BL2),BL2=FALSE,BL2=0)),BL2,BM2))) 

所以BJ是塔1,BK塔2,BL 3欄,BM第4列。 該公式適用於False和0錯誤,但是當我添加ISNA部分時,它會崩潰。事實上,它根本沒有做任何事情。

列中的數據是字符串,FALSE(不是字符串)或#N/A作爲值不可用的錯誤。我用ISNA檢查了其中一個N/A值,結果爲True。因此OR語句應該返回爲TRUE,然後通過否定併成爲假。因此If語句應該跳轉到下一列。

是什麼導致這個不讀?

回答

1

的問題是公司,比如,BJ2=FALSEBJ2=0的表達式會N/A如果BJ2恰好是N/A。所以,如果發生這種情況,OR函數將回答N/A,因爲OR()評估它的所有參數! (不知道爲什麼)。