返回 #N/A 错误VLOOKUP 最常见的错误是 #N/A 错误,这意味着 Excel 找不到您要查找的值。以下是 VLOOKUP可能返回 #N/A 错误的一些原因。
原因1:查找值不在表格区域的第一列Excel VLOOKUP 的一个限制是它只允许从左到右查找。因此,查找值必须在表格区域的第一列中。
如下面的截图所示,我想根据给定的职称返回一个名称。这里查找值(销售经理)在表格区域的第二列,而返回值在查找列的左侧,因此 VLOOKUP 返回 #N/A 错误。
解决方案
您可以应用以下任何解决方案来修复此错误。
重新排列列您可以重新排列列,将查找列放在表格区域的第一列。 一起使用 INDEX 和 MATCH 函数在这里,我们将 INDEX 和 MATCH 函数一起使用,作为 VLOOKUP 的替代方案来解决此问题。=INDEX(B6:B12,MATCH(F6,C6:C12,0)) 使用 XLOOKUP 函数(适用于 Excel365、Excel2021及更高版本) =XLOOKUP(F6,C6:C12,B6:B12) 原因2:查找值在查找列中未找到(精确匹配)VLOOKUP 返回 #N/A 错误的最常见原因之一是您要查找的值未找到。
如下面的示例所示,我们将根据 E6 中给定的分数98 查找名称。然而,此分数不存在于数据区域的第一列中,因此 VLOOKUP 返回 #N/A 错误结果。
解决方案
要修复此错误,您可以尝试以下解决方案之一。
如果您希望 VLOOKUP 搜索小于查找值的下一个最大值,请将最后一个参数 FALSE(精确匹配)更改为 TRUE(近似匹配)。有关更多信息,请参见示例1:使用 VLOOKUP进行精确匹配与近似匹配。 为了避免更改最后一个参数并在查找值未找到时获得提醒,您可以将 VLOOKUP 函数包含在 IFERROR 函数中: =IFERROR(VLOOKUP(E8,$B$6:$C$12,2,FALSE),"Not found") 原因3:查找值小于查找列中的最小值(近似匹配)如下面的截图所示,您正在执行近似匹配查找。您要查找的值(此例中的 ID号码1001)小于查找列中的最小值1002,因此 VLOOKUP 返回 #N/A 错误。
解决方案
这里有两个解决方案供您选择。
确保查找值大于或等于查找列中的最小值。 如果您希望 Excel 提醒您查找值未找到,只需将 VLOOKUP 函数嵌套在 IFERROR 函数中,如下所示: =IFERROR(VLOOKUP(G6,B6:E12,4,TRUE),"Not found") 原因4:数字格式为文本如您在下面的截图中所见,此示例中的 #N/A 错误结果是由于查找单元格(G6)与原始表格的查找列(B6:B12)之间的数据类型不匹配造成的。这里 G6 中的值是一个数字,而 B6:B12 区域中的值是格式为文本的数字。
提示:如果一个数字被转换为文本,单元格的左上角会显示一个小的绿色三角形。
解决方案
要解决此问题,您需要将查找值转换回数字。这里有两种方法供您选择。
应用“转换为数值”功能单击您要将文本转换为数字的单元格,选择此按钮 在单元格旁边,然后选择 转换为数值. 应用一个方便的工具批量转换文本和数字之间Kutools for Excel 的“文本与数值之间的转换”功能可以帮助您轻松地将一系列单元格从文本转换为数字,反之亦然。立即获取30 天全功能免费试用! 原因5:拖动 VLOOKUP公式到其他单元格时表格区域不固定如下面的截图所示,E6 和 E7 中有两个查找值。在 F6 中获得第一个结果后,将 VLOOKUP公式从单元格 F6 拖动到 F7,返回了 #N/A 错误结果。这是因为单元格引用(B6:C12)默认是相对的,并在您向下移动行时进行了调整。表格区域已下移至 B7:C13,不再包含查找分数73。
解决方案
您需要锁定表格区域,通过在单元格引用的行和列前添加 $ 符号来保持其固定。要了解有关 Excel 中绝对引用的更多信息,请查看本教程:Excel绝对引用(如何制作和使用)。

