使用IFERROR和VLOOKUP来消除#N/A错误

使用时VLOOKUP公式在Excel中,有时你可能会以丑陋的#N/A错误告终。当公式找不到查找值时,就会出现这种情况。

在本教程中,我将向您展示使用IFERROR和VLOOKUP来处理工作表中出现的这些#N/A错误的不同方法。

结合使用IFERROR和VLOOKUP可以显示一些有意义的内容来代替#N/A错误(或任何其他错误)。

在详细介绍如何使用这种组合之前,让我们先快速浏览一下IFERROR函数,看看它是如何工作的。

IFERROR函数解释

使用IFERROR函数,您可以指定在公式或单元格引用返回错误时应该发生什么。

下面是IFERROR函数的语法。

= IFERROR(价值,value_if_error)

  • 价值 -这是检查错误的参数。在大多数情况下,它要么是公式引用,要么是单元格引用。当使用VLOOKUP和IFERROR时,VLOOKUP公式就是这个参数。
  • value_if_error-如果有错误返回的值。评估的错误类型如下:#N/A,#裁判!# DIV / 0 !#价值!, # NUM !, #的名字吗?, #空!

vlookup可能的原因返回#n / a错误

VLOOKUP函数可能会由于以下原因返回一个#N/ a错误:

  1. 在查找数组中找不到查找值。
  2. 在查找值(或表数组)中有一个前导、尾随或双空格。
  3. 查找值或查找数组中的值有拼写错误。

可以结合使用IFERROR和VLOOKUP来处理所有这些错误原因。但是,您应该注意原因#2和#3,并在源数据中纠正这些错误,而不是让IFERROR处理这些错误。

注意:如果IFError会对导致它的原因进行治疗错误。如果您只想对Vlookup造成的错误无法找到查找值,请使用iFNA。这将确保未处理#n / a以外的错误,您可以调查这些其他错误。

你可以处理前导空格、后导空格和双空格使用修剪函数

用有意义的文本替换VLOOKUP #无错误

假设你有一个如下所示的数据集:

当没有找到查找值时,VLOOKUP出错

可以看到,VLOOKUP公式返回一个错误,因为查找值不在列表中。我们正在寻找Glen的分数,它不在分数表中。

虽然这是一个非常小的数据集,但您可能会得到一个非常大的数据集,您必须检查许多项的出现情况。对于每一种情况,当没有找到该值时,您将得到一个#N/ a错误。

这里有一个公式,你可以用它来得到一些有意义的东西,而不是#N/A错误。

= IFERROR (VLOOKUP (D2,一美元2:B 10美元,2 0),“没有找到”)

使用IFERROR和VLOOKUP来获得Not Found

上面的公式返回文本“Not Found”,而不是#N/A错误。您还可以使用相同的公式返回空白、零或任何其他有意义的文本。

使用IFERROR函数嵌套VLOOKUP

如果您正在使用VLOOKUP,并且您的查找表分散在同一工作表或不同工作表上,那么您需要通过所有这些表检查VLOOKUP值。

例如,在下面显示的数据集中,有两个单独的学生名称表和分数。

使用VLOOKUP数据集嵌套IFERROR

如果我必须在这个数据集中找到Grace的分数,我需要使用VLOOKUP函数来检查第一个表,如果在其中没有找到值,那么检查第二个表。

这是嵌套的ifError公式我可以用来查找值:

= IFERROR (VLOOKUP (G3, $ $ 2: B 5美元,2 0),IFERROR (VLOOKUP (G3, D 2:美元$ E 5美元,2 0),“没有找到”))

使用VLOOKUP嵌套IFERROR

在IF和ISERROR中使用VLOOKUP (Excel 2007之前的版本)

在Windows的Excel 2007和Mac的Excel 2016中引入了IFERROR函数。

如果您使用的是以前的版本,那么IFERROR函数将无法在您的系统中工作。

控件的组合可以复制IFERROR函数的功能如果函数和ISERROR函数。

让我快速向您展示如何结合使用IF和ISERROR而不是IFERROR。

使用IF和ISERROR -示例

在上面的例子中,除了使用IFERROR,你还可以使用单元格B3中显示的公式:

=如果(返回错误(A3),“没有找到”,A3)

公式的ISERROR部分检查错误(包括#N/A错误),如果发现错误则返回TRUE,如果没有则返回FALSE。

  • 如果为TRUE(这意味着有错误),If函数返回指定的值(在本例中为“Not Found”)。
  • 如果是FALSE(这意味着没有错误),If函数返回该值(在上面的例子中是A3)。

IFERROR Vs IFNA

IFERROR处理各种错误,而IFNA只处理#N/A错误。

在处理由VLOOKUP引起的错误时,需要确保使用了正确的公式。

使用IFERROR当你想处理各种错误时。现在错误可能由各种因素引起(例如错误的公式、拼写错误的命名范围、没有找到查找值以及从查找表返回错误值)。这对IFERROR来说并不重要,它将用指定的值替换所有这些错误。

使用IFNA当您只想处理#N/A错误时,这更可能是由VLOOKUP公式无法找到查找值引起的。

你也可以找到下面的Excel教程:

Excel电子书订阅

免费的EXCEL的书

获得51个Excel提示电子书来提高你的生产力,更快地完成工作

关于“使用IFERROR与VLOOKUP来消除#N/A错误”的16个想法

  1. 当两个列具有相同的值(即空白)时,VLOOKUP返回的结果是什么?

    当源单元格和目标单元格都没有值时,我收到“#N/A”。有人能帮帮我吗?

    提前谢谢。

  2. =+IFERROR(Vlookup(B2, ' Customer Details ' !B:C,2,0), " "))为什么这个公式不显示结果?

    • 我使用excel 2010,而使用公式,它显示了正确的选择在公式中,但它不是显示我们想要的区域,但它显示了整个公式再次。你能帮我吗?

  3. 我使用=IFNA(vlookup,0)在代码中,但它反映在excel作为=IFNA(vlookup,0),因为我想要值0,#N/A来。因为它给我的值是#NAME

  4. 我认为使用与IFERROR类似的IFNA函数要好得多,但真正重要的区别是,IFNA只去除#N/A错误…

      • 不,IFNA总是VLOOKUP的最佳解决方案,因为只有#N/A是隐藏的,所以它可以检测所有其他错误:错误范围,错误的公式,拼写错误的名称范围等等…

          • 您好Franz ..虽然我同意IFNA是vlookup的更好选择,但它也取决于数据结构和决定应该使用什么功能的输出。

            据我所知,IFNA在2007和2010版本的Excel Windows中是不可用的。与其使用更长的IF + ISNA路由,不如更容易检查公式并确保公式或命名范围中没有错误,并使用IFERROR。另一个例子是我最近处理的一个仪表板,其中我得到的数据本身有错误,比如DIV和NA。与其使用IFNA进行两步检查,然后使用IFERROR处理DIV错误,不如确保公式/命名范围是正确的,然后使用IFERROR。

            此外,错误的范围无论如何返回NA错误,所以即使IFNA在这种情况下也不会有帮助。

            我的观点是,IFNA更好,但这不是唯一的方法。

  5. 好帖子,但我确实有一个问题与IFERROR

    如果抬头的范围太短,或者如果返回的单元格值(合法地)本身是错误的,或者索引是否定的,或者查找范围是未分类的省略VLookup,或者如果查找值是错误,或者可能错误的范围名称或...
    我想说的是,错误的发生有很多原因,默认错误响应为“not found”可能意味着您将忽略一个错误的公式

    更好的方法是预测错误(在本例中使用COUNTIF)并正确处理它

    IFERROR是一个非常危险的东西,以这样一种漫不经心的方式使用-当心

    吉姆

    • 嘿,吉姆。我在本教程中提到,可能有各种各样的错误原因,首先必须在数据级别对其进行排序,而不是让IFERROR处理它(在“可能的原因或错误”一节中介绍)。

      此外,下一步总是确保正确创建公式。没有任何其他方法来处理拼写错误的命名范围、没有正确的数据结构或没有正确的查找范围,而只是确保它在第一个位置进行排序。

      对于近似匹配,将数据按升序排序是使用VLOOKUP公式的先决条件。这无论如何都会导致错误的结果(即使结果不是错误的情况下)。

      如果公式返回的结果是错误的,那么IFERROR在使结果更有意义方面仍然有价值。

      这种组合工作良好的情况是,从具有固定格式的数据集下载数据,并且需要对这些数据执行查找。

      如果使用得当,IFERROR会是一个非常有用的函数。

评论都关门了。