VLOOKUP 函数语法与实战教程
在表格的首列查找值,并返回同一行中指定列的值。
函数语法
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])基础使用示例
=VLOOKUP("Apple", A1:B10, 2, FALSE)相关推荐函数
VLOOKUP函数完全指南 - 从入门到精通
VLOOKUP是Excel中享负盛名的纵向查找与核对函数。它能够在目标表格的首列快速检索指定键值(如员工工号、商品编码),并跨列提取对应行中的属性值。本指南结合职场高频业务案例,深入拆解精准匹配、模糊查找、避免#N/A报错的核心避坑技巧。
语法详解
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
参数说明
需要在数据表首列中进行查找的目标值(如工号单元格 A2)。
包含待查数据的信息区域。注意:该区域的首列必须是包含查找值的列(建议加绝对引用如 $A$2:$E$100)。
希望从 table_array 中返回第几列的值。第1列为 1,第2列为 2,以此类推。
匹配方式。FALSE 或 0 表示精确匹配(推荐99%场景使用);TRUE 或 1 表示近似区间匹配。
实际应用场景
职场实战 1:两张表格按工号批量比对与数据匹配
财务或人事部门经常需要从右侧的总表库中,根据 A 列工号提取对应的员工姓名与部门信息。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 待查工号 | 待查姓名 | 总库工号 | 总库部门 | 总库薪资 |
| 2 | E1001 | 张小明 | E1001 | 技术部 | 15000 |
| 3 | E1002 | 李晓红 | E1002 | 财务部 | 12000 |
| 4 | E1003 | 王大力 | E1003 | 市场部 | 13500 |
=VLOOKUP(A2, $C$2:$E$4, 2, FALSE)结果:返回"技术部"(从 C2:E4 区域第 1 列查找工号 A2,提取第 2 列“总库部门”)
职场实战 2:销售订单自动带出商品单价
在录入出库单据时,只需输入商品编码,单价自动自动带出,大幅减少人工输入差错。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 销售编码 | 品名 | 价格库编码 | 价格库品名 | 价格库单价 |
| 2 | P01 | 无线鼠标 | P01 | 无线鼠标 | 69.00 |
| 3 | P02 | 机械键盘 | P02 | 机械键盘 | 299.00 |
=VLOOKUP(A2, $C$2:$E$3, 3, FALSE)结果:返回 69.00(匹配 A2 编码并在第 3 列获取商品单价)
进阶使用技巧
技巧 1:永远牢记为数据源区域添加绝对引用 ($)
公式编写为 =VLOOKUP(A2, D2:F100, 2, FALSE) 向下拖动填充时,D2:F100 会自动变成 D3:F101、D4:F102,导致查找范围逐步缩小而产生大面积 #N/A。务必按 F4 键将其锁死为 $D$2:$F$100。
=VLOOKUP(A2, $D$2:$F$100, 2, FALSE)技巧 2:巧妙利用通配符进行模糊包含查找
如果单元格中只包含关键字(如公司全称与简称匹配),可以使用星号 (*) 通配符。
=VLOOKUP("*"&A2&"*", $D$2:$E$100, 2, FALSE)技巧 3:消除格式不一致导致的假性查找失败
常见痛点是查找列为纯数字(数值型),而目标表首列是文本型数字。可以用 &"" 强制转文本,或 *1 强制转数值。
=VLOOKUP(A2&"", $D$2:$E$100, 2, FALSE)常见错误与解决方案
❌ #N/A 找不到匹配值报错
最常见的报错。原因主要有三种:1) 目标值确实不存在;2) 查找区域首列不包含查找值;3) 两边单元格存在看不见的多余空格,或数据类型不一致(文本 vs 数值)。
✅ 解决方案
使用 TRIM(A2) 去除空格;使用 IFERROR 屏蔽报错;检查第4个参数是否误填成了 TRUE。
正确写法: =IFERROR(VLOOKUP(TRIM(A2), $D$2:$F$100, 2, 0), "查无此人")❌ #REF! 引用位置超出范围
第3个参数 col_index_num 超过了第2个参数数据表实际的总列数。例如范围只选了 A:B 两列,第3个参数却写了 3。
✅ 解决方案
重新核对选择的数据区域列数,确保列号索引小于等于所选区域的总列宽。
❌ 匹配结果完全错误或张冠李戴
第4个参数省略未填,或写成了 TRUE。这会触发“近似匹配”,导致 Excel 在未严格升序排序的数据表中返回临近的错误数据。
✅ 解决方案
始终显式写明第4个参数为 0 或 FALSE。
函数组合应用
VLOOKUP + IFERROR:完美容错保护
在查找失败时不显示扎眼的 #N/A,而是显示空白或友好提示。
=IFERROR(VLOOKUP(A2, $D$2:$F$100, 2, FALSE), "未查到")先执行 VLOOKUP 检索,如果正常匹配则返回结果,若出现任何错误则由 IFERROR 接管并输出 "未查到"。
VLOOKUP + MATCH:动态列号自适应查找
避免因为源数据表中间插入了新列导致固定的列号(如第3列)取错数据。
=VLOOKUP(A2, $D$1:$H$100, MATCH("实发工资", $D$1:$H$1, 0), FALSE)利用 MATCH 动态扫描表头中"实发工资"所在的位置作为 VLOOKUP 的第3参数,即便调换列序公式依然精准。
练习题
练习 1: 练习 1:跨表提取产品单价
在 A 列填入产品编码,需要从 G1:H20 的价格参考表中查出单价。
给定数据:
当前产品: A2="P105";价格表 G1:G20 为编码,H1:H20 为单价。
练习 2: 练习 2:找不到匹配时自动显示为空白
要求在查不到该员工工号时,单元格保持整洁的完全空白,不能显示 #N/A。
学习资源下载
VLOOKUP函数练习模板
包含多个实际案例的Excel模板,帮助您快速掌握函数用法
函数速查卡片
VLOOKUP函数的快速参考卡片,包含语法、参数和常用示例