如何在Excel中使用IFERROR的公式示例

  • Share This
Michael Brown

本教程展示了如何在Excel中使用IFERROR来捕捉错误,并用一个空白单元格、另一个值或一个自定义信息来替换它们。 你将学习如何在Vlookup和索引匹配中使用IFERROR函数,以及它与IF ISERROR和IFNA的比较。

阿基米德曾经说过:"给我一个站立的地方,我就能移动地球。"一个Excel用户会说:"给我一个公式,我就能让它返回错误。"在本教程中,我们不会研究如何在Excel中返回错误,我们更愿意学习如何防止错误,以保持你的工作表干净,公式透明。

    Excel IFERROR函数--语法和基本用途

    Excel中的IFERROR函数被设计用来捕获和管理公式和计算中的错误。 更具体地说,IFERROR检查一个公式,如果它评估为一个错误,则返回你指定的另一个值;否则,返回公式的结果。

    Excel IFERROR函数的语法如下。

    IFERROR(value, value_if_error)

    在哪里?

    • 价值 (必填) - 检查错误的内容,可以是公式、表达式、数值或单元格引用。
    • 价值_如果_错误 (required) - 如果发现错误要返回什么,可以是一个空字符串(空白单元格),文本信息,数字值,另一个公式或计算。

    例如,当划分两列数字时,如果其中一列包含空单元格、零或文本,你可能会得到一堆不同的错误。

    为了防止这种情况的发生,使用IFERROR函数以你想要的方式捕捉和处理错误。

    如果错误,则为空白

    提供一个空字符串(")给 value_if_error 参数,如果发现错误,则返回一个空白单元格。

    =iferror(a2/b2, "")

    如果出错,则显示一个信息

    你也可以显示你自己的信息,而不是Excel的标准错误符号。

    =IFERROR(A2/B2, "计算错误")

    关于Excel IFERROR函数,你应该知道的5件事

    1. Excel中的IFERROR函数可以处理所有的错误类型,包括#DIV/0!、#N/A、#NAME?、#NULL!、#NUM!、#REF!和#VALUE!。
    2. 取决于以下内容 value_if_error 参数,IFERROR可以用你自定义的文本信息、数字、日期或逻辑值、另一个公式的结果或空字符串(空白单元格)替换错误。
    3. 如果 价值 参数是一个空白单元格,它被视为一个空字符串(''),但不是一个错误。
    4. IFERROR是在Excel 2007中引入的,在Excel 2010、Excel 2013、Excel 2016、Excel 2019、Excel 2021和Excel 365的所有后续版本中都可以使用。
    5. 要在Excel 2003和早期版本中捕获错误,请将ISERROR函数与IF结合起来使用,如本例所示。

    IFERROR公式示例

    下面的例子展示了如何在Excel中结合其他函数使用IFERROR,以完成更复杂的任务。

    Excel的IFERROR与Vlookup

    IFERROR函数最常见的用途之一是告诉用户,他们要搜索的值在数据集中不存在。 为此,你可以用IFERROR来包装一个VLOOKUP公式,像这样。

    iferror(vlookup( ... ), "未找到")

    如果查询值不在你要查询的表中,普通的Vlookup公式会返回#N/A错误。

    为了让你的用户放心,将VLOOKUP包裹在IFERROR中,并显示一个更有信息量和用户友好的信息。

    =IFERROR(VLOOKUP(A2, 'Lookup table'!$A$2:$B$4, 2,FALSE), "未找到" )

    下面的截图显示了Excel中的这个Iferror公式。

    如果你想只捕获#N/A错误而不是所有错误,请使用IFNA函数而不是IFERROR。

    关于更多Excel IFERROR VLOOKUP公式的例子,请查看这些教程。

    • 使用Vlookup的Iferror来捕获和处理错误
    • 如何获得第N次出现的查询值
    • 如何获得所有出现的查询值

    嵌套IFERROR函数在Excel中做连续的Vlookups

    当你需要根据前一个Vlookup的成功或失败来执行多个Vlookup时,你可以将两个或多个IFERROR函数嵌套在一起。

    假设你有一些来自公司区域分支机构的销售报告,你想得到某个订单ID的金额。 以A2作为当前表的查询值,A2:B5作为3个查询表(报告1、报告2和报告3)的查询范围,公式如下。

    =IFERROR(VLOOKUP(A2,'报告1'!A2:B5,2,0),IFERROR(VLOOKUP(A2,'报告2'!A2:B5,2,0),IFERROR(VLOOKUP(A2,'报告3'!A2:B5,2,0), "没有找到"))

    其结果将类似于这样。

    关于公式逻辑的详细解释,请看如何在Excel中做连续的Vlookups。

    数组公式中的IFERROR

    正如你可能知道的,Excel中的数组公式是为了在一个公式中进行多种计算。 如果你提供一个数组公式或表达式,导致在 价值 下面的例子显示了详细情况。

    比方说,你有 共计 在B栏和 价格 在C列,你想计算的是 总数量 这可以通过使用以下方法实现 阵列公式。 其中B2:B4区域的每个单元格除以C2:C4区域的相应单元格,然后将结果相加。

    =sum($b$2:$b$4/$c$2:$c$4)

    只要除数区没有0或空单元格,该公式就能正常工作。 如果至少有一个0值或空单元格,就会返回#DIV/0!错误。

    要解决这个错误,只需在IFERROR函数中做除法。

    =sum(iferror($b$2:$b$4/$c$2:$c$4,0))

    该公式所做的是用B列的一个值除以每一行C列的一个值(100/2,200/5和0/0),并返回结果数组{50;40;#DIV/0!}。 IFERROR函数捕捉所有#DIV/0!的错误并将其替换为零。 然后,SUM函数将结果数组{50;40;0}中的数值相加,输出最终结果(50+40=90)。

    注意:请记住,数组公式应该通过按Ctrl + Shift + Enter快捷键完成。

    IFERROR与IF ISERROR

    现在你知道了在Excel中使用IFERROR函数是多么容易,你可能会想,为什么有些人仍然倾向于使用IF ISERROR组合。 与IFERROR相比,它有什么优势吗? 没有。 在Excel 2003及以下版本的坏日子里,当IFERROR还不存在时,IF ISERROR是唯一可能捕获错误的方法。 在Excel 2007及以后,它只是一种更复杂的方式来达到同样的效果。

    例如,为了捕捉Vlookup的错误,你可以使用以下任一公式。

    在Excel 2007 - Excel 2016中。

    iferror(vlookup( ... ), "未找到")

    在所有Excel版本中。

    IF(ISERROR(VLOOKUP(...)), "未找到", VLOOKUP(...)

    注意,在IF ISERROR VLOOKUP公式中,你必须进行两次Vlookup。 用简单的英语,该公式可读为:如果Vlookup结果有误,返回 "未找到",否则输出Vlookup结果。

    下面是一个Excel If Iserror Vlookup公式的真实例子。

    =IF(ISERROR(VLOOKUP(D2, A2:B5,2,FALSE)), "未找到", VLOOKUP(D2, A2:B5,2,FALSE ))

    欲了解更多信息,请参见《在Excel中使用ISERROR函数》。

    IFERROR与IFNA

    在Excel 2013中引入的IFNA是另一个检查公式错误的函数。 其语法与IFERROR相似。

    IFNA(value, value_if_na)

    IFNA与IFERROR有什么不同? IFNA的功能是抓取 只有#N/A错误 而IFERROR处理所有的错误类型。

    在哪些情况下你可能想使用IFNA? 当掩盖所有的错误是不明智的。 例如,当处理重要或敏感的数据时,你可能想提醒你的数据集中可能存在的故障,带有 "#"符号的标准Excel错误信息可能是生动的视觉指示。

    让我们看看如何制作一个公式,显示 "未找到 "信息,而不是N/A错误,N/A错误是在数据集中不存在查找值时出现的,但会让你注意到其他Excel错误。

    假设你想从查询表中拉出数量,如下面的截图所示。 使用Excel Iferror Vlookup公式会产生一个美观的结果,但从技术上讲是不正确的,因为 柠檬 在查找表中确实存在。

    要抓住#N/A但显示#DIV/0的错误,可在Excel 2013和Excel 2016中使用IFNA函数。

    =IFNA(VLOOKUP(F3,$A$3:$D$6,4,FALSE), "未找到")

    或者,在Excel 2010和早期版本中的IF ISNA组合。

    =IF(ISNA(VLOOKUP(F3,$A$3:$D$6,4,FALSE)), "未找到", VLOOKUP(F3,$A$3:$D$6,4,FALSE))

    IFNA VLOOKUP和IF ISNA VLOOKUP公式的语法与前面讨论的IFERROR VLOOKUP和IF ISERROR VLOOKUP类似。

    如下面的截图所示,Ifna Vlookup公式只对查询表中不存在的项目返回 "未找到"( 桃子 )。 对于 柠檬 ,它显示#DIV/0!表明我们的查找表包含一个除以零的错误。

    更多细节,请参见《在Excel中使用IFNA函数》。

    在Excel中使用IFERROR的最佳实践

    现在你已经知道,IFERROR函数是在Excel中捕捉错误并以空白单元格、零值或你自己的自定义信息来掩盖它们的最简单方法。 然而,这并不意味着你应该用错误处理来包装每一个公式。 以下简单的建议可能有助于你保持平衡。

    1. 不要无缘无故地诱发错误。
    2. 用IFERROR包住公式中最小的部分。
    3. 要想只处理特定的错误,请使用一个范围较小的错误处理函数。
      • IFNA或IF ISNA只捕捉#N/A错误。
      • ISERR用于捕捉除#N/A以外的所有错误。

    这就是如何在Excel中使用IFERROR函数来捕获和处理错误。 要想仔细看看本教程中讨论的公式,欢迎下载我们的IFERROR Excel工作簿样本。 感谢你的阅读,希望下周能在我们的博客上见到你。

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.