VLOOKUP 函数

如果需要在表格或区域中按行查找内容,可使用 VLOOKUP,它是一个查找和引用函数。例如,按部件号查找汽车部件的价格。

在这一最简单的形式中,VLOOKUP 函数表示:

=VLOOKUP(要查找的值、要在其中查找值的区域、区域中包含返回值的列号、精确匹配或近似匹配 – 指定为 0/FALSE 或 1/TRUE)。

您的浏览器不支持视频。 安装 Microsoft Silverlight、Adobe Flash Player 或 Internet Explorer 9。

此视频是名为 VLOOKUP:何时以及如何使用它的培训课程的一部分。

提示: VLOOKUP 的秘诀在于组织数据,这样您查找的值(部件号)位于要查找的返回值(部件价格)的左侧。

使用 VLOOKUP 函数在表中查找值。

语法

VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])

例如:

  • =VLOOKUP(105,A2:C7,2,TRUE)

  • =VLOOKUP("袁",B2:E7,2,FALSE)

参数名称

说明

lookup_value   (必需参数)

要查找的值。要查找的值必须位于 table-array 中指定的单元格区域的第一列中。

例如,如果 table-array 指定的单元格为 B2:D7,则 lookup_value 必须位于列 B 中。请参见下图。Lookup_value 可以是值,也可以是单元格引用。

Table_array   (必需参数)

VLOOKUP 在其中搜索 lookup_value 和返回值的单元格区域。

该单元格区域中的第一列必须包含 lookup_value(例如,下图中的“姓氏”)。此单元格区域中还需要包含您要查找的返回值(例如,下图中的“名字”)。

了解如何选择工作表中的区域

col_index_num   (必需参数)

其中包含返回值的单元格的编号(table-array 最左侧单元格为 1 开始编号)。

range_lookup   (可选参数)

一个逻辑值,该值指定希望 VLOOKUP 查找近似匹配还是精确匹配:

  • TRUE 假定表中的第一列按数字或字母排序,然后搜索最接近的值。这是未指定值时的默认方法。

  • FALSE 在第一列中搜索精确值。

如何开始

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

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

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

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

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

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

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

下图显示了如何设置 VLOOKUP 以返回刹车盘的价格,即 85.73

VLOOKUP 示例
  1. D13 是lookup_value,即要查找的值。

  2. B2 到 E11(在表中以黄色突出显示)是 table_array,即查阅值所在的区域。

  3. 3 是 col_index_num,即 table_array 中包含返回值的列号。在此示例中,表数组中的第三列是“零件价格”,因此公式输出将是“零件价格”列中的值。

  4. FALSE 是 range_lookup,因此返回值将是精确匹配项。

  5. VLOOKUP 公式的输出是刹车盘的价格,即 85.73

示例

下面是有关 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 大于 table-array 中的列数,则显示错误值 #REF!。

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

单元格中显示 #VALUE!

如果 table_array 小于 1,则显示错误值 #VALUE!。

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

单元格中的 #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 函数删除单元格中表格值后后面的后置空格。

你是否有特定函数问题?

在 Excel 社区论坛中发布问题

帮助我们改进 Excel

是否有关于如何改进下一版 Excel 的建议?如果有,请查看 Excel User Voice 上的主题。

相关主题

课程摘要卡:VLOOKUP 复习
课程摘要卡:VLOOKUP 疑难解答提示
你需要了解的有关 VLOOKUP 的所有内容
如何在 VLOOKUP 函数中更正 #VALUE! 错误
如何在 VLOOKUP 函数中更正 #N/A 错误
Excel 中的公式概述
如何避免损坏的公式
检测公式中的错误
Excel 函数(按字母顺序列出)
Excel 函数(按类别列出)

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×