Excel中的IF ISERROR VLOOKUP公式及其替代品

  • Share This
Michael Brown

在本教程中,我们将了解如何在Excel中使用ISERROR与VLOOKUP来有效地处理各种错误。

VLOOKUP是最令人困惑的Excel函数之一,困扰着许多问题。 无论你在哪个表中,#N/A错误都是常见的,#NAME和#VALUE也时常出现。 使用VLOOKUP与ISERROR可以帮助你捕捉所有可能的错误,并以最适合你情况的方式处理它们。

    为什么VLOOKUP会出现错误?

    VLOOKUP公式中最常见的错误是 #N/A 这可能是由于不同的原因而发生的。

    • 查询值不存在于查询阵列中。
    • 查询值拼写错误。
    • 查询值或查询列中有前导或尾部的空格。
    • 查询列不是表格数组的最左列。

    此外,你可能会遇到一个 #VALUE! 如果函数名称中存在拼写错误,则会出现一个 #NAME? 会出现错误。

    如需充分参考,请参见我们之前的文章《为什么Excel VLOOKUP不起作用》。

    IF ISERROR VLOOKUP公式,用自定义文本替换错误

    为了掩盖所有可能由VLOOKUP引发的错误,你可以像这样把它放在IF ISERROR公式里面。

    if(iserror(vlookup(...)), " text_if_error ", vlookup(...))

    作为一个例子,让我们拉出A组学生考试不及格的科目名称。

    =vlookup(a3, $d$3:$e$9, 2, false)

    结果,你得到了一堆#N/A错误,这可能会给人留下公式被破坏的印象。

    事实上,这些错误只是表明一些查询值(A3:A14)在查询列表(D3:D9)中没有找到。 为了清楚地表达这个意思,将你的VLOOKUP公式嵌套在IF ISERROR结构中。

    =IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "No", VLOOKUP(A3, $D$3:$E$9, 2, FALSE)

    这将捕捉错误并返回你的自定义文本信息。

    提示和说明。

    • 这个配方的主要优点是,它可以很好地适用于 所有版本 在现代版本中,有更简单和更紧凑的替代品。
    • ISERROR函数抓取 绝对所有的错误 如果你希望只在没有找到查询值(#N/A错误)时显示一个自定义信息,请使用IF ISNA VLOOKUP(在所有版本中)或IFNA VLOOKUP(在Excel 2013及以后版本中)。

    ISERROR VLOOKUP在出错时返回空白单元格

    要想在错误发生时有一个空白单元格,让你的公式返回一个空字符串(""),而不是一个自定义文本。

    if(iserror(vlookup(...)), "", vlookup(...))

    在我们的案例中,该公式采取这种形式。

    =if(iserror(vlookup(a3, $d$3:$e$9, 2, false)), " ", vlookup(a3, $d$3:$e$9, 2, false)

    结果与预期完全一致--如果在查找表中没有找到学生的名字,则为空白单元格。

    提示:以类似的方式,你可以用零、破折号或任何其他你喜欢的字符替换VLOOKUP错误。 只要用所需的字符来代替空字符串。

    IF ISERROR VLOOKUP 是/否公式

    在某些情况下,你可能正在寻找一些东西,但不是拉动匹配,而是想返回 (如果找到了查询值,则为其他文本)和 没有 (如果没有找到查询值)。 要做到这一点,你可以使用这个通用公式。

    if(iserror(vlookup(...)), " text_if_not_found ", " text_if_found ")

    在我们的样本数据集中,假设你想知道哪些学生没有通过测试,为了达到这个目的,将已经熟悉的ISERROR VLOOKUP公式服务于IF的逻辑测试,并告诉它如果没有找到值,则输出 "No"(ISERROR VLOOKUP返回TRUE),如果找到则输出 "Yes"(ISERROR VLOOKUP返回FALSE)。

    =IF(ISERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "否", "是")

    ISERROR VLOOKUP的替代方案

    IF ISERROR组合是在Excel中实现Vlookup无错误的最古老的时间证明技术。 随着时间的推移,新的函数不断发展,为执行同样的任务提供了更容易的方法。 下面,我们将讨论其他可能的解决方案,以及每一种解决方案的最佳应用时间。

    iferror vlookup

    在Excel 2007和更高版本中可用

    从2007版开始,Excel有一个特殊的函数,名为IFERROR,用于检查公式中的错误,如果检测到任何错误,则返回你自己的文本(或运行一个替代公式)。

    iferror(vlookup(...), " text_if_error ")

    现实生活中的公式如下。

    =IFERROR(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "No")

    乍一看,它像是IF ISERROR VLOOKUP公式的一个较短的类似物。 然而,有一个本质的区别。

    • IFERROR VLOOKUP假定你总是想要VLOOKUP的结果,如果它不是一个错误的话。
    • IF ISERROR VLOOKUP让你指定在出现错误时返回什么,在没有错误时返回什么。

    更多细节,请参见《在Excel中使用IFERROR与VLOOKUP》。

    如果是Vlookup

    在Excel 2000和更高版本中工作

    当你想只捕获#N/A而不捕获任何其他错误时,ISNA函数就派上用场了。 其语法与IF ISERROR VLOOKUP的语法相同。

    if(isna(vlookup(...)), " text_if_error ", vlookup(...))

    但在某些情况下,这个看似相同的公式可能会产生不同的结果。

    =IF(ISNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE)), "No", VLOOKUP(A3, $D$3:$E$9, 2, FALSE)

    在下面的图片中,单元格A13包含大量的尾部空格,因为查询值的总长度超过了255个字符。 结果,公式触发了#VALUE!错误,将你的注意力吸引到该单元格,并鼓励你调查原因。 在这种情况下,ISERROR VLOOKUP将返回 "No",这只会掩盖问题,提供一个绝对错误的结果。

    何时使用。

    当你只想在没有找到查找值时显示一些文本,而不想掩盖VLOOKUP公式本身的潜在问题时,例如当函数名称输入错误(#NAME?)或没有指定查找工作簿的完整路径(#VALUE!)时,这个公式的效果非常好。

    更多信息,请参见Excel中的ISNA函数及公式示例。

    IFNA VLOOKUP

    在Excel 2013和更高版本中可用

    它是IF ISNA组合的现代替代品,让你以更简单的方式处理#N/A错误。

    ifna(vlookup(...), " text_if_error ")

    下面是我们的IF ISNA VLOOKUP公式的一个速记等价物。

    =IFNA(VLOOKUP(A3, $D$3:$E$9, 2, FALSE), "No")

    何时使用。

    这是一个理想的解决方案,可以在现代版本的Excel(2013 - 365)中捕获和处理#N/A错误。

    详细情况请见Excel IFNA函数。

    XLOOKUP

    在Excel 2021和Excel 365中支持

    由于其内置的 "如果错误 "功能,XLOOKUP函数是在Excel中进行无#N/A错误查询的最简单的方法。 简单地说,在可选的第4个参数中输入你的用户友好文本,名为 if_not_found .

    比如说。

    =XLOOKUP(A3, $D$3:$D$9, $E$3:$E$9, "No")

    限制:它只捕获#N/A错误,忽略其他类型。

    欲了解更多信息,请查看Excel中的XLOOKUP函数。

    正如你所看到的,Excel提供了相当多的不同选项来处理VLOOKUP的错误。 希望本教程能让你了解如何有效地使用它们。 感谢你的阅读,希望下周能在我们的博客上见到你。

    可用的下载

    ISERROR与VLOOKUP的例子(.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.