本文介绍 Microsoft Excel 中 VLOOKUP 函数的公式语法和用法。

如何开始

您需要四条信息才能构建 VLOOKUP 语法:

  1. 要查找的值,也被称为查阅值。

  2. 查阅值所在的区域。 请记住,查阅值应该始终位于所在区域的第一列,这样 VLOOKUP 才能正常工作。 例如,如果查阅值位于单元格 C2 内,那么您的区域应该以 C 开头。

  3. 区域中包含返回值的列号。 例如,如果指定 B2:D11 作为区域,那么应该将 B 算作第一列,C 作为第二列,以此类推。

  4. (可选)如果需要返回值的近似匹配,可以指定 TRUE;如果需要返回值的精确匹配,则指定 FALSE。 如果没有指定任何内容,默认值将始终为 TRUE 或近似匹配。

现在将上述所有内容集中在一起,如下所示:

=VLOOKUP(查阅值、包含查阅值的区域、区域中包含返回值的列号以及(可选)为近似匹配指定 TRUE 或者为精确匹配指定 FALSE)。

下面是 VLOOKUP 的一些示例:

示例 1

VLOOKUP 示例 1

示例 2

VLOOKUP 示例 2

示例 3

VLOOKUP 示例 3

示例 4

VLOOKUP 示例 4

示例 5

VLOOKUP 示例 5

常见问题

问题

出错原因

返回了错误值

如果 range_lookup 为 TRUE 或被排除在外,需要对第一列按字母或数字顺序排序。 如果未对第一列排序,可能会返回意外值。 请对第一列排序,或使用 FALSE 以获得精确匹配项。

单元格中显示 #N/A

  • 如果 range_lookup 为 TRUE,并且 lookup_value 中的值比 table_array 的第一列中的最小值小,将显示错误值 #N/A。

  • 如果 range_lookup 为 FALSE,则错误值 #N/A 表示未找到精确匹配项。

有关在 VLOOKUP 中解决 #N/A 错误的详细信息,请参阅如何在 VLOOKUP 函数中更正 #N/A 错误。

#REF! 在单元格中

如果col_index_num大于表数组中的列数, 您将获得 #REF! 。

有关在 VLOOKUP 中解决 #REF! 错误的详细信息,请参阅如何更正 #REF! 错误。

对存为文本的日期进行减法运算时出现 #VALUE! 在单元格中

如果table_array小于 1, 则会收到 #VALUE! 。

有关在 VLOOKUP 中解决 #VALUE! 错误的详细信息,请参阅如何更正 #REF! 错误。

#NAME? 在单元格中

错误值 #NAME? 通常意味着该公式缺少引号。 要查找人员的姓名,请确保在公式中的姓名左右加上引号。 例如,在 =VLOOKUP("袁",B2:E7,2,FALSE) 中输入姓氏“"袁"”。

有关详细信息,请参阅如何更正 #NAME! 错误。

最佳做法

要执行的操作

原因

range_lookup 使用绝对引用

通过使用绝对引用,可以向下填充公式,这样该公式始终在完全精确的查找区域内查找。

了解如何使用绝对单元格引用。

请勿将数字或日期值存储为文本。

在搜索数字或日期值时,请确保 table_array 第一列中的数据未存储为文本值。 否则,VLOOKUP 可能返回不正确或意外的值。

对第一列排序

range_lookup 为 TRUE 时使用 VLOOKUP 之前对 table_array 的第一列排序。

使用通配符

如果range_lookup为 FALSE 且lookup_value是文本, 则可以在lookup_value中使用通配符 (问号 (?) 和星号 (*))。 问号匹配任何单个字符。 星号匹配任何字符序列。 如果要查找实际的问号或星号,则在字符前键入代字号 (~)。

例如,=VLOOKUP("Fontan?",B2:E7,2,FALSE) 将搜索最后一个字符不确定的所有“袁”实例。

请确保您的数据中不包含错误的字符。

在第一列中搜索文本值时,请确保第一列中的数据没有前导空格、尾部空格、直引号(' 或 ")与弯引号(‘或“)不一致或非打印字符。 否则,VLOOKUP 可能返回意外的值。

要获得准确的结果,请尝试使用 CLEAN 函数或 TRIM 函数删除单元格中表格值后后面的后置空格。