Excel 中的 IFERROR() 函数

17 Mar 2025 | 5 分钟阅读

IFERROR() 是 Excel 中的一个逻辑函数。它是一个专门设计用于捕获和处理公式和计算中错误的特殊函数。有时在使用 Excel 公式时,由于我们使用了不正确的单元格值,会出现一些意外的错误。在这种情况下,IFERROR 函数允许我们用其他不同的值替换这些错误消息。

更具体地说,IFERROR 会检查 Excel 公式,如果公式触发了错误,该函数将返回您指定的另一个值(空白、自定义文本、数值、布尔值);否则,如果公式没有评估出任何错误,它将直接返回公式的输出。

此函数可以处理 Excel 生成的 9 种公式错误,只要用户使用了任何不正确的数值或数据类型,例如:#N/A、#NUM!、#VALUE!、#REF!、#NAME?、#DIV/0! 或 #NULL! 错误。

语法

IFERROR (Value, [Value_if_error])

参数

Value (必需): 此参数表示要进行错误评估的第一个值。

Value_if_error (可选): 如果单元格中存在错误,此参数将用此值替换错误值。

示例

示例 1:在下面的案例中,我们将数据 A 除以数据 B,并显示了两个输出,一个使用了 IFERROR,一个未使用 IFERROR 函数。

Excel IFERROR() function

如您在上例中所示,将数据值 1 除以 0 时,Excel 会抛出错误,即 '#DIV/0!'。因此,使用 IFERROR,我们可以根据需要给出值,例如在这里我们将错误替换为数值 999。您也可以输入文本、特殊符号或一些逻辑值,让用户知道数据存在问题。

示例 2:将数据 A 除以数据 B,并显示不使用 IFERROR 函数和使用 IFERROR 函数的输出。

您还可以提供自定义文本消息,以指示用户数据存在问题。

Excel IFERROR() function

如您在上例中所示,将 1 除以 a 时,我们会得到一个错误(因为我们无法将数字与字母相除),不使用 IFERROR 时,我们会得到 #VALUE! 即错误。因此,使用 IFERROR,我们可以根据需要给出值,例如在这里我们将错误替换为自定义消息 "DATA IS WRONG"。

现在,每当 IFERROR 找到错误时,它都会显示相同的文本消息。您也可以输入数字、特殊符号或一些逻辑值,让用户知道数据存在问题。

示例 3:在下面的数据表中,使用 IFERROR 编写一个 Excel 公式,根据 C 列中的数据查找每位员工的月薪,如果出现错误,则将错误消息替换为“ERROR IN SALARY”。将格式更改为 £(英镑),不带小数点(使用 Round 函数避免小数)。

员工 ID指定年薪月薪
E001AVP£80,000
E002Analyst£50,000
E003Analystabcd
E004Analyst£40,000

在上一个问题中,我们将结合使用 IFERROR 和 Round 函数。IFERROR 函数将帮助捕获和处理公式中的错误,如果出现错误,则将其更改为“ERROR IN SALARY”。相反,ROUND 函数将对所有计算进行四舍五入(如果没有错误)。我们知道薪资数字总是数字,但对于 E003,薪资是 'abcd',这不是一个有效的数字。因此,在这种情况下会引发错误,我们将使用 IFERROR 函数来捕获和处理该错误。有关上述问题的解决方案,请参考下图。

Excel IFERROR() function

就是这样!现在,您可以自由使用 Excel IFERROR 函数来根据需要捕获和管理错误。

使用 Excel IFERROR 函数时需要记住的事项

  1. IFERROR 函数可有效处理各种 Excel 错误(特别是 9 种 Excel 公式错误),例如 #N/A、#NAME?、#DIV/0!、#NUM!、#NULL!、#REF! 和 #VALUE!。
  2. IFERROR 函数最好的地方在于它可以将错误消息替换为您自定义的文本消息、数字、日期或逻辑值,这看起来更专业。
  3. 如果您在 value 参数中传递一个空白单元格,它将被视为一个空字符串('')而不是错误。
  4. Excel IFERROR() 函数最初随 Excel 2007 一起推出,此后在所有后续版本中都可用,例如 Excel 2010、2013、2016 甚至最新的 Office 365。
  5. 要在 Excel 2003 及其所有早期版本中定位错误,您可以使用 ISERROR 函数与 IF 函数的组合。它也能以与 IFERROR 相同的方式工作。

IFERROR vs. IF ISERROR

现在,我们已经了解了 IFERROR 函数,它的用法、语法、参数、实现,您可能会问为什么有些 Excel 用户仍然倾向于使用 ISERROR 函数(与 IF 结合使用)。此外,您可能还会想知道 Excel 中 IFERROR 函数和 ISERROR 函数之间的区别,因为它们听起来都一样。

在下表中,我们简要讨论了这两个主要的疑问。

序号IFERRORISERROR
1.Microsoft Excel 的 IFERROR 是一个专门的函数,用于捕获和处理公式和计算中的错误。Microsoft ISERROR 函数检查各种公式错误,例如 #VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? 和 #NULL。
2.=IFERROR (Value, [Value_if_error])=ISERROR(value)
3.IFERRPR 函数还将 #N/A 考虑在内。ISERR 函数不包含 #N/A 错误。
4.IFERROR 函数随 Excel 2007 一起推出,此后在所有后续版本中都可用,例如 Excel 2010、2013、2016 甚至最新的 Office 365。要在 Excel 2003 及其所有早期版本中定位错误,用户可以使用 ISERROR 函数与 IF 函数的组合。因此,许多 Excel 用户仍然习惯使用 ISERROR 而不是 IFERROR 函数。
5.这是捕获和处理错误的简便方法。ISERROR 和 IF 函数的组合也可以用于捕获和管理错误。这只是实现输出的一种复杂方法。

在 Excel 中使用 IFERROR 的最佳实践

到目前为止,我们已经理解了 IFERROR 函数背后的逻辑,并认为它是 Excel 中捕获和管理错误的最简单方法。它可以轻松地将错误值替换为空白单元格、数值数据或自定义文本消息。但是,这并不意味着您应该用 IFERROR 函数覆盖每个 Excel 公式,因此以下建议可以帮助您保持平衡。

  1. 不要无故使用错误函数。如果您确定不会有错误,请不要使用它,因为公式越小,代码就越智能。
  2. 将公式的最小可能部分包含在 IFERROR 函数中。
  3. IFERROR 并不是处理错误的唯一方法,还有其他一些 Excel 函数,您可以使用它们来处理特定错误,范围更小。
    • 要捕获 #N/A 错误,请使用 IFNA 或 IF ISNA 函数。
    • 要捕获除 #N/A 之外的所有错误,请使用 ISERR 函数。