如果两个单元格为零公式的问题

如果两个单元格为零公式的问题

我希望一个单元格仅当其他两个单元格相加为零时才进行计算。但这个公式似乎有问题:

=IF(AND(I20=0,J20=0,0,IF(I20>0,J20>0,(I20-J20+K19))))

我想不明白。

答案1

真值表

请参阅真值表以了解您的公式(如果我正确理解了您的问题)。黄色公式适用于前 4 个条件。如果还需要第 5 个条件,请使用绿色公式。将术语“Calc”和“Don't Calc”替换为您的公式,以根据比较结果进行计算。

答案2

目前,由于元素缺少您想要的内容,因此本质上您有以下公式:

=IF( AND( 4 things being tested as TRUE or FALSE, one of which will always be FALSE so the result will always be FALSE ) )

因此,即使公式可以计算,它也会在其单元格中始终返回 FALSE。但是,它无法计算,因为作为IF一项测试,它实际上没有其他内容,因此编写不正确,如果不进行修复,Excel 甚至不会接受它。

需要注意的是,IF测试后必须始终至少有一个逗号,否则将不被视为充分书写。所以IF(1>0)不会起作用,而IF(1>0,)会起作用。按照书写方式,其结果看起来很奇怪,但它会起作用。

但你肯定不希望一个长语句AND出现在那里。你肯定希望第一个语句AND在原处,第二个语句AND在第二个语句之后IF。因此,像这样:

=IF( AND(I20=0,J20=0),  0,  IF( AND(I20>0,J20>0),  (I20-J20+K19)  ))

这会起作用……尽管第二个结果为IFFALSE 可能是一个问题(该部分之后什么都没有(I20-J20+K19))。如果这种情况永远不会发生,那就没问题了。但如果可以,你需要添加一些东西。而且……当然可以,否则你IF根本不需要它,只需要它的(I20-J20+K19)一部分。

但是,上面的公式可以工作:它测试两者是否都为 =0,如果是,则给出 0。然后它测试两者是否都为 >0,如果(I20-J20+K19)是,则给出计算结果。没有提供其他任何内容,但如果其他情况可能发生,您可能希望这样做。如果没有其他情况可能发生,那么以下方法可以正常工作并且更简单:

=IF( AND(I20=0,J20=0),  0,  (I20-J20+K19)  )

回到原文,我说过它总是返回 FALSE。正如所写,测试ANDI20=0(真或假)、J20=0(真或假)、0(甚至不是测试……但在寻找 TRUE/FALSE 结果时,Excel 将“0”视为 FALSE,将任何其他值视为 TRUE……因此“0”给出 FALSE,因此它AND立即将结果解析为 FALSE,然后寻找IF要执行的操作,但一无所获。

这就是为什么我说,正如所写的那样,即使在末尾提供逗号IF仍然不起作用。

答案3

最好向我们展示更多细节,比如一个简单的示例。

请检查该公式是否有帮助。

=IF(I20+J20=0, "", (I20-J20+K19) )

相关内容