夜雨聆风学习资料网

ARTICLE · 1096625

Excel VLOOKUP 完整用法:4个参数+3个实战场景+3个常见报错,一篇讲透

Excel VLOOKUP 完整用法:4个参数+3个实战场景+3个常见报错,一篇讲透

如果你平时经常用 Excel,相信一定遇到过这样的场景:

  • 几百人的表格,只想查某一个人的数据;
  • 两份名单放在一起,想快速找出谁没提交;
  • 根据员工的业绩,自动判断“待提升、合格、优秀、销冠”;
  • 明明公式写对了,却突然出现 #N/A、#REF!;
  • 公式往下一拉,结果全部跑偏。

这些问题,很多都可以用一个函数解决:

VLOOKUP。

VLOOKUP 是 Excel 中非常常用的查找函数。

但很多人学会的,其实只是最基础的一种:

精确查找。

真正把 VLOOKUP 用熟,还需要搞懂它的4个参数,尤其是第4个参数 0 和 1 到底有什么区别。

这篇文章就用 3 个真实工作场景 + 3 个常见报错,把 VLOOKUP 从头到尾讲清楚。


一、先搞懂 VLOOKUP 的4个参数

VLOOKUP 的基本结构是:

=VLOOKUP(查找值, 查找区域, 返回第几列, 匹配方式)

例如:

=VLOOKUP("王五",$A$2:$D$8,3,0)

可以拆成4部分:

参数
含义
示例
第1个
找什么
"王五"
第2个
在哪里找
$A$2:$D$8
第3个
返回第几列
3
第4个
怎么匹配
0

第1个参数:找什么?

也就是你想查找的内容。

例如:

"王五"

或者直接引用单元格:

A2

第2个参数:在哪里找?

指定查找的数据区域。

例如:

$A$2:$D$8

注意:VLOOKUP 默认只会在这个区域的第1列进行查找。

所以,如果你的姓名在 A 列,就可以从 A 列开始选择区域。


第3个参数:返回第几列?

这个参数非常重要。

假设区域是:

A列:姓名B列:部门C列:业绩D列:工龄

那么:

1 → 返回姓名2 → 返回部门3 → 返回业绩4 → 返回工龄

比如:

=VLOOKUP("王五",$A$2:$D$8,3,0)

意思就是:

找到“王五”,然后返回这个区域中的第3列,也就是业绩。


第4个参数:0还是1?

这是 VLOOKUP 最容易被忽略的地方。

写 0:精确匹配

=VLOOKUP(A2,$A$2:$D$8,3,0)

意思是:

必须找到完全匹配的内容,找不到就返回 #N/A。

日常工作中,大多数查姓名、查编号、查订单号的情况,都可以使用 0。


写 1:近似匹配

=VLOOKUP(B2,$E$2:$F$5,2,1)

意思是:

根据区间进行匹配,返回对应等级。

这个功能非常适合:

成绩评级、绩效评级、提成计算、价格区间、折扣规则等。

但是有一个非常重要的前提:

查找表必须按照升序排列。


二、场景1:按照姓名查询业绩

假设我们有一份员工表:

姓名
部门
业绩
工龄
张三
销售部
85000
3
李四
技术部
45000
2
王五
销售部
92000
5
赵六
研发部
78000
4
孙七
技术部
53000
1
周八
销售部
67000
2
吴九
研发部
81000
6

现在,我们只想查询:

王五的业绩是多少?

可以使用:

=VLOOKUP("王五",$A$2:$D$8,3,0)

得到:

92000

公式可以理解成一句话:

在 A2:D8 里面找到“王五”,然后返回第3列的数据。

如果想让公式更加灵活,可以把姓名放到一个单元格里。

例如 A2 输入姓名:

=VLOOKUP(A2,$A$2:$D$8,3,0)

以后只需要修改 A2 的姓名,就能自动查询对应业绩。

一个小技巧

如果公式需要往下复制,查找区域建议加上 $:

$A$2:$D$8

这样下拉公式时,区域不会跟着移动。


三、场景2:两份名单快速核对谁没提交

这是 VLOOKUP 在工作中非常实用的一个场景。

比如:

A列是应提交名单,E列是已经提交名单。

现在需要快速找出:

谁还没有提交?

可以在 C2 输入:

=VLOOKUP(A2,$E$2:$E$6,1,0)

然后向下填充。

如果查到了,就返回对应姓名。

如果查不到,就会出现:

#N/A

例如:

姓名
核对结果
张三
张三
李四
#N/A
王五
王五
赵六
赵六
孙七
#N/A
周八
周八
吴九
吴九

于是,我们马上就能看出来:

李四、孙七没有出现在已交名单里。

这种方法特别适合:

  • 培训签到核对
  • 员工资料提交
  • 客户名单比对
  • 报名名单核查
  • 月度数据核对

原本需要人工一条条检查,用公式就可以快速完成。


四、场景3:按照业绩自动评级

这就是很多人不知道的:

VLOOKUP 第4个参数写 1

假设公司的业绩等级规则是:

业绩下限
等级
0
待提升
60000
合格
80000
优秀
90000
销冠

现在:

姓名
业绩
张三
85000
李四
45000
王五
92000
赵六
78000

想让 Excel 自动判断等级。

可以使用:

=VLOOKUP(B2,$E$2:$F$5,2,1)

结果:

姓名
业绩
等级
张三
85000
优秀
李四
45000
待提升
王五
92000
销冠
赵六
78000
合格

这里的关键就是:

最后一个参数 = 1

它不是要求“完全一样”,而是按照区间进行匹配。

例如:

85000

会落在:

80000 ≤ 85000 < 90000

所以返回:

优秀


这里一定要记住一个坑

使用:

VLOOKUP(...,1)

进行区间查找时:

等级表的第一列必须按照升序排列。

也就是:

0600008000090000

不能随便打乱顺序。

否则可能得到错误的匹配结果。


五、VLOOKUP最常见的3个报错

学会公式只是第一步。

真正工作的时候,最容易遇到的其实是下面3个问题。


01|#N/A:找不到

常见原因

查找值不在区域的第1列。

例如你写了:

=VLOOKUP(A2,$B$2:$E$8,3,0)

但是 A2 的姓名实际上在 B 列之外。

自然就找不到。

怎么解决?

检查两个地方:

① 查找值是否真的存在

② 查找区域的第1列是不是查找值所在列

记住一句话:

VLOOKUP 只能从查找区域的第一列开始找。


02|#REF!:第3个参数超过了区域列数

例如:

=VLOOKUP(A2,$A$2:$D$8,5,0)

但你选择的区域:

A、B、C、D

实际上只有4列。

你却要求返回第5列。

Excel 就会返回:

#REF!

怎么解决?

数清楚查找区域到底有几列。

例如:

A:D = 4列

那么第3个参数最多只能写:

4

03|结果错位:下拉后越来越不对

这个问题非常常见。

比如第一行:

=VLOOKUP(A2,A2:D8,3,0)

往下拖以后,可能会变成:

=VLOOKUP(A3,A3:D9,3,0)

查找区域也跟着往下移动了。

这时候结果自然可能出现问题。

怎么解决?

按:

F4

把区域锁定:

$A$2:$D$8

于是下拉以后:

=VLOOKUP(A2,$A$2:$D$8,3,0)
=VLOOKUP(A3,$A$2:$D$8,3,0)

查找区域就不会跑掉。


六、最后总结成一张速查表

参数
作用
记忆方式
第1个
查找什么
找什么
第2个
查找区域
在哪里找
第3个
返回第几列
返回哪列
第4个
匹配方式
精确还是区间

再记住:

查姓名、编号、订单号

=VLOOKUP(...,0)

精确匹配。

做等级、区间、提成

=VLOOKUP(...,1)

近似匹配 + 查找表升序排列。


七、VLOOKUP真正值得记住的,其实只有这几句话

第一:

第1个参数,告诉 Excel 找什么。

第二:

第2个参数,告诉 Excel 去哪里找。

第三:

第3个参数,告诉 Excel 返回哪一列。

第四:

0 是精确匹配,1 是近似匹配。

最后再记住两个高频操作:

公式下拉前,别忘了用 $ 锁定区域。

使用第4参数 1 时,查找表第一列要按升序排列。

掌握这几个规则,VLOOKUP 就不再只是一个“查数据”的函数了。

查业绩、核名单、自动评级、区间匹配,基本都能用上。

相关学习资料