分类:逻辑函数 IFERROR是用来处理错误值的。它的语法如下: IFERROR(给定值,备选值)。 其中 给定值是需要进行判断的值。如果给定值是错误值,那么这个公式就返回备选值。如果给定值不是错误值,公式就返回给定值。 IFERROR经常跟其他公式结合使用,将其他公式作为第一个参数。例如:
如果公式A1/B1返回错误值,比如,B1=0,A1/B1返回: #DIV/0! 上述IFERROR公式将返回空字符串。 IFERROR可以处理Excel中的所有错误值,这些错误值包括: #N/A, #VALUE!, #REF!, #DIV/0!, #NUM! #NAME? 以及 #NULL!。 这些错误有不同的含义,具体请参见#Div/0! Excel中的那些错误值们! IFNA的工作方式跟IFERROR类似,语法如下: IFNA(给定值,备选值)。 如果给定值是#N/A错误值,就返回备选值,否则返回给定值。 IFNA只用来处理一种错误值,就是#N/A。其余的错误值不做处理。 既然IFERROR可以处理所有的错误值,为什么还需要IFNA函数? 实际上,大部分人经常使用的是IFERROR函数,例如:
这是使用IFERROR最常见的场景了,如果VLOOKUP函数匹配不到对应的结果,就会返回#N/A,这样,上面的公式就会返回一个空字符串""。 很少有人使用IFNA! 好像IFNA是个鸡肋一样的东西。 实际上,在上述VLOOKUP的场景中,我们推荐使用的是IFNA。 IFERROR的问题 IFERROR的问题是把所有的错误值都当作一个相同的结果(例如,空字符串"")。 问题是VLOOKUP这个公式会遇到很多种错误: 在这些错误中,只有#N/A才是正常的错误,因为它代表在查找区域没有匹配到合适的结果,所以我们可以用一个我们认为可以接受的“未匹配成功”的字符串(或者其他数值)来代替,就好像缺省值一样。 但是当VLOOKUP返回其余的错误值时,往往是不正常的,例如,返回#NAME?很可能代表公式中有某个地方写错了,这类错误我们需要发现问题所在,然后修改这些问题。 但是因为你嵌套了一个IFERROR,导致你根本不可能发现这些错误了,也就没有机会修正错误。 因此,对于像VLOOKUP,MATCH等函数,我们应该尽可能地使用IFNA函数:
这样就可以将其他错误类型暴露出来,以便于我们可以修改发生这些错误的原因。 自定义函数 底部菜单:知识库->自定义函数 面授培训 底部菜单:培训学习->面授培训 也可以在历史文章中学习Excel,Power Query,Power Pivot,Power BI,Power Automate各种技巧。 |
|