Excel 似乎不对 AND() 和 OR() 函数使用惰性求值。例如:
=AND(A1<>0, B1/A1>.5)
将产生 #DIV/0! 的值。一种替代方法是使用 if 语句:
=IF(A1<>0, B1/A1>.5, FALSE)
但是,如果计划在 IF 函数(或可能的一些嵌套 IF)中使用 AND 函数,这将变得困惑。有没有更好(即更具可读性)的解决方案?
最佳答案
不要认为你可以做得比你所拥有的更好。这里有一些其他的选择:
=IF(A1,B1/A1>.5)
=IFERROR(B1/A1>.5,FALSE)
=COUNT(N(A1<>0),N(B1/A1>.5))=2
虽然更长,但最后一个可以扩展到更多条件,并且可以通过更改
=2
轻松修改为 OR至>0
.
关于AND() 和 OR() 的 Excel 惰性求值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12085352/