使用IF语句检查值

时间:2016-12-06 22:22:20

标签: excel string if-statement error-handling boolean-logic

非常简单的问题。我有四列。如果第1列中的值为False OR 0 OR N / A,那么我想检查第2列。如果第2列中的值为False或0或N / A,那么我想检查第3列。如果值为第3列是假或0或N / A,然后我想在第4列打印值。我的公式如下:

=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,然后通过否定并且为false。因此,If语句应跳转到下一列。

是什么导致这不能阅读?

1 个答案:

答案 0 :(得分:1)

问题是,如果BJ2=FALSE碰巧是BJ2=0,那么N/ABJ2这样的表达式会评估为N/A。因此,如果发生任何这种情况,OR函数将回复N/A,因为OR()会评估其所有参数! (不知道为什么)。