在Excel中使用OR函数时出错

时间:2013-01-14 04:12:08

标签: excel excel-formula

我在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)。

在我的实验中,我希望答案为“ERROR”,因为ISERROR(funct(A1:A5))会导致true

但我收到#VALUE!错误。任何想法可能是错的。或者,如果我可以改写公式以使其有效。

由于

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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

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

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

或者在早期版本中,你可以强制func(A1:A5)在等于零时通过将f除以1来给出错误(A1:A5):

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

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

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

答案 2 :(得分:0)

我认为你错过了一个近距离。

试试这个:

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

答案 3 :(得分:0)

=IF(OR(ISERROR(funct(A1:A5)), funct(A1,A5)=0), "ERROR", func(A1,A5)) - 仔细查看您的公式会产生以下建议:funct(A1,A5)=0func(A1,A5)确实是不同的功能,或者这是错字在你的公式中?也许就是这种情况。