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" ) 

以下是公式评估(省略了一些中间步骤,最后两个包含了这个难题)。

神秘真的让我感到

步骤1

第2步

第3步...

...第8步

第9步

我有完全相同的问题。

原来,我有一个循环的参考,搞砸了。 我解决了它

  1. 去公式选项卡 – >
  2. 公式审计 – >
  3. 错误检查 – >
  4. 循环引用

它向我展示了一个循环参考的确切单元格。 一旦调整一切开始按预期工作。

可能的答案:

“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。