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

相关视频
参数逐步详解
如上方截图所示,VLOOKUP 函数可根据指定的 ID 号查找对应的邮箱地址。接下来,我将详细讲解在本例中如何使用 VLOOKUP,并逐步解析每个参数的含义。
步骤 1:启动 VLOOKUP 函数
在编辑栏中输入以下内容,选择一个用于输出结果的单元格(本例为 H6),即可启动 VLOOKUP 函数。
=VLOOKUP(
步骤 2:指定查找值
首先,在 VLOOKUP 函数中需要指定查找值,也就是您要查找的内容。在本例中,我引用了 G6 单元格,该单元格中包含了一个 ID 号码 1005.
=VLOOKUP(G6

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

=VLOOKUP(G6,$B$6:$E$12
步骤 4:指定返回值所在列
然后,指定您希望返回值所在的列号。
在本例中,需要根据 ID 号返回邮箱地址,因此此处输入 4,指示 VLOOKUP 返回数据区域第 4 列的值。
=VLOOKUP(G6,B6:E12,4

步骤 5:查找近似匹配或精确匹配
最后,请确认您需要查找近似匹配还是精确匹配。
- 如需查找精确匹配,只需在最后一个参数中输入 FALSE 即可。
- 如需查找近似匹配,只需在最后一个参数中输入 TRUE 或留空即可。
本例中,【【(PH_16)】】 选择为 FALSE。此时,公式如下:
=VLOOKUP(G6,B6:E12,4,FALSE

按 ENTER 键获取结果

通过逐一讲解上述示例中的每个参数,现在 VLOOKUP 函数的语法和各参数已经变得易于理解。
语法和参数
=VLOOKUP (lookup_value, table_array, col_index, [range_lookup])
- Lookup_value(必填):要查找的值(可以是真实值或单元格引用)。请注意,此值必须位于 table_array 的第一列。
- Table_array(必需):包含查找值所在列和返回值所在列的单元格区域。
- Col_index(必填):用于指定包含返回值的列序号的整数;table_array 最左侧的列为 1 号。
- Range_lookup(可选):用于指定是否进行近似匹配或精确匹配的逻辑值。
- 近似匹配- 将此参数设置为 TRUE、1 或留空。
重要:如需获得近似匹配,table_array 的首列数值必须按升序排列,否则 VLOOKUP 可能返回错误结果。 - 精确匹配——将此参数设置为 FALSE 或 0 即可。
- 近似匹配- 将此参数设置为 TRUE、1 或留空。
示例 1:VLOOKUP 中精确匹配与近似匹配
如果您在使用 VLOOKUP 时对精确匹配与近似匹配感到困惑,本节将为您解答疑惑。
在 VLOOKUP 中的精确匹配
本例将根据 E6:E8 区间的分数查找对应的姓名,因此我在 F6 单元格输入如下公式,并将自动填充柄向下拖至 F8. 在此公式中,最后一个参数指定为 FALSE,即可执行精确匹配查找。
=VLOOKUP(E6,$B$6:$C$12,2,FALSE)
但由于分数 98 并未出现在数据区域的第一列,VLOOKUP 会返回 #N/A 错误。

VLOOKUP 近似匹配
仍以上述示例为例,如果将最后一个参数设置为 TRUE,VLOOKUP 将执行近似匹配查找。若未找到完全匹配值,则会查找小于查找值的最大值,并返回对应结果。
=VLOOKUP(E6,$B$6:$C$12,2,TRUE)
由于分数 98 不存在,VLOOKUP 会查找小于 98 的最大值,即 95,并返回分数为 95 的姓名作为最接近的匹配结果。

- 在此近似区分大小写的情况下,table_array 的首列数值必须按升序排列,否则 VLOOKUP 可能无法返回正确的结果。
- 这里我在 VLOOKUP 函数中锁定了表格区域($B$6:$C$12),方便在查找多个值时能够快速引用同一组数据。
示例 2:VLOOKUP 多条件查找
本节将演示如何在 Excel 中利用 VLOOKUP 实现多条件查询。如下图所示,如果您需要根据姓名(H5)和部门(H6)查找对应的工资,请按照以下步骤操作。

步骤 1:添加辅助列合并查找列的值
在这种情况下,我们需要创建一个辅助列,将姓名列与部门列的值合并。
- 在数据区域左侧插入一列辅助列,并为该列添加表头。请参考截图:
- 在此辅助列中,选择表头下方的第一个单元格,在编辑栏中输入以下公式,并按下 Enter 键。
=C6&" "&D6备注:此公式通过“&”符号将两列文本合并为一个文本。- C6 是姓名列中用于连接的第一个值,D6 是部门列中用于连接的第一个部门。
- 这两个单元格的数值将会被连接在一起,并以空格分隔。
- 选中结果单元格后,拖动自动填充柄向下,即可将公式应用到同列的其他单元格。
步骤 2:使用给定条件应用 VLOOKUP 函数
在编辑栏中输入以下公式,并在选择要输出结果的单元格(此处为 I7)后,按 Enter 键。
=VLOOKUP(I5& " "&I6,B6:F12,5,FALSE)
结果

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

解决方法
可通过以下任一方法修复此错误。
- 重新排列列顺序
您可以轻松调整各列顺序,将查找列移动到 table_array 的第一列。 - 联合使用 INDEX 与 MATCH 函数
这里通过将 INDEX 和 MATCH 函数组合使用,作为 VLOOKUP 的替代方案,轻松解决该问题。=INDEX(B6:B12,MATCH(F6,C6:C12,0))
- 使用 XLOOKUP 函数(适用于 Excel 365、Excel 2021 及更高版本)
=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 公式拖动至其他单元格时,table_array 未设为常量
如下图所示,E6 和 E7 单元格中分别有两个待检索的数值区域。当在 F6 得到第一个查找结果后,将 VLOOKUP 公式从 F6 向下拖动到 F7,此时会返回 #N/A 错误。这是因为默认情况下,单元格引用的区域(B6:C12)为相对引用,向下复制时会自动发生偏移,导致表格区域变为 B7:C13,已不再包含需要查找的分数 73.

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

出现 #VALUE 错误
以下情况可能导致 VLOOKUP 返回 #VALUE! 错误。
原因 1:查找值超过 255 个字符
如下图所示,由于 H4 单元格中的查找值超过 255 个字符,VLOOKUP 因此返回了 #VALUE 错误。

解决方法
为解决此限制,您可以使用能够处理更长字符串的其它查找函数。请尝试以下任一公式。
- INDEX 与 MATCH:
=INDEX(E5:E11, MATCH(TRUE, INDEX(B5:B11=H4, 0), 0))
- 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 公式中的列索引参数为 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(或)留空),用于近似匹配,但查找列未按升序排列,则返回的值可能会不正确。

解决方法
将查找列升序排列可以帮助您解决此问题。操作步骤如下:
- 选中查找列的数据单元格,在数据选项卡的排序与筛选组中,点击排序小到大。
- 在排序警告对话框中,选择扩展选定区域选项,然后点击确定。
原因 2:插入或删除了某一列
如下图所示,原本需要返回的值位于表格区域的第 4 列,因此 col_index 的数值设置为 4. 当插入新列后,结果列变为表格区域的第 5 列,导致 VLOOKUP 返回了错误的列。

解决方法
以下为您提供两种解决方案,供您选择。
- 您可以手动调整列索引号,使其与返回列的位置保持一致。此处的公式应修改为:
=VLOOKUP(H6,B6:F12,5,FALSE) - 如果您始终需要返回某一特定列(如本例中的 Email 列),可以使用以下公式根据列标题自动匹配列索引,无论表格中插入或删除列,都能精准定位目标列。
=VLOOKUP(H6,B6:F12,MATCH("Email",B5:E5,0),FALSE)
其他函数说明
- VLOOKUP 只能从左向右查找。
查找值必须位于最左侧一列,返回结果只能在查找列右侧的任意一列中。 - 如果省略最后一个参数,VLOOKUP 将默认进行近似匹配。
- VLOOKUP 查询结果对大小写不敏感。
- 遇到多重匹配时,VLOOKUP 只会返回表格中第一个匹配项,并按照 table array 的行顺序进行查找。
相关文章
20+ 个适合 Excel 新手与进阶用户的 VLOOKUP 示例
本教程将通过数十个基础与进阶实例,手把手演示 Excel 中 VLOOKUP 函数的用法,让您轻松掌握核心技巧。
VLOOKUP 右查左返
想要在任意列查找特定值,并返回左侧对应值?参考我们的教程,轻松掌握这一实用技巧!
VLOOKUP 自底向上查找
本教程为您提供两种实用方法,助您轻松实现自下而上的匹配查找。
执行区分大小写 vlookup
如果您想在 Excel 中实现区分大小写的 VLOOKUP,本文提供的方法将为您带来高效解决方案。
VLOOKUP 保持源格式
本教程为您介绍如何在 Excel 中使用 Vlookup 时,轻松保留结果单元格的全部格式设置。
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于数据分析实现变革性提升:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLOOKUP | 多值 VLOOKUP | 跨多表 VLOOKUP | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见状态|比较范围和列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按名单发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线等) ...... | |
| 顶级 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 工具(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,按路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……还有更多 |
用 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 应用协作的理想选择。
- 全能套件— 适用于 Excel、Word、Outlook 及 PowerPoint 的加载项 + Office Tab Pro
- 一体化安装包,一份许可证— 分钟内完成安装(支持 MSI)
- 协同更高效— 在 Office 应用间无缝提升办公效率
- 30 天完整功能试用— 无需注册,无需信用卡
- 超高性价比— 相比单独购买加载项更优惠





按钮,然后选择转换为数字即可。
