你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天来展示下XLOOKUP的用法,它的功能实在是强大,不仅结合了之前多个函数的用法,还新增了像XMATCH的乱序匹配和倒序搜索的功能,以及可以 返回引用 的功能。
XLOOKUP功能展示
先来简单看下XLOOKUP的语法:
=XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found],[match_mode],[search_mode])
有6个参数,中文形式为
XLOOKUP(查找的值,查找的区域,返回结果的区域,[如果找不到,让它返回的值],[匹配的模式],[搜索的方式])
有关参数的详细说明,请参考帮助。今天主要来展示它的功能,不讲用法,以后再详细说用法。
1)普通查找
根据编号查找姓名,公式为 =XLOOKUP(E4,A3:A13,B3:B13) ,可以看到它的第2,3参数是分开写的,有点像LOOKUP的写法,但它又是精确匹配。 2)逆向查找 根据姓名查找编号,公式为 =XLOOKUP(E19,B18:B28,A18:A28) 。由于第2,3参数是分开写的,所以可以灵活选择,自然能实现逆向查找。不像VLOOKUP那么“死板”。
3)返回多个结果
根据编号查找姓名和部门,公式为 =XLOOKUP(E34,A33:A43,B33:C43) 。它的第3参数B33:C43是个两列的区域,从这个区域中同时返回相应的姓名和部门。 当然也可以用FILTER,公式为 =FILTER(B33:C43,A33:A43=E34) 。但FILTER返回的结果不是引用,而XLOOKUP返回的结果可以是引用。
4)同时返回第一次和最后一次的结果
同时查找“生产部”第一次和最后一次的姓名,公式为=XLOOKUP(E49,C48:C58,B48:B58,,,{1,-1})。这里用到了它的第6参数搜索方式,顺序搜索和倒序搜索同时使用。
5)通配符匹配,同时返回第一次和最后一次的结果
查找姓名中包含“春”字的第一个和最后一个姓名,公式为=XLOOKUP("*"&E64&"*",B63:B73,B63:B73,,2,{1,-1})。第5参数使用2,表示使用通配符匹配模式。
6)用第4参数容错处理
在A列的编号中找不到编号1000,默认会返回错误值。这时可以用第4参数来处理找不到查找值的情况。公式为=XLOOKUP(E79,A78:A88,B78:B88,"找不到"),找不到时让它返回"找不到",相当于用了一个IFERROR。
7)交叉查询
使用XLOOKUP的嵌套,可以实现交叉查询。公式为=XLOOKUP(C93,B95:E95,XLOOKUP(B93,A96:A102,B96:E102))。
由于XLOOKUP返回的结果是引用,也可以使用下图的公式 。就是2个XLOOKUP返回的引用取交集。
8)模糊匹配
根据收入查找税率,公式为=XLOOKUP(D108,B107:B112,A107:A112,0,-1)。第5参数使用-1,表示使用模糊匹配,匹配等于D108或比D108小一级的收入,并返回对应的税率。
9)有条件的提取不重复值
提取A商店不重复的水果种类,在F119单元格输入下面的公式,下拉填充。
=XLOOKUP(1,(COUNTIF(F$118:F118,B$117:B$128)=0)*(A$117:A$128=E$119),B$117:B$128,"")