excel - 使用IF语句检查值

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

很简单的问题。我有四列。如果第1列中的值为False OR 0 OR N/A,那么我要检查第2列。如果第2列中的值为False OR 0 OR N/A,那么我要检查第3列。第3列是False OR 0 OR 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语句应跳至下一列。

是什么导致这个不可读?

最佳答案

问题是,如果BJ2=FALSE恰好是BJ2=0,那么像N/ABJ2这样的表达式将求值到N/A。因此,如果发生这种情况,OR函数将使用N/A回答,因为OR()会评估其所有参数! (不知道为什么)。

关于excel - 使用IF语句检查值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41006048/

相关文章:

mysql - Excel 导出无法正确显示波斯语字符

excel - VBA Excel - 更新 ACCESS 中的记录

string - Scala 将字符串列表转换为多个变量

java - 左填充零到java中的字符串变量

javascript - 单选按钮(如果单击)

r - 在 R 中查找特定月份的第一天

linux - Shell - for 循环中递增数字

excel - 在Excel中将文本左右对齐?

javascript - jquery 过滤来自 json 的数据类似于 Excel 数据透视表

java - 如何将解密的 BigInteger 转换回字符串?