在实际工作中,我们经常遇到这样的需求:在Excel中,我们需要根据多个条件来查找数据,而且还要找到符合这些条件的“最后一条记录”。
比如下面这个场景,如果我们要查找指定店铺在指定日期最后销售的指定品类的颜色,公式该怎么写?

终极解决方案:XLOOKUP多条件查找公式
=XLOOKUP(K2&K3&K4,A:A&G:G&D:D,E:F,"无销售“,,-1)

用同样的&连接符,把数据源中对应的三列也“捆”在一起,形成一个虚拟的、拼接好的查找列。(VLOOKUP的查找区别不能这么写,只能利用辅助列)
这样,公式就在用“重庆大足店2024-12-5大衣”这个身份证,去匹配数据源中每一行生成的“身份证”序列。
性能提示:实际使用时,建议将整列引用(如A:A)改为精确的数据区域(如A2:A1000),能显著提升计算速度。
3、返回数组 E:F(找到后返回什么结果?)
这是XLOOKUP碾压旧函数的核心亮点之一:可以一次返回多列!
D:E表示“返回从D列到E列这个区域”。当公式在查找数组中找到匹配行时,会自动把该行对应的D列和E列值一起“抱回来”。
旧函数想返回多列?你得重复写N遍公式。现在?一步到位。
4、未找到值: "无销售" (如果没找到怎么办?)
意味着“如果没找到,就显示“无销售”。
5、匹配模式:(怎么匹配)
匹配这里留空了,意味着默认使用精确匹配
6、搜索模式 -1(从哪边开始找?)
-1是精华中的精华! 它代表“从后往前搜索”。
这有什么用?想象一下:同一个品类“大衣”在数据表里有多次记录。-1能确保你找到的是他最新的一次记录!这对于查找最新薪资、最新状态等场景,是革命性的便利。
如果你想找最早的一次,就用1(从前往后)。默认是1。
进阶:查找“重庆大足店在2024-12-5销售的所有大衣的款式明细”
=FILTER(C:F,(A:A=K2)*(G:G=K3)*(D:D=K4))
XLOOKUP 和 FILTER 函数的区别:
FILTER 负责“找到所有符合条件的”,XLOOKUP 负责“找到我要的那个”。
FILTER: 把销售部的人都给我列出来。
XLOOKUP: 帮我找一下工号是‘A001’的那个人。
XLOOKUP这个公式技巧适用于多种工作场景:
销售分析:查找某客户最后一次购买的产品信息
库存管理:查找某商品最后一次入库的记录
人事管理:查找员工最后一次调薪的详细信息
客户服务:查找客户最后一次咨询的处理情况
XLOOKUP函数基本语法和常用场景:
那些年,被VLOOKUP折磨的时光,是时候用XLOOKUP翻盘了!!
提醒: