KutoolsforOffice — 一套方案,五大工具。事半功倍。

Excel VLOOKUP 函数

作者Siluvia修改日期

Excel VLOOKUP 函数是一款功能强大的工具,可帮助您通过匹配表格或区域第一列中的指定值,返回同一行其他列的对应数据。虽然 VLOOKUP 十分实用,但对初学者来说有时较难上手。本文将为您提供各参数的分步讲解实用示例以及常见错误的解决方案,助您轻松掌握 VLOOKUP 函数的用法。

展示 VLOOKUP 函数的用法


相关视频


参数逐步详解

如上方截图所示,VLOOKUP 函数可根据指定的 ID 号查找对应的邮箱地址。接下来,我将详细讲解在本例中如何使用 VLOOKUP,并逐步解析每个参数的含义。

步骤 1:启动 VLOOKUP 函数

编辑栏中输入以下内容,选择一个用于输出结果的单元格(本例为 H6),即可启动 VLOOKUP 函数。

=VLOOKUP(
步骤 2:指定查找值

首先,在 VLOOKUP 函数中需要指定查找值,也就是您要查找的内容。在本例中,我引用了 G6 单元格,该单元格中包含了一个 ID 号码 1005.

=VLOOKUP(G6

展示 VLOOKUP 函数的用法

注意:查找值必须在数据区域的第一列。
步骤 3:指定查找区域(table_array)

接下来,请指定包含查找值和返回值的单元格区域。本例中选择的是 B6:E12 区域。此时,公式如下所示:

=VLOOKUP(G6,B6:E12

展示 VLOOKUP 函数的用法

注意:如果希望复制 VLOOKUP 函数,在同一列查找多个值并获得不同结果,则需通过加美元符号来使用绝对引用,示例如下:
=VLOOKUP(G6,$B$6:$E$12
步骤 4:指定返回值所在列

然后,指定您希望返回值所在的列号。

在本例中,需要根据 ID 号返回邮箱地址,因此此处输入 4,指示 VLOOKUP 返回数据区域第 4 列的值。

=VLOOKUP(G6,B6:E12,4

展示 VLOOKUP 函数的用法

步骤 5:查找近似匹配或精确匹配

最后,请确认您需要查找近似匹配还是精确匹配。

  • 如需查找精确匹配,只需在最后一个参数中输入 FALSE 即可。
  • 如需查找近似匹配,只需在最后一个参数中输入 TRUE 或留空即可。

本例中,【【(PH_16)】】 选择为 FALSE。此时,公式如下:

=VLOOKUP(G6,B6:E12,4,FALSE

展示 VLOOKUP 函数的用法

按 ENTER 键获取结果

展示 VLOOKUP 函数的用法

通过逐一讲解上述示例中的每个参数,现在 VLOOKUP 函数的语法和各参数已经变得易于理解。


语法和参数

=VLOOKUP (lookup_value, table_array, col_index, [range_lookup])

  • Lookup_value(必填):要查找的值(可以是真实值或单元格引用)。请注意,此值必须位于 table_array 的第一列。
  • Table_array(必需):包含查找值所在列和返回值所在列的单元格区域。
  • Col_index(必填):用于指定包含返回值的列序号的整数;table_array 最左侧的列为 1 号。
  • Range_lookup(可选):用于指定是否进行近似匹配或精确匹配的逻辑值。
    • 近似匹配- 将此参数设置为 TRUE1 或留空
      重要:如需获得近似匹配,table_array 的首列数值必须按升序排列,否则 VLOOKUP 可能返回错误结果。
    • 精确匹配——将此参数设置为 FALSE0 即可。

示例

本节通过多个示例,助您更全面地掌握 VLOOKUP 函数的用法。

示例 1:VLOOKUP 中精确匹配与近似匹配

如果您在使用 VLOOKUP 时对精确匹配与近似匹配感到困惑,本节将为您解答疑惑。

在 VLOOKUP 中的精确匹配

本例将根据 E6:E8 区间的分数查找对应的姓名,因此我在 F6 单元格输入如下公式,并将自动填充柄向下拖至 F8. 在此公式中,最后一个参数指定为 FALSE,即可执行精确匹配查找。

=VLOOKUP(E6,$B$6:$C$12,2,FALSE)

但由于分数 98 并未出现在数据区域的第一列,VLOOKUP 会返回 #N/A 错误。

展示 VLOOKUP 函数的用法

注意:此处我已在 VLOOKUP 函数中锁定表格区域($B$6:$C$12),以便快速引用一致的数据集,对多个待检索值区域进行比对。
VLOOKUP 近似匹配

仍以上述示例为例,如果将最后一个参数设置为 TRUE,VLOOKUP 将执行近似匹配查找。若未找到完全匹配值,则会查找小于查找值的最大值,并返回对应结果。

=VLOOKUP(E6,$B$6:$C$12,2,TRUE)

由于分数 98 不存在,VLOOKUP 会查找小于 98 的最大值,即 95,并返回分数为 95 的姓名作为最接近的匹配结果。

展示 VLOOKUP 函数的用法

注意
  • 在此近似区分大小写的情况下,table_array 的首列数值必须按升序排列,否则 VLOOKUP 可能无法返回正确的结果。
  • 这里我在 VLOOKUP 函数中锁定了表格区域($B$6:$C$12),方便在查找多个值时能够快速引用同一组数据。

示例 2:VLOOKUP 多条件查找

本节将演示如何在 Excel 中利用 VLOOKUP 实现多条件查询。如下图所示,如果您需要根据姓名(H5)和部门(H6)查找对应的工资,请按照以下步骤操作。

展示 VLOOKUP 函数的用法

步骤 1:添加辅助列合并查找列的值

在这种情况下,我们需要创建一个辅助列,将姓名列与部门列的值合并。

  1. 在数据区域左侧插入一列辅助列,并为该列添加表头。请参考截图:
    展示 VLOOKUP 函数的用法
  2. 在此辅助列中,选择表头下方的第一个单元格,在编辑栏中输入以下公式,并按下 Enter 键
    =C6&" "&D6
    展示 VLOOKUP 函数的用法
    备注:此公式通过“&”符号将两列文本合并为一个文本。
    • C6姓名列中用于连接的第一个值,D6部门列中用于连接的第一个部门。
    • 这两个单元格的数值将会被连接在一起,并以空格分隔。
  3. 选中结果单元格后,拖动自动填充柄向下,即可将公式应用到同列的其他单元格。
    展示 VLOOKUP 函数的用法
步骤 2:使用给定条件应用 VLOOKUP 函数

编辑栏中输入以下公式,并在选择要输出结果的单元格(此处为 I7)后,按 Enter 键。

=VLOOKUP(I5& " "&I6,B6:F12,5,FALSE)
结果

展示 VLOOKUP 函数的用法

注意
  • 辅助列必须位于数据区域的第一列。
  • 由于薪资列现在是数据区域的第 5 列,因此我们在公式中使用数字 5 作为列索引。
  • 我们需要像使用辅助列一样,将 I5I6 这两个条件通过 (I5& " "&I6) 连接,合成匹配值,作为 lookup_value 参数可用于公式中。
  • 您还可以直接在 lookup_value 参数中输入两个条件,并用空格分隔(若为文本条件,别忘了加英文双引号)。
    =VLOOKUP("Albee IT",B6:F12,5,FALSE)
  • 更优方案——秒级多条件查找
    Kutools for ExcelLookup 多条件查找功能,助您轻松实现多条件查找,仅需数秒。立即获取 30 天完整功能免费试用!
    展示 VLOOKUP 函数的用法

常见 VLOOKUP 错误及解决方法

本节为您汇总了使用 VLOOKUP 时常见的错误及相应的解决方案,助您轻松应对各种问题。

常见 VLOOKUP 错误概览:
      
      原因 1:查找值不在首列 
    原因 2:未找到查找值 
 -——---—— 原因 3:查找值小于最小值 
   原因 4:数字为文本格式 
     原因 5:table_array 非常量 
     
  -——---—— 原因 1:查找值超过 255 个字符 
   原因 2:col_index 小于 1 
     
  -——---—— 原因 1:col_index 大于列数 
  
     
 -——---—— 原因 1:查找列未按升序排序 
  原因 2:插入或删除了列 
     

#N/A 错误返回

VLOOKUP 最常见的错误是 #N/A,这表示 Excel 未能找到您所需的值。出现 #N/A 错误的原因主要包括以下几种情况。

原因 1:查找值未在 table_array 的第一列

Excel VLOOKUP 的一个局限是只能从左到右,因此待检索值区域必须位于 table_array 的第一列。

如下图所示,我想根据给定的职务返回姓名。此时,查找值(销售经理)位于 table_array 的第二列,而返回值在查找列左侧,因此 VLOOKUP 会返回 #N/A 错误。

展示 VLOOKUP 函数的用法

解决方法

可通过以下任一方法修复此错误。

  • 重新排列列顺序
    您可以轻松调整各列顺序,将查找列移动到 table_array 的第一列。
  • 联合使用 INDEX 与 MATCH 函数
    这里通过将 INDEX 和 MATCH 函数组合使用,作为 VLOOKUP 的替代方案,轻松解决该问题。
    =INDEX(B6:B12,MATCH(F6,C6:C12,0))
    展示 VLOOKUP 函数的用法
  • 使用 XLOOKUP 函数(适用于 Excel 365、Excel 2021 及更高版本)
    =XLOOKUP(F6,C6:C12,B6:B12)

原因 2:查找值未在查找列(精确匹配)中找到

VLOOKUP 返回 #N/A 错误的最常见原因之一,是未能找到所需查找的值。

如以下示例所示,我们希望根据单元格 E6 中的分数 98 查找对应的姓名,但由于该分数并不在数据区域的第一列,VLOOKUP 会返回 #N/A 错误。

展示 VLOOKUP 函数的用法

解决方案

要修复此错误,您可以尝试以下任一方法。

  • 如需让 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 错误。

展示 VLOOKUP 函数的用法

解决方案

以下为您提供两种解决方案,供您选择。

  • 请确保查找值不小于查找列中的最小值。
  • 如需在未找到查找值时让 Excel 提示您,只需将 VLOOKUP 嵌套在 IFERROR 函数中,如下所示:
    =IFERROR(VLOOKUP(G6,B6:E12,4,TRUE),"Not found")

原因 4:数字被设置为文本格式

如截图所示,本例中的 #N/A 错误是由于查找单元格(G6)与原表中查找列(B6:B12)数据类型不匹配造成的。G6 为数字,而区域 B6:B12 的数值为文本格式。

提示:如果数字被转换为文本,单元格左上角将显示绿色小三角标记。

展示 VLOOKUP 函数的用法

解决方案

要解决此问题,需将查找值转换回数字。以下为两种方法。

  • 应用“转换为数字”功能
    单击需要将文本转换为数值的单元格,在该单元格旁边选择展示 VLOOKUP 函数的用法按钮,然后选择转换为数字即可。
    展示 VLOOKUP 函数的用法
  • 一键批量实现文本与数值互转
    Kutools for Excel文本与数值之间的转换工具,可轻松实现单元格区域内文本与数值的相互转换。立即试用 30 天完整功能版!

原因 5:在将 VLOOKUP 公式拖动至其他单元格时,table_array 未设为常量

如下图所示,E6 和 E7 单元格中分别有两个待检索的数值区域。当在 F6 得到第一个查找结果后,将 VLOOKUP 公式从 F6 向下拖动到 F7,此时会返回 #N/A 错误。这是因为默认情况下,单元格引用的区域(B6:C12)为相对引用,向下复制时会自动发生偏移,导致表格区域变为 B7:C13,已不再包含需要查找的分数 73.

展示 VLOOKUP 函数的用法

解决方法

如果您需要锁定表格区域,使其保持不变,只需在单元格引用的行号和列字母前加上$符号即可。想要深入了解 Excel 中的绝对引用,请参阅本教程:Excel 绝对引用(制作与使用方法)

展示 VLOOKUP 函数的用法

出现 #VALUE 错误

以下情况可能导致 VLOOKUP 返回 #VALUE! 错误。

原因 1:查找值超过 255 个字符

如下图所示,由于 H4 单元格中的查找值超过 255 个字符,VLOOKUP 因此返回了 #VALUE 错误。

展示 VLOOKUP 函数的用法

解决方法

为解决此限制,您可以使用能够处理更长字符串的其它查找函数。请尝试以下任一公式。

  • INDEX 与 MATCH
    =INDEX(E5:E11, MATCH(TRUE, INDEX(B5:B11=H4, 0), 0))
    展示 VLOOKUP 函数的用法
  • XLOOKUP 函数(适用于 Excel 365、Excel 2021 及更高版本):
    =XLOOKUP(H4,B5:B11,E5:E11)

原因 2:col_index 参数小于 1

列索引用于指定在表格区域中需要返回值的列号。此参数必须为正整数,并且需对应表格区域内的有效列。

如果您输入的列索引小于 1(即为零或负数),VLOOKUP 将无法在表格区域中找到对应的列。

解决方法

为解决该问题,请确保 VLOOKUP 公式中的列索引参数为正数,并且与表格区域中的有效列相匹配。

出现 #REF 错误

本节介绍了导致 VLOOKUP 返回 #REF 错误的一个常见原因,并为您提供了解决方案。

原因:col_index 参数大于所含列数

如下面的屏幕截图所示,表格区域仅包含 4 列。但在 VLOOKUP 公式中,您指定的列索引为 5,该数值已超出表格区域的实际列数。因此,VLOOKUP 无法定位到该列,最终返回 #REF 错误。

展示 VLOOKUP 函数的用法

解决方法

  • 指定正确的列号
    请确保您的 VLOOKUP 公式中的列索引参数为 table array 中的有效列号。
  • 根据指定列标题自动获取列号
    当表格包含多列时,手动查找正确的列索引号较为繁琐。此时,可将 MATCH 函数嵌套于 VLOOKUP 中,依据列标题自动定位其位置。
    =VLOOKUP(G6,B6:E12,MATCH("Email",B5:E5,0),FALSE)
    备注:在上述公式中,MATCH("Email",B5:E5, 0) 函数用于获取“Email”在区域(B5:E5)中的列号,结果为 4,并作为 VLOOKUP 的 col_index 参数。

返回值不正确

如果您发现 VLOOKUP 返回的结果不正确,可能由以下原因导致

原因 1:查找列并非按升序排列

如果您将最后一个参数设置为 TRUE(或)留空),用于近似匹配,但查找列未按升序排列,则返回的值可能会不正确。

展示 VLOOKUP 函数的用法

解决方法

将查找列升序排列可以帮助您解决此问题。操作步骤如下:

  1. 选中查找列的数据单元格,在数据选项卡的排序与筛选组中,点击排序小到大
  2. 排序警告对话框中,选择扩展选定区域选项,然后点击确定

原因 2:插入或删除了某一列

如下图所示,原本需要返回的值位于表格区域的第 4 列,因此 col_index 的数值设置为 4. 当插入新列后,结果列变为表格区域的第 5 列,导致 VLOOKUP 返回了错误的列。

展示 VLOOKUP 函数的用法

解决方法

以下为您提供两种解决方案,供您选择。

  • 您可以手动调整列索引号,使其与返回列的位置保持一致。此处的公式应修改为:
    =VLOOKUP(H6,B6:F12,5,FALSE)
  • 如果您始终需要返回某一特定列(如本例中的 Email 列),可以使用以下公式根据列标题自动匹配列索引,无论表格中插入或删除列,都能精准定位目标列。
    =VLOOKUP(H6,B6:F12,MATCH("Email",B5:E5,0),FALSE)

其他函数说明

  • VLOOKUP 只能从左向右查找。
    查找值必须位于最左侧一列,返回结果只能在查找列右侧的任意一列中。
  • 如果省略最后一个参数,VLOOKUP 将默认进行近似匹配。
  • VLOOKUP 查询结果对大小写不敏感。
  • 遇到多重匹配时,VLOOKUP 只会返回表格中第一个匹配项,并按照 table array 的行顺序进行查找。

最佳办公效率工具

🤖KUTOOLS AI 助手:基于数据分析实现变革性提升:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLOOKUP  |  多值 VLOOKUP  |   跨多表 VLOOKUP   |   模糊查找……
高级下拉列表快速创建下拉列表   |  级联下拉列表   |  多选下拉列表……
列管理器添加指定数量的列|移动列|切换隐藏列的可见状态|比较范围和列……
特色功能网格聚焦   |  设计视图   |增强编辑栏   | 工作簿和表管理器   |  资源库(自动文本)|  日期提取   |  汇总工作表  |  加密/解密单元格   | 按名单发送邮件   |  超级筛选   |   特殊筛选(筛选粗体单元格/斜体/删除线等) ......
顶级 15 工具集12 文本工具添加文本删除特定字符,……)|   50+ 图表 工具甘特图,……)|   40+ 实用公式基于生日计算年龄,……)|   19 插入工具插入二维码按路径插入图片,……)|   12 转换工具小写金额转大写汇率转换,……)|   7 合并和拆分工具高级合并行分割单元格,……)|……还有更多
在您的首选语言中使用 Kutools —— 支持英语、西班牙语、德语、法语、中文及 40+ 等多种语言!

用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效办公。Kutools for Excel 提供 300 多项高级功能,助您显著提升工作效率,轻松节省宝贵时间。点击此处,立即获取您最需要的功能……


Office Tab 为 Office 带来标签式界面,显著提升您的工作效率

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中实现标签式编辑与阅读体验。
  • 在同一窗口内新建多个标签页,以打开或创建多个文档,无需开启多个新窗口。
  • 助您提升 50% 的办公效率,每天减少上百次鼠标点击!

所有 Kutools 加载项,一站式安装

Kutools for Office 套件包含适用于 Excel、Word、Outlook 和 PowerPoint 以及 Office Tab Pro 的加载项,是团队跨 Office 应用协作的理想选择。

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 适用于 Excel、Word、Outlook 及 PowerPoint 的加载项 + Office Tab Pro
  • 一体化安装包,一份许可证— 分钟内完成安装(支持 MSI)
  • 协同更高效— 在 Office 应用间无缝提升办公效率
  • 30 天完整功能试用— 无需注册,无需信用卡
  • 超高性价比— 相比单独购买加载项更优惠