📌 软件教程

Excel VLOOKUP/XLOOKUP函数从入门到精通实战教程

VLOOKUP是Excel里最常用也最容易踩坑的查找函数,XLOOKUP是其完美替代品。本文从四个参数讲透VLOOKUP语法,点出五个常见误区,详解XLOOKUP六大优势,附10个职场实战案例——批量查工号、反向查找、双条件匹配、多列返回、跨表查找、近似匹配全搞定。

✍️ 躺平快乐冠军 🕒 2026-09-19 10:01 👁 15 阅读 📖 2,468 字 ⏱ 约 5 分钟

Excel里最让人又爱又恨的函数是谁?VLOOKUP!

爱它,因为它是职场人用得最多的查找函数,几乎每个数据报表都离不开;恨它,因为它语法麻烦、容易搞错、查不到返回#N/A、插入新列公式就失效。

2026年的今天,我要告诉你一个好消息——微软在Office 365里已经用XLOOKUP取代了VLOOKUP,语法更简单、功能更强大、还能左右查找。但VLOOKUP在老版本Office里还得用,所以本文两者都讲,从入门到精通,还附带10个职场实战案例。

一、先搞清楚:VLOOKUP到底是干嘛的?

VLOOKUP的全称是Vertical Lookup,也就是"垂直查找"。简单来说:在一张表里,根据你已知的一个值(比如姓名),找到对应的另一个值(比如电话号码)。

举个最常见的例子:公司员工表有一千人,你要找张三的工号。传统方法:Ctrl+F搜索"张三",找到后看旁边的工号列。但如果有N个张三?或者你要批量找几十个人?这时候VLOOKUP就是神器。

VLOOKUP的四个参数

=VLOOKUP(查找值, 查找区域, 返回列序号, 匹配类型)

第一个参数:查找值(你要找什么)

可以是一个具体的值,比如"张三";也可以是一个单元格引用,比如A2。大部分时候我们用单元格引用,因为要批量填充公式。

第二个参数:查找区域(在哪里找)

这是VLOOKUP最容易搞错的地方。查找区域必须满足一个条件:查找值所在的列必须是这个区域的第一列!

比如你要根据姓名查工号,那查找区域的第一列必须是姓名列,工号列在后面。如果工号列在姓名列前面,VLOOKUP就搞不定了(这就是XLOOKUP诞生的原因)。

第三个参数:返回列序号(找到后返回第几列)

注意!这个序号是相对于查找区域的,不是相对于整个表格的。比如查找区域是B:E,那序号1=B列,2=C列,3=D列,4=E列。

第四个参数:匹配类型(精确还是模糊)

0或FALSE = 精确匹配,找不到返回#N/A。99%的职场场景用这个!

1或TRUE = 近似匹配,只适用于数字区间查找(比如根据分数查等级)。用这个的时候查找区域的第一列必须升序排列。

VLOOKUP入门示例

假设A列是姓名(A2:A100),B列是工号(B2:B100),要找E2单元格"王五"的工号:

=VLOOKUP(E2, A:B, 2, 0)

意思:在A列找E2的值,找到后返回同一行的B列(区域第2列),精确匹配。

二、VLOOKUP最常见的5个坑

坑1:查找值不在第一列

比如你要根据工号查姓名,但工号在B列,姓名在A列。VLOOKUP搞不定,因为它只能从左往右找。

解决方法:用INDEX+MATCH组合,或者升级到XLOOKUP。

坑2:查找区域没加$锁行号

写公式时如果是=VLOOKUP(E2, A2:B100, 2, 0),向下填充的时候区域会变成A3:B101、A4:B102……数据区域会溜走!

正确写法:=VLOOKUP(E2, $A$2:$B$100, 2, 0),用$符号固定住行号和列号。或者直接引用整列:=VLOOKUP(E2, A:B, 2, 0),更省事。

坑3:返回列序号是相对的不是绝对的

很多人以为序号是"第几列"(相对于A列),其实是相对于查找区域的第几列。区域变了,序号就变了。

坑4:近似匹配没排序

用VLOOKUP第四个参数=1(近似匹配)时,查找区域的第一列必须升序排列,否则结果是错的。这个坑踩过的人不少。

坑5:有空格/不可见字符

"张三 "和"张三"看起来一样,但VLOOKUP认为它们不同,返回#N/A。

解决方法:用TRIM函数去掉尾部空格,或者用CLEAN函数去掉不可见字符。=VLOOKUP(TRIM(E2), A:B, 2, 0)

三、XLOOKUP:VLOOKUP的完美替代品

XLOOKUP是Office 365(2021年之后的版本)才有的新函数,完美解决了VLOOKUP的所有痛点。语法更简单:

=XLOOKUP(查找值, 查找列, 返回列, 找不到返回什么)

XLOOKUP vs VLOOKUP 对比

从右往左查:VLOOKUP只能左→右,XLOOKUP可以任意方向。比如根据工号查姓名:=XLOOKUP(E2, B:B, A:A),完美!

默认精确匹配:不需要第四个参数,XLOOKUP默认就是精确匹配。

找不到可以自定义返回:=XLOOKUP(E2, A:A, B:B, "未找到"),比VLOOKUP嵌套IFERROR更简洁。

多行返回:=XLOOKUP(E2, A:A, B:D)可以一次性返回多列(工号、部门、职位),VLOOKUP要写三遍。

不需要锁行号:XLOOKUP用的是两个独立的整列引用,不存在VLOOKUP填充时区域溜走的问题。

XLOOKUP实战

根据姓名查工号:=XLOOKUP("王五", A:A, B:B)

根据工号查姓名(反向查找):=XLOOKUP("G008", B:B, A:A)

根据姓名查工号+部门+职位(多行返回):=XLOOKUP(E2, A:A, B:D)

找不到显示"未找到":=XLOOKUP(E2, A:A, B:B, "未找到")

重要提示:如果公司用的是Office 2019或更早版本,XLOOKUP用不了。这时候用INDEX+MATCH组合代替VLOOKUP也能实现反向查找:

=INDEX(A:A, MATCH(E2, B:B, 0))

意思:在B列找E2的值,返回A列同一行的值。效果等同XLOOKUP,而且所有Excel版本都能用。

四、VLOOKUP/XLOOKUP 10个职场实战案例

案例1:员工表批量查工号

需求:根据姓名批量查工号。

公式:=VLOOKUP(A2, 员工表!A:B, 2, 0) 或 =XLOOKUP(A2, 员工表!A:A, 员工表!B:B)

案例2:根据工号反查姓名

需求:工号在前,姓名在后,VLOOKUP搞不定。

XLOOKUP:=XLOOKUP(B2, 员工表!B:B, 员工表!A:A)

INDEX+MATCH:=INDEX(员工表!A:A, MATCH(B2, 员工表!B:B, 0))

案例3:根据分数查等级(近似匹配)

需求:分数≥90=优,80-89=良,70-79=中,60-69=及格,<60=不及格。

先建一个等级表:A列放边界分数(0,60,70,80,90),B列放等级。然后:

=VLOOKUP(B2, $E$2:$F$6, 2, 1) (第四个参数=1近似匹配,等级表升序排列)

案例4:双条件查找(姓名+部门)

需求:同名不同部门,要同时匹配姓名和部门。

XLOOKUP支持数组:=XLOOKUP(A2&B2, 员工表!A:A&员工表!C:C, 员工表!B:B)

意思:A2&B2合并成一个条件,在A:A&C:C(姓名+部门)里找。

案例5:批量合并两张表

需求:表1有姓名和手机号,表2有姓名和地址,合并成一张完整表。

在表1里加一列,公式:=XLOOKUP(A2, 表2!A:A, 表2!B:B),向下填充,搞定。

案例6:查找并返回多列

需求:根据姓名一次性返回工号、部门、职位三列。

XLOOKUP:=XLOOKUP(A2, 员工表!A:A, 员工表!B:D),一个公式返回三列!

VLOOKUP需要写三个:=VLOOKUP(A2, A:D, 2, 0)、=VLOOKUP(A2, A:D, 3, 0)、=VLOOKUP(A2, A:D, 4, 0)

案例7:找不到返回0而非#N/A

需求:计算公式时#N/A会导致整个公式报错。

XLOOKUP:=XLOOKUP(A2, A:A, B:B, 0)

VLOOKUP:=IFERROR(VLOOKUP(A2, A:B, 2, 0), 0)

案例8:跨多个工作表查找

需求:根据姓名在多个分公司的表里查找工号。

=XLOOKUP(A2, 上海!A:A, 上海!B:B, XLOOKUP(A2, 北京!A:A, 北京!B:B, XLOOKUP(A2, 广州!A:A, 广州!B:B, "未找到")))

一层层嵌套,在多个表里依次查找。

案例9:模糊查找(包含关键词)

需求:查找包含"销售"两个字的部门。

=XLOOKUP("*销售*", A:A, B:B, , 2)

最后一个参数2表示通配符匹配,*是任意字符通配符。

案例10:动态列查找

需求:根据下拉框选择的"工号/部门/职位"动态返回对应列。

=XLOOKUP(A2, 员工表!A:A, XLOOKUP(F2, 员工表!A1:D1, 员工表!A:D))

里面的XLOOKUP根据F2选的内容决定返回A:D的第几列。

五、VLOOKUP vs XLOOKUP 谁该学?

如果你用Office 365:直接学XLOOKUP,抛弃VLOOKUP。简单、强大、没坑。

如果你用Office 2019或更早:VLOOKUP必须会,INDEX+MATCH也必须会(解决VLOOKUP反向查找的问题)。

如果公司电脑版本杂:两个都学,但优先用XLOOKUP,老版本用INDEX+MATCH兜底。

好了,VLOOKUP和XLOOKUP就讲到这里。这两个函数是Excel里最重要的查找函数,学会了能让你的工作效率翻倍。下次有人说"帮我从这张表里找一下",你就能三秒钟搞定。

晚安,打工人。

🔠 字号

看累了?去工具区松一松 🧘

白噪音、深呼吸、三分钟小游戏,满血复活再回来。