excel“IF”公式返回“0”(它不应该)
这是公式
=IF( AND( NOT(ISERROR(Table3[[#This Row],[lot_ID]])), Table3[[#This Row],[uniquness]]="unique" ), LEFT(Table3[[#This Row],[lot_ID]],3), "junk" )
以下是公式评估(省略了一些中间步骤,最后两个包含了这个难题)。
神秘真的让我感到
我有完全相同的问题。
原来,我有一个循环的参考,搞砸了。 我解决了它
- 去公式选项卡 – >
- 公式审计 – >
- 错误检查 – >
- 循环引用
它向我展示了一个循环参考的确切单元格。 一旦调整一切开始按预期工作。
可能的答案:
“IF”公式只会在这些条件下返回“0”值:
1. "Value_if_true" = 0 AND Logical_test = TRUE 2. "Value_if_false" = 0 AND Logical_test = FALSE 3. "Value_if_true" = "0" AND Logical_test = TRUE 4. "Value_if_false" = "0" AND Logical_test = FALSE 5. "Value_if_true" = (NULL) AND Logical_test = TRUE 6. "Value_if_false" = (NULL) AND Logical_test = FALSE
根据你的截图,你有“Value_if_true”和“Value_if_false”string。 所以我们必须检查Excel如何评估这些string:
在Excel(2010)中,进入
"Options" > "Advanced" > "Lotus Compatibility Settings for: [YourSheetName]"
检查是否选中“转换公式input”选项。 如果是的话,那么你可能find了你的问题。 你只需要取消选中它。 如果没有选中,则不要选中。
当“转换公式条目”选项启用时,Excel将string评估为0。 它会评估你的公式为"=IF(TRUE,0,0)"
,然后为0,就像你说的那样。
你可以做一个长度检查,如果真如果是假的:
= IF(B2 = “”,IF(LEN(C2)> 0,C2 “”),IF(LEN(B2)> 0,B2, “”))
我也有一个IF语句返回0的经验,当它应该返回是“或”否“(使用Office '13,16GB的PC)。
我的问题是程序需要处理公式和文件充满公式,并在几分钟后最终返回“是”或“否”。 但它确实造成了十分钟的困惑……足以让我去找Google。