我希望一个单元格仅当其他两个单元格相加为零时才进行计算。但这个公式似乎有问题:
=IF(AND(I20=0,J20=0,0,IF(I20>0,J20>0,(I20-J20+K19))))
我想不明白。
答案1
答案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) ))
这会起作用……尽管第二个结果为IF
FALSE 可能是一个问题(该部分之后什么都没有(I20-J20+K19)
)。如果这种情况永远不会发生,那就没问题了。但如果可以,你需要添加一些东西。而且……当然可以,否则你IF
根本不需要它,只需要它的(I20-J20+K19)
一部分。
但是,上面的公式可以工作:它测试两者是否都为 =0,如果是,则给出 0。然后它测试两者是否都为 >0,如果(I20-J20+K19)
是,则给出计算结果。没有提供其他任何内容,但如果其他情况可能发生,您可能希望这样做。如果没有其他情况可能发生,那么以下方法可以正常工作并且更简单:
=IF( AND(I20=0,J20=0), 0, (I20-J20+K19) )
回到原文,我说过它总是返回 FALSE。正如所写,测试AND
I20=0(真或假)、J20=0(真或假)、0(甚至不是测试……但在寻找 TRUE/FALSE 结果时,Excel 将“0”视为 FALSE,将任何其他值视为 TRUE……因此“0”给出 FALSE,因此它AND
立即将结果解析为 FALSE,然后寻找IF
要执行的操作,但一无所获。
这就是为什么我说,正如所写的那样,即使在末尾提供逗号IF
仍然不起作用。
答案3
最好向我们展示更多细节,比如一个简单的示例。
请检查该公式是否有帮助。
=IF(I20+J20=0, "", (I20-J20+K19) )