第07章:IFERROR 函数 —— 优雅的"错误灭火器"

错误灭火器:把 #DIV/0! 变成友好提示

📥 本章配套练习册(数据已录入、写完公式自动判分):点击下载 第07章-IFERROR函数-练习.xlsx

难度:⭐⭐ | 建议用时:25 分钟 | 前置知识:第06章 IF

本章学习目标

  • 认识 Excel 的各种错误值及其含义
  • 会用 IFERROR 把难看的错误值替换成友好的提示
  • 掌握"先算,出错就兜底"的包装思维

一、这个函数是干什么的?

公式难免会出错:除以 0 出现 #DIV/0!,查找失败出现 #N/A!……满屏的 # 号既不美观,还会让引用它的其他公式连环出错。

IFERROR 的作用:让公式正常计算,一旦出错,就显示你指定的内容。相当于给公式买了一份"保险"。

生活化理解:IFERROR 就像灭火器——平时不干活(公式正常时它原样输出结果),着火时顶上去(公式出错时它显示你准备的替代品)。

二、语法结构

1
=IFERROR(要计算的公式, 出错时显示什么)
参数 说明
要计算的公式 任何可能出错的公式,如 B2/C2
出错时显示什么 错误时的替代内容:文字(加引号)、数字、或 "" 空白

执行逻辑:

1
2
3
公式能算出结果? ──能──→ 显示计算结果(IFERROR 不干预)
   │不能(出错)
   └──→ 显示你指定的替代内容

三、基础示例(手把手)

示例1:除法错误的处理

销售表:B 列销售额,C 列销量,计算单价 = 销售额 ÷ 销量:

A B C
1 产品 销售额 销量
2 产品A 5000 10
3 产品B 3000 0
4 产品C 8000 (空)

在 D2 输入普通公式 =B2/C2 并向下填充:

  • D2:5000÷10 = 500
  • D3:3000÷0 = #DIV/0! ✗(除以零)
  • D4:8000÷空 = #DIV/0! ✗(空白当 0 处理)

用 IFERROR 包装:

1
=IFERROR(B2/C2, "无销量")

结果:

  • D2:500(正常,IFERROR 不干预)
  • D3:无销量
  • D4:无销量

解读:把整个除法 B2/C2 塞进第一个参数,它出错时才启用第二个参数。注意是"包装"——原公式原封不动放里面。

示例2:出错显示空白

1
=IFERROR(B2/C2, "")

出错时什么都不显示,表格最干净。

示例3:出错显示 0

1
=IFERROR(B2/C2, 0)

出错按 0 处理,方便后续求和(文本"无销量"会让 SUM 忽略,0 则直接参与计算——按需要选择)。

四、进阶用法

1. IFERROR 能捕获所有错误

错误值 含义 典型场景
#DIV/0! 除以零 除数是 0 或空
#N/A 找不到值 VLOOKUP/MATCH 查找失败(第13章重点)
#VALUE! 数据类型错误 拿文字做数学运算
#REF! 引用失效 引用的行/列被删除
#NAME? 名称错误 函数名拼错
#NUM! 数值错误 如 DATEDIF 开始日期晚于结束日期

一个 IFERROR 通吃以上所有错误。

2. 黄金组合预告:IFERROR + VLOOKUP

第13章学 VLOOKUP 时会大量用到这个组合:

1
=IFERROR(VLOOKUP(...), "查无此人")

查找成功显示结果,查不到显示"查无此人",而不是冷冰冰的 #N/A。这是职场报表的标配写法。

3. IFERROR vs IF + ISERROR(了解即可)

老版本 Excel 没有 IFERROR,要写成 =IF(ISERROR(B2/C2),"",B2/C2)(公式要写两遍)。2007 版以后直接用 IFERROR 就行。

五、常见错误与注意事项

问题 说明
滥用 IFERROR 掩盖真错误 IFERROR 会吞掉所有错误,包括函数名拼错这种本该发现的 bug。建议先让公式跑通,再加 IFERROR 做"体面处理"
第二个参数忘加引号 显示文字要写 "无销量",不是 无销量
包装不完整 只包装了一半公式,如 =IFERROR(B2/C2,"")/D2 后面还可能出错
该报错的地方别用它 比如财务核对时,错误本身是重要信号,不应隐藏

六、练习题(请先独立完成)

练习数据准备

A B C
1 产品 销售额 销量
2 产品A 5000 10
3 产品B 3000 0
4 产品C 8000 (留空)
5 产品D 4000 8

题目

题号 题目 在何处作答
1 不用 IFERROR,直接计算单价(销售额÷销量),向下填充,观察哪些行报错、报什么错 D2
2 用 IFERROR 改写,出错时显示"无销量" E2
3 用 IFERROR 改写,出错时显示空白 F2
4 用 IFERROR 改写,出错时按 0 处理 G2
5 思考:计算"均价占比"= 单价 ÷ 全部单价合计,如果第1题的 D3 是错误值,对合计有什么影响?(动手试试 =SUM(D2:D5) ——
6 拓展:A7 输入文字"苹果",B7 输入 =A7*2,观察错误,再用 IFERROR 改成"无法计算" B7

七、练习讲解(做完再看)

第1题讲解

=B2/C2 向下填充后:

  • 产品A:500 ✓
  • 产品B:#DIV/0!(除以 0)
  • 产品C:#DIV/0!空白单元格作除数等同于 0
  • 产品D:500 ✓

记住这个知识点:空白单元格参与数学运算时被当作 0

第2~4题讲解

三题公式骨架相同,只是兜底内容不同:

1
2
3
=IFERROR(B2/C2,"无销量")     ← 文字提示,最友好
=IFERROR(B2/C2,"")           ← 空白,最干净
=IFERROR(B2/C2,0)            ← 数字0,方便继续计算

选择标准:给人看的报表用前两种;还要继续参与计算的列用第三种。

第5题讲解

=SUM(D2:D5) 的结果是 #DIV/0!——错误会传染:只要区域里有一个错误值,SUM 也跟着报错。这就是为什么报表里要及时处理错误值。用第4题的 0 兜底后,SUM 就能正常算出 1000。

第6题讲解

"苹果"*2#VALUE!(文本不能做乘法)。=IFERROR(A7*2,"无法计算") 显示"无法计算"。说明 IFERROR 不只管除法,任何错误都能兜住。


八、参考答案

题号 公式 产品A 产品B 产品C 产品D
1 =B2/C2 500 #DIV/0! #DIV/0! 500
2 =IFERROR(B2/C2,"无销量") 500 无销量 无销量 500
3 =IFERROR(B2/C2,"") 500 (空) (空) 500
4 =IFERROR(B2/C2,0) 500 0 0 500
5 =SUM(D2:D5) → 报错;改用第4题数据后为 1000 —— —— —— ——
6 =IFERROR(A7*2,"无法计算") 无法计算 —— —— ——

本章小结

  • =IFERROR(公式, 出错时显示的内容)正常时原样输出,出错时兜底
  • 空白单元格作除数 = 除以 0,会报 #DIV/0!
  • 错误值会传染给引用它的公式(如 SUM),要及时处理
  • 别滥用 IFERROR 掩盖真正的 bug,先跑通公式再包装

下一章:第08章:COUNTIF 函数

世界是你们
使用 Hugo 构建
主题 StackJimmy 设计