在Excel的函数江湖里,有一个函数堪称"查询神器"——它就是VLOOKUP。
无论你是HR整理员工档案,还是财务核对账目,又或者运营做数据分析,VLOOKUP都能帮你快速从茫茫数据海洋中捞出你需要的那一条。它的逻辑非常直观:按列查找,返回对应结果。
学会它,效率提升何止10倍。今天这篇,带你彻底搞懂VLOOKUP。
一、函数介绍
VLOOKUP,全称Vertical Lookup,意思是纵向查找。它的用法很像查字典:给出一个关键词,它在表格的第一列中搜索匹配项,然后返回同一行中指定列位置的结果。
最经典的场景就是员工档案查询——输入工号,自动查出姓名、部门、职位等信息:
上面这张表,就是今天所有例子的原始数据。
二、语法详解
VLOOKUP的完整公式:
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
四个参数,逐个拆解:
range_lookup 两种模式:
- •
FALSE 或 0:精确匹配——查不到就报错,这是最常用的模式 - •
TRUE 或 1:模糊匹配——适用于区间查找(如评级、分数段),辅助表必须升序排列
强烈建议:日常使用一律写 FALSE。模糊匹配容易出意外,除非你非常清楚自己在做什么。
三、实战案例
案例1:查找员工职位(最基础用法)
上面这张员工表,要想知道工号"A001"的员工是什么职位,在目标单元格输入:
=VLOOKUP("A001", A1:E9, 4, FALSE)
结果:经理
公式解读:
- •
4 → 返回第4列(职位),因为职位在表里排第4列
同样道理,查"A003"是什么职位:
=VLOOKUP("A003", A1:E9, 4, FALSE)
结果:专员
案例2:跨表查询
实际工作中,员工信息通常在另一张Sheet里。这时需要用 Sheet引用:
假设员工档案在 Sheet2!A1:E9,要查"A006"的部门:
=VLOOKUP("A006", Sheet2!A1:E9, 3, FALSE)
结果:销售一部
注意:table_array 范围建议加上 $ 锁定,否则向下填充时范围会跑偏:
=VLOOKUP("A006", Sheet2!$A$1:$E$9, 3, FALSE)
案例3:模糊匹配——自动评级
VLOOKUP也可以做区间查找。比如根据销售达成率自动评定等级:
需要先准备一张评级辅助表(必须升序排列),然后:
=VLOOKUP(0.85, 辅助表!$A$1:$B$5, 2, TRUE)
返回:B(因为0.85在0.8和0.9之间)
模糊匹配的工作原理:找到小于等于查找值的最大那个,返回对应的评级。所以辅助表必须升序排列,否则结果会出错。
四、常见错误
#N/A —— 查不到
最常见的报错,意思是"表格里没有这个值"。
常见原因:
- • 有多余空格:
" A001" vs "A001" - • 数据类型不一致:数字
1001 vs 文本 "1001"
解决方法:
=VLOOKUP(TRIM(A2), 数据表, 4, FALSE) 清除空格=VLOOKUP(VALUE(A2), 数据表, 4, FALSE) 数字转文本
#REF! —— 列号超范围
指定的列号超过了表格的实际列数。比如表格只有5列,但写了第6列:
=VLOOKUP("A001", A1:E9, 6, FALSE) ❌ 报错
结果总是第一行的数据
大多数情况是因为查找值不在表格第一列。VLOOKUP只能查找第一列,想查左边的列,需要改用 INDEX+MATCH 组合。
向下填充后结果全乱了
这是因为没有锁定范围。正确写法:
=VLOOKUP(A2, $A$1:$E$9, 4, FALSE) ✅ 加了$锁定
五、VLOOKUP的局限
不过,日常办公场景中,VLOOKUP能解决90%的查询问题。先把它用熟练,再去学 INDEX+MATCH 和 XLOOKUP。
六、练习题
打开练习文件,在黄色单元格中填入正确的VLOOKUP公式:
题目1:根据工号"A004"查部门 题目2:根据工号"A007"查入职年份 题目3:根据工号"A002"查姓名
📚 配套资料免费领
公众号回复:VLOOKUP
点击菜单「函数教程」或直接发送关键词,即可获得示例文档和练习题
评论「VLOOKUP」,马上领取!