阻止Excel评估OR()中不需要的expression式

IF(OR(ISNA(MATCH(8,B10:B17,0)),MATCH(8,B10:B17,0)>8),"",...BLAH...) 

我明白如何通过重新调整我的公式来解决这个问题。 我以这种方式来expression这一点。 你可以看到OR()语句检查第一个MATCH()是否返回NA。 当它发生时,OR()应该自动返回TRUE,而不是对第二个MATCH()进行求值,因为无论其他参数是否满足OR()返回true的条件。 你会注意到第一个和第二个MATCH()函数做同样的事情。 发生了什么事情是整个函数返回NA,因为第二个MATCH()正在执行,即使它不需要,OR()已经满足一个TRUE,因此函数应该返回“”。

这是一个错误还是这个故意?

在Excel公式或不短路评估(也不AND),但如果IF。 我想它是有意的,因为它一直是这样的。

为了扩大Charles所说的,OR和AND不能因为它们的原因而被短路。 该公式评估所有input以得出结果。 这就是说,你可以写一个UDF来做你正在问的东西。