我在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!
错误。任何想法可能是错的。或者,如果我可以改写公式以使其有效。
由于
答案 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)=0
和func(A1,A5)
确实是不同的功能,或者这是错字在你的公式中?也许就是这种情况。