0

我在 Excel 公式OR中使用 Excel 公式,并且对它的行为方式并不感到惊讶。

我正在使用以下 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!错误。任何想法可能是错的。或者,如果我可以改写公式以使其发挥作用。

谢谢

4

4 回答 4

5
=IF(ISERROR(funct(A1:A5)),"ERROR",IF(funct(A1:A5)=0,"ERROR",funct(A1:A5)))
于 2013-01-14T06:29:52.947 回答
1

我推荐蒂姆的答案,但如果func()是一个大函数,如你所说,那么你可能希望尽量减少它的使用次数。我假设应该在整个公式中调用相同的函数,即 func(A1:A5)

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

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

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

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

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

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

于 2013-01-14T12:32:53.470 回答
0

我认为您缺少一个右括号。

试试这个:

=IF(OR(ISERROR(funct(A1:A5)), func(A1,A5)=0), "ERROR", func(A1,A5))
于 2013-01-14T04:17:23.560 回答
0

=IF(OR(ISERROR(funct(A1:A5)), funct(A1,A5)=0), "ERROR", func(A1,A5))- 仔细查看您的公式得出的建议:确实是不同funct(A1,A5)=0的功能,或者这是您的公式中的错字?也许就是这样。func(A1,A5)

于 2013-01-14T07:01:20.220 回答