在出了一篇VLOOKUP函数后,好多表哥表姐表示要投XLOOKUP一票,其实在写VLOOKUP时我也想到这个函数了,只是考虑很多表哥表姐的电子表格应用版本可能不是最新的,还没有这个函数(其实我自己电脑也没有
)。XLOOKUP函数作为一个更强大的查找工具支持横向、纵向、反向、行/列、多条件、模糊……查找,完美包含了所有在表格里需要查找数据的情况。这里我现学现用来跟大家一起学习下这个非常实用的函数,助你大幅提升数据处理效率。
XLOOKUP函数是WPS Office和微软的Excel最新版本中提供的查找和引用函数。其强大之处在于它解决了VLOOKUP的诸多限制,比如无法向左查找、无法处理动态数组等。
XLOOKUP函数的完整语法为:
=XLOOKUP(查找值, 查找数组, 返回数组, [未找到值], [匹配模式], [搜索模式])
查找值:你想找什么
查找数组:在哪里找
返回数组:找到后返回什么
未找到值(可选):找不到时显示什么
匹配模式(可选):如何匹配(精确、通配符等)
搜索模式(可选):搜索方向(从前向后或从后向前)
XLOOKUP最基础的用法是纵向查找。假设我们有一个员工信息表,想查找员工号“001”的姓名,只需设置查找值为“001”所在单元格,查找数组为员工ID列,返回数组为姓名列即可。
更强大的是,XLOOKUP同样支持横向查找——这是VLOOKUP无法做到的。例如,当数据以水平方式排列时,我们可以将查找数组设置为员工ID行,返回数组设置为姓名行,轻松完成横向数据检索。
来,眼过千遍不如手过一遍,样板数据如下图:

横向竖向查找演示:

=XLOOKUP(G2,A1:A5,B1:B5,"Not Found",0)
=XLOOKUP(G10,A10:E10,A12:E12,"Not Found",0)
3. 反向查找:突破传统限制
传统VLOOKUP函数只能向右查找,而XLOOKUP完全不受此限制。如果需要根据姓名查找对应员工ID,只需将查找值设为姓名,查找数组设为姓名列,返回数组设为员工ID列即可。这种灵活的方向性让数据组织更自由。
反向查找演示:

=XLOOKUP(G2,B1:B5,A1:A5,"Not Found",0)
XLOOKUP不仅能返回单个值,还能返回整行或整列数据:
整行查找:查找“001”员工的姓名和部门,只需选择需要填充的多个单元格,设置返回数组为包含姓名和部门的列区域
整列查找:要查找多位员工的薪资,可将查找值设为包含多个姓名的区域,返回数组设为薪资列
这两种情况下,都需要使用Ctrl+Shift+Enter组合键进行数组公式输入,实现批量数据填充。

=XLOOKUP(G2,A1:A5,B1:C5,,0)

=XLOOKUP(G2:G4,B1:B5,D1:D5,,0)
倒序查找:当我们需要查找某员工“最后一个月”的薪资时,只需将搜索模式参数设为“-1”,函数就会从数据底部开始向上搜索,返回最后一个匹配项
多条件查找:通过“&”符号连接多个条件,如“姓名”和“部门”,再相应连接查找数组中的姓名列和部门列,即可实现精确的多条件匹配
XLOOKUP支持通配符查找:
使用“”表示任意字符序列,如“李*”可查找所有包含“李”的姓名
使用“?”表示单个字符
匹配模式参数可以控制匹配方式:
0:精确匹配(默认)
-1:精确匹配或下一个较小项
1:精确匹配或下一个较大项
2:通配符匹配
例如,使用匹配模式“-1”可以将保龄球分数自动匹配到对应的评级区间。
对于大型表格,有时需要同时确定行和列的交叉点。XLOOKUP可以嵌套使用实现这一需求:
=XLOOKUP(姓名, 姓名列, XLOOKUP(项目, 项目行, 数据区域))
第一个XLOOKUP确定行位置,第二个确定列位置,两者结合返回交叉点的值。
传统查找函数在找不到匹配项时会返回#N/A错误,而XLOOKUP允许自定义未找到时的返回值。只需在“未找到值”参数中填写想要显示的内容,如“未找到记录”,即可使表格更加用户友好。
为了更直观地展示这两个函数的能力区别,以下是它们的核心功能对比:
| 功能特性 | XLOOKUP | VLOOKUP |
|---|---|---|
| 查找方向 | ||
| 返回值类型 | ||
| 动态数组支持 | ||
| 通配符查找 | ||
| 错误处理 | ||
| 反向查找 |
随着你对这个函数的掌握越来越深入,你会发现许多以前需要复杂公式组合才能解决的问题,现在只需要一个简洁的XLOOKUP公式就能搞定。