乐于分享
好东西不私藏

Excel全攻略 | IFERROR函数:公式报错别再显示#N/A了,一招搞定

Excel全攻略 | IFERROR函数:公式报错别再显示#N/A了,一招搞定

💡 文末有福利:关注「慕慕进化论」,在公众号聊天框回复「Excel」领取《Excel全攻略》60期合集PDF,系统自动发送,随用随查。

你有没有见过表格里出现"#N/A"、"#DIV/0!"这些乱七八糟的符号?发给老板的报告里有这种东西,真的很尴尬。我以前也被这个问题困扰过,直到学会了IFERROR函数。今天分享给大家,这个函数就是专门用来处理公式报错的,用法很简单,但能解决大问题。

01 IFERROR基本语法

语法就一行:=IFERROR(值, 错误时返回什么)

第一个参数是"可能出错的公式",第二个参数是"出错了显示什么"。如果公式正常,就返回公式的结果;如果出错了,就显示你指定的替代值。

举个例子

=IFERROR(A1/B1, "除数为零")

如果B1是0,正常的A1/B1会报#DIV/0!错误。加上IFERROR之后,就会显示"除数为零"这几个字,整洁多了。

02 常见错误类型

Excel里的错误值有七种,IFERROR能捕获其中大部分:

#N/A:找不到要查找的值。比如VLOOKUP找不到匹配项
#DIV/0!:除以零
#VALUE!:数据类型不匹配,比如数字和文字相加
#REF!:引用了无效的单元格,比如引用的单元格被删除了
#NAME?:函数名拼错了
#NUM!:数值超出范围,比如算平方根时用了负数
#NULL!:使用了不存在的交叉区域

IFERROR能捕获除了#NUM!和#VALUE!之外的绝大多数错误,使用场景最多的是#N/A和#DIV/0!。

03 经典搭配:IFERROR+VLOOKUP

这是最常见的用法,没有之一。VLOOKUP找不到数据时会显示#N/A,很丑。用IFERROR包一下就好看了。

原公式

=VLOOKUP(E2,A:C,3,0)

加IFERROR之后

=IFERROR(VLOOKUP(E2,A:C,3,0), "未找到该员工")

找不到时显示"未找到该员工",比#N/A专业多了。还可以显示空值:=IFERROR(VLOOKUP(E2,A:C,3,0), "")

04 IFERROR+INDEX+MATCH组合

INDEX+MATCH比VLOOKUP更强大,但同样会报#N/A错误。配合IFERROR使用:

=IFERROR(INDEX(B:B,MATCH(E2,A:A,0)), "查无此人")

如果 MATCH 找不到E2在A列的位置,INDEX就会报错。加上IFERROR后,查不到就显示"查无此人"。

05 IFERROR vs IFNA的区别

IFNA是专门针对#N/A错误的,精准打击。如果确定只会遇到#N/A错误,用IFNA更合适,语法一样:=IFNA(值, 出错时返回)

什么时候用IFNA?

当我们要保留其他类型的错误提示时。比如公式里#REF!错误可能是真正的bug,需要修复,不能用IFERROR直接吞掉。这时候用IFNA只捕获#N/A,其他错误照常显示。

=IFNA(VLOOKUP(E2,A:C,3,0), "") 只处理#N/A,其他错误会正常显示

06 多层嵌套:多个查找条件

有时候一个VLOOKUP不够,需要多个查找条件配合。比如我们想先在表格1里查,查不到再去表格2里查:

=IFERROR(VLOOKUP(E2,Sheet1!A:C,3,0), IFERROR(VLOOKUP(E2,Sheet2!A:C,3,0), "两个表都没有"))

第一个VLOOKUP找不到时,执行第二个VLOOKUP;第二个也找不到时,显示"两个表都没有"。

实际场景

公司有当月销售数据和历史销售数据两个表。查询时先查当月,查不到再查历史,确保不漏:

=IFERROR(VLOOKUP(A2,当月!A:D,4,0), VLOOKUP(A2,历史!A:D,4,0))

07 注意事项:别用IFERROR掩盖真正的错误

这是最重要的一点。IFERROR用起来很爽,但别滥用。

反面例子

=IFERROR(A1/B1, "")

如果B列本来就不应该为0,说明是数据录入有问题。用IFERROR把错误藏起来,反而掩盖了问题。

正确做法

先用IFERROR让报表好看,但同时要检查为什么会出现错误。#DIV/0!说明除数有问题,#REF!说明公式引用有问题——这些都是数据质量信号,不要轻易忽略。

好的用法是:IFERROR负责"优雅地处理预期内的查不到",而真正的公式错误要另想办法解决。

关注「慕慕进化论」,每周一个实用技巧,把学过的东西变成自己的。