Excel中的ISERROR函数与公式实例

  • Share This
Michael Brown

本教程探讨了Excel ISERROR函数的实际用途,并展示了如何测试不同公式的错误。

当你写了一个Excel不理解或无法计算的公式时,它会通过显示一个错误信息来引起你的注意。 ISERROR函数可以帮助你捕捉错误,并在发现错误时提供一个替代方案。

    Excel中的ISERROR函数

    Excel的ISERROR函数可以捕捉各种错误,包括#CALC!、#DIV/0!、#N/A、#NAME?、#NUM!、#NULL!、#REF!、#VALUE!和#SPILL!。 其结果是一个布尔值:如果检测到错误则为TRUE,否则为FALSE。

    该功能在Excel 2000到2021年的所有版本和Excel 365中都可用。

    ISERROR函数的语法就像这样简单。

    ISERROR(value)

    在哪里? 价值 是要检查错误的单元格值或公式。

    Excel的ISERROR公式

    要创建一个最简单的ISERROR公式,需要提供一个你想测试错误的单元格的引用。 例如。

    =ISERROR(A2)

    如果发现任何错误,你将得到TRUE。 如果在被测试的单元中没有错误,你将得到FALSE。

    Excel中的IF ISERROR公式

    要想在错误发生时返回一个自定义的信息或执行不同的计算,可将ISERROR与IF函数一起使用。 通用公式如下。

    如果(ISERROR( 公式 (...), text_or_calculation_if_error , 公式 ())

    翻译成人类的语言,它说:如果主公式的结果是错误的,显示指定的文本或运行另一个计算,否则返回公式的正常结果。

    在下图中,用总数除以数量产生了几个错误。 价格 列。

    要用一个自定义的文本替换所有不同的错误代码,你可以使用以下IF ISERROR公式。

    =IF(ISERROR(A2/B2), "未知", A2/B2)

    在Excel 2007及以后的版本中,借助于内置的IFERROR函数可以实现同样的结果。

    =IFERROR(A2/B2, "未知")

    应该注意的是,IFERROR公式运行得更快一些,因为它只进行一次A2/B2的计算。 而IF ISERROR计算两次--首先看是否产生错误,如果测试为FALSE,再计算一次。

    IF ISERROR VLOOKUP公式

    在VLOOKUP中使用ISERROR,实际上是上面讨论的IF ISERROR公式的一个特殊情况。 当VLOOKUP函数找不到查询值或因其他原因失败时,你可以通过使用这种语法显示一个自定义的文本信息。

    if(iserror(vlookup(...)), " 自定义文本 ", vlookup(...))

    在这个例子中,我们把时间从查询表(D3:E10)拉到主表(A3:B15)。 如果查询值(参与者的名字)在查询表中不存在,我们将返回 "不合格"。

    =IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "不合格", VLOOKUP(A3, $D$3:$E$10, 2, FALSE)

    提示:如果你想显示一个自定义文本,只有当一个 没有找到查询值 (#N/A错误)忽略其他错误,然后在Excel 2013及以后的版本中使用IFNA VLOOKUP公式或在旧版本中使用IF ISNA VLOOKUP。

    IF ISERROR INDEX MATCH公式

    当在INDEX MATCH组合(或Excel 365中的INDEX XMATCH公式)的帮助下执行查找时,你可以通过使用相同的技术来捕获和处理任何可能的错误--ISERROR函数检查错误,当发生任何错误时,IF显示指定文本。

    如果(iserror(index ( 返回列 , MATCH ( 查找_值 , 查询栏 , 0)))), " 自定义文本 ", INDEX ( 返回列 , MATCH ( 查找_值 , 查询栏 , 0)))

    假设查找表的第一列有时间,由于VLOOKUP不能向其左侧查找,我们使用INDEX MATCH公式从D列提取时间。

    =index($d$3:$d$10, match(a3, $e$3:$e$10, 0))

    然后,你把它嵌套在上述的通用公式中,用你想要的任何文本来替换被抓住的错误。

    =IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)), "不合格", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0) ))

    注意:与IF ISERROR VLOOKUP公式一样,只捕获#N/A错误更有意义,不要掩盖公式本身的潜在问题。 为此,在Excel 2013和更高版本中用IFNA包装你的INDEX MATH公式,或在早期版本中用IF ISNA包装。

    IF ISERROR 是/否 公式

    在前面所有的例子中,如果不是错误,IF ISERROR返回主公式的结果。 然而,它也可以以不同的方式工作--如果有错误,返回一些东西,如果没有错误,返回其他东西。

    如果(ISERROR( 公式 (...)), " text_if_error ", " text_if_no_error ")

    在我们的样本数据集中,假设你对确切的时间不感兴趣,你只想知道A组的哪些参与者是合格的,哪些是不合格的。 要做到这一点,使用MATCH函数将A列的名字与D列的合格参与者列表进行比较,然后将结果送至ISERROR。 如果D列中没有名字(MATCH返回错误),得到如果名字出现在D列(没有错误),返回 "是 "或 "合格"。

    =IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "否", "是" )

    如何计算错误的数量

    为了得到某一列的错误数,你需要检查一个范围,而不仅仅是一个单元格。 为此,将目标范围 "喂 "给ISERROR,并使用双单数运算符(--)将返回的布尔值强制为1和0。 SUM或SUMPRODUCT函数可以将这些数字相加,得出最终结果。

    比如说。

    =sum(-iserror(c2:c10))

    请注意,这只在支持动态数组的Excel 365和Excel 2021中作为常规公式工作。 在Excel 2019和更早的版本中,你需要按Ctrl + Shift + Enter来创建一个数组公式(不要手动输入大括号,那是不行的!)。

    {=SUM(--ISERROR(C2:C10))}

    另外,你也可以使用SUMPRODUCT函数,它可以原生处理数组,所以在所有版本中都可以用通常的回车键完成公式。

    =sumproduct(--iserror(c2:c10))

    Excel中ISERROR和IFERROR的区别

    ISERROR和IFERROR函数都是用来捕获和处理Excel中的错误。 其区别如下。

    • 在其纯粹的形式中,ISERROR只是测试该值是否为错误。 它在所有Excel版本中都可用。
    • IFERROR函数被设计用来抑制或掩盖错误--当发现错误时,它返回你指定的另一个值。 它在Excel 2007和更高版本中可用。

    乍一看,IFERROR看起来像是IF ISERROR公式的速记替代品。 然而,仔细一看,你可以发现其中的区别。

    • IFERROR允许你只指定 value_if_error 如果没有错误,它总是返回测试值/公式的结果。
    • IF ISERROR提供了更多的灵活性,让你处理这两种情况--如果出现错误应该怎么办,如果没有错误怎么办。

    为了更好地说明这一点,请考虑这些公式。

    =IFERROR(A1, "计算错误")

    =IF(ISERROR(A1), "计算错误", A1)

    这两个公式是等价的--都是检查A1中的公式驱动的值,如果是错误,则返回 "计算错误",否则--返回该值。

    但如果你想在A1中的值不是错误的情况下进行一些计算呢? IFERROR函数无法做到这一点。 在IF ISERROR的情况下,只要在最后一个参数中输入想要的计算即可。 例如。

    =IF(ISERROR(A1), "计算错误", A1*2)

    正如你所看到的,这个较长的IFERROR公式的变体,通常被认为是过时的,但仍然可以是有用的:)

    可用的下载

    ISERROR公式示例(.xlsx文件)。

    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.