分享

IFERROR,IFNA

 ExcelEasy 2022-03-15

分类:逻辑函数

IFERROR

IFERROR是用来处理错误值的。它的语法如下:

IFERROR(给定值,备选值)。

其中

给定值是需要进行判断的值。如果给定值是错误值,那么这个公式就返回备选值。如果给定值不是错误值,公式就返回给定值。

IFERROR经常跟其他公式结合使用,将其他公式作为第一个参数。例如:

=IFERROR(A1/B1,"")

如果公式A1/B1返回错误值,比如,B1=0,A1/B1返回:

#DIV/0!

上述IFERROR公式将返回空字符串。

Excel中的错误值

IFERROR可以处理Excel中的所有错误值,这些错误值包括:

#N/A, #VALUE!, #REF!, #DIV/0!, #NUM! #NAME? 以及 #NULL!。

这些错误有不同的含义,具体请参见#Div/0! Excel中的那些错误值们!

IFNA

IFNA的工作方式跟IFERROR类似,语法如下:

IFNA(给定值,备选值)。

如果给定值是#N/A错误值,就返回备选值,否则返回给定值。

IFNA只用来处理一种错误值,就是#N/A。其余的错误值不做处理。

应该使用IFERROR还是IFNA?

既然IFERROR可以处理所有的错误值,为什么还需要IFNA函数?

实际上,大部分人经常使用的是IFERROR函数,例如:

=IFERROR(VLOOKUP(A2, $F$2:$K$30,2,0),"")

这是使用IFERROR最常见的场景了,如果VLOOKUP函数匹配不到对应的结果,就会返回#N/A,这样,上面的公式就会返回一个空字符串""。

很少有人使用IFNA!

好像IFNA是个鸡肋一样的东西。

实际上,在上述VLOOKUP的场景中,我们推荐使用的是IFNA。

IFERROR的问题

IFERROR的问题是把所有的错误值都当作一个相同的结果(例如,空字符串"")。

问题是VLOOKUP这个公式会遇到很多种错误:

在这些错误中,只有#N/A才是正常的错误,因为它代表在查找区域没有匹配到合适的结果,所以我们可以用一个我们认为可以接受的“未匹配成功”的字符串(或者其他数值)来代替,就好像缺省值一样。

但是当VLOOKUP返回其余的错误值时,往往是不正常的,例如,返回#NAME?很可能代表公式中有某个地方写错了,这类错误我们需要发现问题所在,然后修改这些问题。

但是因为你嵌套了一个IFERROR,导致你根本不可能发现这些错误了,也就没有机会修正错误。

因此,对于像VLOOKUP,MATCH等函数,我们应该尽可能地使用IFNA函数:

=IFNA(VLOOKUP(A2, $F$2:$K$30,2,0),"")

这样就可以将其他错误类型暴露出来,以便于我们可以修改发生这些错误的原因。


Power Excel 知识库    按照以下方式进入知识库学习
Excel函数   底部菜单:知识库->Excel函数

自定义函数  底部菜单:知识库->自定义函数

Excel如何做  底部菜单:知识库->Excel如何做

面授培训  底部菜单:培训学习->面授培训

也可以在历史文章中学习Excel,Power Query,Power Pivot,Power BI,Power Automate各种技巧。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多