excel vlookup 用法
所属主题:Excel 常用函数清单 Excel 函数速查
围绕「excel vlookup 用法」,本文重点梳理功能入口、操作顺序和结果核对方法,减少来回试错。
VLOOKUP(垂直查找)是 Excel 中最常用的查找与引用函数之一。它的核心作用是:在一个表格或区域的首列中查找某个值,然后返回同一行中指定列的值。
简单来说,就是“根据一个关键词,从一张表里找出对应的信息”。无论是根据员工编号找姓名、根据产品代码查单价,还是根据订单号匹配客户信息,VLOOKUP 都是处理这类任务的标配工具。
VLOOKUP 在哪里能找到?
- 功能区路径:
公式选项卡 →查找与引用→VLOOKUP。 - 快捷键:在单元格输入
=后,直接键入VLOOKUP,Excel 会自动提示函数参数。 - 适用版本:Excel 2010、2013、2016、2019、Microsoft 365 以及 WPS 表格均支持此函数。在 Microsoft 365 和 Excel 2021 中,官方推荐的新函数
XLOOKUP更灵活,但 VLOOKUP 仍是绝大多数用户和环境下的通用方案。
VLOOKUP 的 4 个核心参数

`` VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]) ``
| 参数 | 含义 | 必须 | 典型值 | |------|------|------|--------| | lookup_value | 要查找的值(查找依据) | 是 | 产品代码、员工编号 | | table_array | 包含数据的整个表格区域,查找列必须是第一列 | 是 | A2:D100、带美元符号的绝对引用 | | col_index_num | 要返回的数据在区域中的列数(第一列为 1) | 是 | 3(表示返回第 3 列的值) | | range_lookup | 匹配方式:TRUE=近似匹配 / FALSE=精确匹配 | 否 | 正式工作场景绝大多数用 FALSE |
分步操作:写第一个 VLOOKUP
假设你有一个产品价格表,A 列是产品代码,B 列是产品名称,C 列是单价。现在要根据代码查出单价。
步骤 1:准备数据

确保查找列(产品代码)在你的表格区域的最左侧。这是 VLOOKUP 的铁律——它只能从左向右查。
步骤 2:选择输出单元格
在你想显示单价的单元格(比如 E2)开始写公式。
步骤 3:输入 VLOOKUP
在 E2 输入: `` =VLOOKUP(D2, A2:C100, 3, FALSE) ``
步骤 4:解释公式
D2:你要根据什么来找?这里放待查的产品代码。A2:C100:去哪找?完整的产品数据表。务必按 F4 转为绝对引用$A$2:$C$100,防止向下填充时区域偏移。3:要返回哪一列的值?单价在区域第 3 列,所以填 3。FALSE:精确匹配。绝大部分实际工作都选这个,避免得到错误结果。
步骤 5:填充公式
选中 E2,双击右下角填充柄,或向下拖动,即可对整列完成查找。
VLOOKUP 与 XLOOKUP 对比
| 特性 | VLOOKUP | XLOOKUP(Microsoft 365/Excel 2021) | |------|---------|-------------------------------------| | 查找方向 | 只能从左向右 | 任意方向 | | 近似匹配 | 需要排序 | 不需要排序 | | 无匹配时处理 | 返回 #N/A | 可自定义返回文本 | | 性能(大数据量) | 较慢 | 更快 | | 兼容性 | 所有 Excel 版本 | 仅较新版本 |
最佳实践:如果你的 Excel 版本支持 XLOOKUP,优先用它;否则 VLOOKUP 是稳定可靠的选择。
常见错误与排查
#N/A 错误
原因:查找值在表格第一列中找不到。 检查:查看值和表中数据是否一致——空格、文本前后的不可见字符(常见于从系统导出的数据)、数字格式(文本 vs 数值)都是隐藏差异。
#REF! 错误
原因:col_index_num 超过表格区域的列数。 检查:你的区域是 A2:C100(3 列),但参数填了 4,就会报错。
#VALUE! 错误
原因:col_index_num 填写了小于 1 的值。 检查:确保参数为大于等于 1 的整数。
返回了错误的结果,但没有报错
原因:使用了 TRUE(近似匹配)却没有对查找列做升序排序。这是新手最常踩的坑。 解决:默认参数 FALSE 强制精确匹配,不要偷懒省略第四参数。
什么时候不要用 VLOOKUP
- 需要向左查找(查找列在右边,要返回左边数据):改用
INDEX+MATCH或XLOOKUP。 - 需要从右向左多列查找:“查找一次返回多列”VLOOKUP 做不到,建议用
INDEX+MATCH构造数组公式或 XLOOKUP。 - 查找列不是表格最左列:VLOOKUP 无法处理,需要重构表格布局或选用其他函数。
- 数据量超过 10 万行:VLOOKUP 性能明显下降,后续数据处理建议使用 Power Query 或数据库工具。
实用提示
- 锁定区域:总是给
table_array加$(绝对引用),这是新手最容易遗漏的步骤。 - 嵌套处理错误:用
IFERROR(VLOOKUP(...), "未找到")来避免 #N/A 影响阅读。 - 查找值格式一致:如果查找值是数字但表中存成文本(或反之),VLOOKUP 会返回 #N/A。可以用
VLOOKUP(VALUE(D2), ...)或VLOOKUP(TEXT(D2, "0"), ...)预先转换格式。 - 使用表功能:如果数据已定义为 Excel 表(Ctrl+T 创建),
table_array可以用表名或表名[列名]代替,公式更容易理解和维护。
Excel VLOOKUP 用法 FAQ
VLOOKUP 只能精确匹配吗?
不是。第四参数 FALSE 是精确匹配;TRUE 是近似匹配(要求查找列升序排序)。实际工作中,99% 的场景用精确匹配。近似匹配常用于分段税率、折扣阶梯这类连续区间查找。
VLOOKUP 和 INDEX+MATCH 哪个好?
两害相权:INDEX+MATCH 更灵活,不限制查找列位置,且性能略优。但 VLOOKUP 更直观,语法简单,对初学者友好。如果你的版本支持 XLOOKUP,它是更优的替代方案。
VLOOKUP 可以跨工作表查找吗?
可以。在 table_array 参数中引用其他工作表的区域即可,例如 =VLOOKUP(D2, 价格表!$A$2:$C$100, 3, FALSE)。跨工作簿查找原理相同,但需要确保源工作簿打开且路径正确。
为什么 VLOOKUP 只返回第一个匹配?
VLOOKUP 的机制是返回第一个符合查找值的记录。如果你的数据中存在重复查找值(比如同一个客户有多个订单场景),VLOOKUP 只会返回第一次出现的行数据。此时需要配合辅助列或改用其他方法(如 SUMIFS、筛选、数据透视表)来处理多值场景。
继续阅读
- 需要时再对照 Excel Online:浏览器里的完整电子表格体验。
- 可以继续看 excel错误值以什么开头。
- 建议接着读 excel公式函数 包含。