在Excel中使用OR函数时出错

我在Excel公式中使用Excel公式OR ,并且对于它的行为方式有点惊讶。

我正在使用以下Excel公式:

 =IF(OR(ISERROR(funct(A1:A5)), funct(A1,A5)=0), "ERROR", funct(A1,A5)) 

我的理解是,如果ISERROR(funct(A1:A5)) True(or False) ,OR操作的结果将是True(或False)。

在我的实验中,由于ISERROR(funct(A1:A5))结果是true ,我期待答案是“错误”

但是我获得了#VALUE! 错误。 任何想法可能是错的。 或者,如果我可以改写公式,使其工作。

谢谢

我想你错过了一个closures括号。

尝试这个:

 =IF(OR(ISERROR(funct(A1:A5)), func(A1,A5)=0), "ERROR", func(A1,A5)) 
 =IF(ISERROR(funct(A1:A5)),"ERROR",IF(funct(A1:A5)=0,"ERROR",funct(A1:A5))) 

我build议Tim的答案,但如果func()是一个很大的函数,正如你所说,那么你可能想要最小化它的使用次数。 我假设应该在整个公式中调用相同的函数,即func(A1:A5)

在Excel 2007或更高版本中,您可以使用IFERROR函数:

=IFERROR(IF(func(A1:A5)=0,"ERROR",func(A1:A5)),"ERROR")

或者在早期版本中,可以强制func(A1:A5)通过func(A1:A5)除1得到一个等于零的错误:

=IF(ISERROR(1/func(A1:A5)),"ERROR",func(A1:A5))

编辑:进一步,你可以结合这两种方法在Excel 2007或更高版本,所以你只需要调用func一次:

=IFERROR(1/(1/func(A1:A5)),"ERROR")

=IF(OR(ISERROR(funct(A1:A5)), funct(A1,A5)=0), "ERROR", func(A1,A5)) – 仔细看看你的公式导致的build议: funct(A1,A5)=0func(A1,A5)是真的不同的函数,或者这是你的公式错字 ? 也许就是这样。