在Excel 中使用VLOOKUP 公式时,有时您可能会遇到丑陋的#N/A 错误。当您的公式找不到查找值时会发生这种情况。
在本教程中,我将向您展示使用IFERROR 和VLOOKUP 来处理工作表中出现的这些#N/A 错误的不同方法。
使用IFERROR 与VLOOKUP 的组合可以显示一些有意义的东西来代替#N/A 错误(或任何其他错误)。
在详细了解如何使用这种组合之前,让我们先快速浏览一下IFERROR 函数,看看它是如何工作的。
内容
IFERROR 函数说明
使用IFERROR 函数,您可以指定在公式或单元格引用返回错误时应该发生的情况。
这是IFERROR 函数的语法。
=IFERROR(value, value_if_error)
- 价值 - 这是检查错误的参数。在大多数情况下,它要么是公式,要么是单元格引用。将VLOOKUP 与IFERROR 一起使用时,VLOOKUP 公式将是此参数。
- value_if_error 值 – 这是出现错误时返回的值。评估了以下错误类型:#N/A、#REF!、#DIV/0!、#VALUE!、#NUM!、#NAME? 和#NULL!。
VLOOKUP 返回#N/A 错误的可能原因
由于以下任何原因,VLOOKUP 函数可能会返回#N/A 错误:
- 在查找数组中找不到查找值。
- 查找值(或表数组)中有前导、尾随或双倍空格。
- 查找值或查找数组中的值存在拼写错误。
您可以结合使用IFERROR 和VLOOKUP 来处理所有这些错误原因。但是,您应该留意原因#2 和#3,并在源数据中更正这些问题,而不是让IFERROR 处理这些问题。
注意: IFERROR 将处理错误,而不管它是由什么原因引起的。如果您只想处理VLOOKUP 无法找到查找值导致的错误,请改用IFNA。这将确保不处理#N/A 以外的错误,并且您可以调查这些其他错误。
您可以使用TRIM 函数处理前导、尾随和双空格。
用有意义的文本替换VLOOKUP #N/A 错误
假设您有一个如下所示的数据集:
如您所见,VLOOKUP 公式返回错误,因为查找值不在列表中。我们正在寻找Glen 的分数,它不在分数表中。
虽然这是一个非常小的数据集,但您可能会获得巨大的数据集,您必须在其中检查许多项目的出现。对于未找到该值的每种情况,您将收到#N/A 错误。
这是您可以用来获得有意义的东西而不是#N/A 错误的公式。
=IFERROR(VLOOKUP(D2,$A$2:$B$10,2,0),"Not Found")
上面的公式返回文本“未找到”而不是#N/A 错误。您还可以使用相同的公式返回空白、零或任何其他有意义的文本。
使用IFERROR 函数嵌套VLOOKUP
如果您正在使用VLOOKUP 并且您的查找表在同一个工作表或不同工作表上分散,您需要通过所有这些表检查VLOOKUP 值。
例如,在下面显示的数据集中,有两个单独的学生姓名和分数表。
如果我必须在这个数据集中找到Grace 的分数,我需要使用VLOOKUP 函数检查第一个表,如果在其中没有找到该值,则检查第二个表。
这是我可以用来查找值的嵌套IFERROR 公式:
=IFERROR(VLOOKUP(G3,$A$2:$B$5,2,0),IFERROR(VLOOKUP(G3,$D$2:$E$5,2,0),"Not Found"))
将VLOOKUP 与IF 和ISERROR 一起使用(Excel 2007 之前的版本)
IFERROR 函数是在Excel 2007 for Windows 和Excel 2016 in Mac 中引入的。
如果您使用的是以前的版本,那么IFERROR 功能将无法在您的系统中运行。
您可以通过结合使用IF 函数和ISERROR 函数来复制IFERROR 函数的功能。
让我快速向您展示如何使用IF 和ISERROR 的组合而不是IFERROR。
在上面的示例中,您也可以使用单元格B3 中显示的公式,而不是使用IFERROR:
=IF(ISERROR(A3),”Not Found”,A3)
公式的ISERROR 部分检查错误(包括#N/A 错误),如果发现错误则返回TRUE,否则返回FALSE。
- 如果为TRUE(表示存在错误),IF 函数将返回指定的值(在本例中为“未找到”)。
- 如果为FALSE(这意味着没有错误),IF 函数将返回该值(上例中的A3)。
IFERROR 与IFNA
IFERROR 处理所有类型的错误,而IFNA 只处理#N/A 错误。
在处理由VLOOKUP 引起的错误时,您需要确保使用正确的公式。
当您要处理各种错误时,请使用IFERROR 。现在错误可能由多种因素引起(例如错误的公式、拼写错误的命名范围、未找到查找值以及从查找表返回错误值)。IFERROR 无关紧要,它会用指定的值替换所有这些错误。
当您只想处理#N/A 错误时使用IFNA,这更有可能是由VLOOKUP 公式无法找到查找值引起的。