2016-12-06 107 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()评估它的所有参数! (不知道为什么)。