AND() 和 OR() 的 Excel 惰性求值

标签 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 函数,这将变得困惑。有没有更好(即更具可读性)的解决方案?

最佳答案

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

=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/

相关文章:

python - 在 python 中延迟抽取随机结果

excel - 如何使 Microsoft Web 浏览器对象在 Excel 2016 中工作

haskell - 懒惰和 I/O 如何在 Haskell 中协同工作?

Haskell 从文件 IO 返回惰性字符串

stream - 难以理解/可视化SICP流汉明数程序

java - Java有惰性求值吗?

C#技巧——通过字符串获取常量值

excel - 下标超出范围,Excel VBA,尝试在循环中创建数组

python - 在 pyWin32 中设置自动过滤器的条件

html - vba 从 web html 元素导入(价格)