AND()和OR()的Excel延迟评估

时间:2012-08-23 05:38:46

标签: excel lazy-evaluation

Excel似乎不对AND()和OR()函数使用延迟评估。例如:

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

将导致值为#DIV / 0!。一种替代方法是使用if语句:

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

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

1 个答案:

答案 0 :(得分:1)

不要以为你能比你所做的更好。以下是其他一些选择:

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

虽然时间较长,但最后一个可以扩展到更多条件,并且可以通过将=2更改为>0轻松修改为OR。