2

Excel 似乎不对 AND() 和 OR() 函数使用惰性求值。例如:

=AND(A1<>0, B1/A1>.5)

将产生 #DIV/0! 的值。一种替代方法是使用 if 语句:

=IF(A1<>0, B1/A1>.5, FALSE)

但是,如果计划在 IF 函数(或可能的一些嵌套 IF)中使用 AND 函数,这将变得混乱。有没有更好(即更具可读性)的解决方案?

4

1 回答 1

2

不要认为你可以做得比你所拥有的更好。这里有一些其他的选择:

=IF(A1,B1/A1>.5) 
=IFERROR(B1/A1>.5,FALSE)
=COUNT(N(A1<>0),N(B1/A1>.5))=2

虽然更长,但最后一个可以扩展到更多的条件,并且很容易修改为 OR 通过更改=2>0.

于 2012-08-23T07:58:06.723 回答