VLOOKUP 功能不起作用 - 排除 N/A、NAME 和 VALUE

本课解释了如何快速处理函数 VPR (VLOOKUP) 不想在 Excel 2013、2010、2007 和 2003 中工作,以及如何识别和修复常见错误并克服限制 VPR.

在之前的几篇文章中,我们探讨了函数的各个方面 VPR 在 Excel 中。 如果您仔细阅读了它们,那么您现在应该是该领域的专家了。 然而,许多 Excel 专家认为并非没有道理 VPR 更复杂的功能之一。 它有许多限制和功能,成为许多问题和错误的根源。

VLOOKUP 功能不起作用 - 排除 N/A、NAME 和 VALUE

在本文中,您将找到错误的简单解释 #在 (#不适用), #NAME? (#NAME?)和 #值! (#VALUE!) 使用函数时出现 VPR,以及处理它们的技术和方法。 我们将从最常见的情况和最明显的原因开始。 VPR 不起作用,因此最好按照文章中给出的顺序研究示例。

修复 Excel 中 VLOOKUP 函数中的 #N/A 错误

在公式中 VPR 错误讯息 #在 (#N/A) 表示 不可用 (无数据)– 当 Excel 找不到您要查找的值时出现。 这可能有几个原因。

1. 所需值拼写错误

好主意先检查这个项目! 当您处理由数千行组成的大量数据时,或者当您要查找的值被写入公式时,通常会出现拼写错误。

2. 使用 VLOOKUP 搜索近似匹配时出现 #N/A 错误

如果您使用具有近似匹配搜索条件的公式,即参数 范围查找 (range_lookup) 为 TRUE 或未指定,您的公式可能会报错 #N / A 在两种情况下:

  • 要查找的值小于要查找的数组中的最小值。
  • 搜索列未按升序排序。

3. 使用 VLOOKUP 查找完全匹配时出现 #N/A 错误

如果您正在寻找完全匹配,即参数 范围查找 (range_lookup) 为 FALSE 没有找到准确的值,公式也会报错 #N / A. 详细了解如何使用函数搜索精确匹配和近似匹配 VPR.

4.搜索栏不在最左边

您可能知道,最重要的限制之一 VPR 就是它不能面向左边,因此表中的查找列必须在最左边。 在实践中,我们经常忘记这一点,从而导致公式无效和错误。 #N / A.

VLOOKUP 功能不起作用 - 排除 N/A、NAME 和 VALUE

决定: 如果无法更改数据结构以使搜索列位于最左侧,则可以使用函数组合 指数 (索引)和 更多曝光 (匹配)作为更灵活的替代方案 VPR.

5.数字格式化为文本

另一个错误来源 #N / A 在公式中 VPR 是主表或查找表中文本格式的数字。

这通常发生在您从外部数据库导入信息时,或者当您在数字前键入撇号以保留前导零时。

文本格式的数字最明显的符号如下图所示:

VLOOKUP 功能不起作用 - 排除 N/A、NAME 和 VALUE

此外,数字可以存储在格式 总类 (一般的)。 在这种情况下,只有一个值得注意的特征——数字与单元格的左边缘对齐,而默认情况下它们与右边缘对齐。

决定: 如果是单个值,只需单击错误图标并选择 转换成数字 (转换为数字)从上下文菜单。

VLOOKUP 功能不起作用 - 排除 N/A、NAME 和 VALUE

如果这是有很多数字的情况,请选择它们并右键单击所选区域。 在出现的上下文菜单中,选择 单元格格式 (格式化单元格)> 选项卡 联系电话 (数字) > 格式 联系电话 (数字)并按下 OK.

6.开头或结尾有空格

这是该错误最不明显的原因。 #N / A 在功能上 VPR,因为在视觉上很难看到这些额外的空间,尤其是在处理大表时,因为大多数数据都在屏幕外。

解决方案一:主表中的多余空格(VLOOKUP函数所在的地方)

如果主表中出现多余的空格,您可以通过将参数括起来来确保公式正常工作 Lookup_Array中 (lookup_value) 到函数中 TRIM (修剪):

=VLOOKUP(TRIM($F2),$A$2:$C$10,3,FALSE)

=ВПР(СЖПРОБЕЛЫ($F2);$A$2:$C$10;3;ЛОЖЬ)

VLOOKUP 功能不起作用 - 排除 N/A、NAME 和 VALUE

解决方案 2:查找表中的额外空格(在查找列中)

如果搜索栏中有多余的空格——简单的方法 #N / A 在公式中 VPR 无法避免。 代替 VPR 您可以将数组公式与函数组合使用 指数 (指数), 更多曝光 (比赛) TRIM (修剪):

=INDEX($C$2:$C$10,MATCH(TRUE,TRIM($A$2:$A$10)=TRIM($F$2),0))

=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(ИСТИНА;СЖПРОБЕЛЫ($A$2:$A$10)=СЖПРОБЕЛЫ($F$2);0))

由于这是一个数组公式,不要忘记按 Ctrl + Shift + Enter 而不是通常的 输入正确输入公式。

VLOOKUP 功能不起作用 - 排除 N/A、NAME 和 VALUE

错误 #VALUE! 在带有 VLOOKUP 的公式中

大多数情况下,Microsoft Excel 会报告错误 #值! (#VALUE!) 当公式中使用的值与数据类型不匹配时。 关于 VPR, 那么报错的原因通常有两个 #值!.

1.您要查找的值超过255个字符

注意:函数 VPR 无法搜索包含超过 255 个字符的值。 如果您要查找的值超出此限制,您将收到一条错误消息。 #值!.

VLOOKUP 功能不起作用 - 排除 N/A、NAME 和 VALUE

决定: 使用一堆功能 索引+匹配 (索引 + 匹配)。 下面是一个可以很好地完成这项任务的公式:

=INDEX(C2:C7,MATCH(TRUE,INDEX(B2:B7=F$2,0),0))

=ИНДЕКС(C2:C7;ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B2:B7=F$2;0);0))

VLOOKUP 功能不起作用 - 排除 N/A、NAME 和 VALUE

2.未指定搜索工作簿的完整路径

如果您从另一个工作簿中检索数据,则必须指定该文件的完整路径。 更具体地说,您必须在方括号 [ ] 中包含工作簿名称(包括扩展名),然后是工作表名称,然后是感叹号。 所有这些结构都必须用撇号括起来,以防书名或工作表名包含空格。

这是函数的完整结构 VPR 在另一本书中搜索:

=VLOOKUP(lookup_value,'[workbook name]sheet name'!table_array, col_index_num,FALSE)

=ВПР(искомое_значение;'[имя_книги]имя_листа'!таблица;номер_столбца;ЛОЖЬ)

真正的公式可能如下所示:

=VLOOKUP($A$2,'[New Prices.xls]Sheet1'!$B:$D,3,FALSE)

=ВПР($A$2;'[New Prices.xls]Sheet1'!$B:$D;3;ЛОЖЬ)

此公式将查找单元格值 A2 在专栏中 B 在单子上 Sheet1 在工作簿中 新价格 并从列中提取相应的值 D.

如果省略了表路径的任何部分,则您的函数 VPR 不会工作,会报错 #值! (即使带有查找表的工作簿当前是打开的)。

有关该功能的更多信息 VPR引用另一个 Excel 文件,请参阅课程:使用 VLOOKUP 搜索另一个工作簿。

3.参数Column_num小于1

很难想象有人输入的值小于 1指示要从中提取值的列。 尽管如果此参数的值是由嵌套在其中的另一个 Excel 函数计算的,则有可能 VPR.

所以,如果发生这种论点 Col_index_num为 (column_number) 小于 1功能 VPR 也会报错 #值!.

如果论证 Col_index_num为 (column_number) 大于给定数组中的列数, VPR 会报错 #REF! (#SSYL!)。

错误#NAME? 在 VLOOKUP 中

最简单的情况是错误 #NAME? (#NAME?) – 如果你不小心写了一个错误的函数名,就会出现。

解决方案很明显——检查你的拼写!

VLOOKUP 不起作用(限制、警告和决定)

除了相当复杂的语法, VPR 比任何其他 Excel 函数都有更多的限制。 由于这些限制,看似简单的公式 VPR 往往会导致意想不到的结果。 您将在下面找到几种常见情况的解决方案,其中 VPR 是错的。

1. VLOOKUP 不区分大小写

功能 VPR 不区分大小写,接受大小写相同的字符。 因此,如果表中有多个元素仅大小写不同,则 VLOOKUP 函数将返回找到的第一个元素,而不考虑大小写。

决定: 结合使用另一个可以执行垂直搜索(LOOKUP、SUMPRODUCT、INDEX 和 MATCH)的 Excel 函数 精确区分大小写的 A。 有关更多详细信息,您可以从课程中学习——在 Excel 中使 VLOOKUP 区分大小写的 4 种方法。

2. VLOOKUP 返回找到的第一个值

就像你已经知道的那样, VPR 返回与找到的第一个匹配项对应的给定列的值。 但是,您可以让它提取您想要的值的第二个、第三个、第四个或任何其他重复。 如果您需要提取所有重复值,则需要组合功能 指数 (指数), 最小 (小)和 LINE (排)。

3. 向表中添加或删除一列

不幸的是,公式 VPR 每次在查找表中添加或删除新列时停止工作。 发生这种情况是因为语法 VPR 要求您指定搜索的完整范围和数据提取的特定列号。 自然,当您删除一列或插入新列时,给定的范围和列号都会发生变化。

决定: 功能再次急于提供帮助 指数 (索引)和 更多曝光 (匹配)。 在公式 索引+匹配 您分别定义搜索和检索列,因此,您可以根据需要删除或插入任意数量的列,而不必担心必须更新所有相关的搜索公式。

4.复制公式时单元格引用乱码

这个标题详尽地解释了问题的本质,对吧?

决定: 始终使用绝对单元格引用(带有符号 $) 记录范围,例如 $ A $ 2:$ C $ 100 or $ A:$ C. 在编辑栏中,您可以通过单击快速切换链接类型 F4.

VLOOKUP – 使用函数 IFERROR 和 ISERROR

如果您不想用错误消息吓唬用户 #N / A, #值! or #NAME?,您可以显示一个空单元格或您自己的消息。 您可以通过放置 VPR 变成一个函数 IFERROR (IFERROR) 在 Excel 2013、2010 和 2007 中或使用一堆函数 中频+错误 (IF+ISERROR) 在早期版本中。

VLOOKUP:使用 IFERROR 函数

函数语法 IFERROR (IFERROR) 很简单,不言自明:

IFERROR(value,value_if_error)

ЕСЛИОШИБКА(значение;значение_если_ошибка)

也就是说,对于第一个参数,您插入要检查错误的值,对于第二个参数,您指定在发现错误时返回的内容。

例如,如果未找到您要查找的值,此公式将返回一个空单元格:

=IFERROR(VLOOKUP($F$2,$B$2:$C$10,2,FALSE),"")

=ЕСЛИОШИБКА(ВПР($F$2;$B$2:$C$10;2;ЛОЖЬ);"")

VLOOKUP 功能不起作用 - 排除 N/A、NAME 和 VALUE

如果您想显示自己的消息而不是函数的标准错误消息 VPR, 用引号括起来,像这样:

=IFERROR(VLOOKUP($F$2,$B$2:$C$10,2,FALSE),"Ничего не найдено. Попробуйте еще раз!")

=ЕСЛИОШИБКА(ВПР($F$2;$B$2:$C$10;2;ЛОЖЬ);"Ничего не найдено. Попробуйте еще раз!")

VLOOKUP 功能不起作用 - 排除 N/A、NAME 和 VALUE

VLOOKUP:使用 ISERROR 函数

自功能 IFERROR 出现在 Excel 2007 中,在早期版本中工作时,您将不得不使用组合 IF (IF) 和 欧芝卡 (ISERROR)像这样:

=IF(ISERROR(VLOOKUP формула),"Ваше сообщение при ошибке",VLOOKUP формула)

=ЕСЛИ(ЕОШИБКА(ВПР формула);"Ваше сообщение при ошибке";ВПР формула)

例如,公式 IF+ISERROR+VLOOKUP, 类似于公式 错误+VLOOKUP如上所示:

=IF(ISERROR(VLOOKUP($F$2,$B$2:$C$10,2,FALSE)),"",VLOOKUP($F$2,$B$2:$C$10,2,FALSE))

=ЕСЛИ(ЕОШИБКА(ВПР($F$2;$B$2:$C$10;2;ЛОЖЬ));"";ВПР($F$2;$B$2:$C$10;2;ЛОЖЬ))

这就是今天的全部内容。 我希望这个简短的教程能帮助你处理所有可能的错误。 VPR 并使您的公式正常工作。

发表评论