对于VLOOKUP函数想必大家不陌生,它已经服役了将近四十年,日常工作中必不可少,可以说是Excel里最成功的函数。但是对于XLOOKUP函数可能知之甚少,2019年微软正式推出了XLOOKUP函数,已经过去三年多了,也不算是新函数了。大家不怎么用的原因可能是因为XLOOKUP函数只能在office 365里使用。下面给大家介绍下XLOOKUP函数到底有多强大。
下图为官方介绍。XLOOKUP(lookup_value, lookup_array, return_array, if_not_found, match_mode, search_mode)
lookup_value:必须参数,查找值
lookup_array:必须参数,要查找的数据区域
return_array:必须参数,要返回的数据区域,结果所在的区域
if_not_found:可选参数,如果查找不到可以返回这个结果,如果啥都不填则返回#N/A
match_mode:可选参数,指定匹配类型
参数0 ,如果查不到,则返回 #N/A。如果啥都不填,则默认是0;
参数-1,如果查不到,则返回下一个较小的值;
参数1,如果没有找到,则返回下一个较大的值;
参数2 ,通配符匹配,也就是lookup_value里有通配符时,match_mode一定要填2。关于通配符的介绍,大家可移步:
search_mode:可选参数, 指定要使用的搜索模式
参数1,从第一项开始执行搜索,也就是从上到下查找,如果啥都不填,则默认是1;
参数-1,从最后一项开始执行反向搜索,也就是从下往上查找;
参数2,执行依赖于 lookup_array 按升序排序的二进制搜索。如果未排序,将返回无效结果。
1、常规查找+反向查找如下图,XLOOKUP不再是在多列里返回某一列,而是可以直接选择你想返回的列,所以可以反向查找。
2、多条件查找
如下图,不同部门可能会存在相同的人名,这时候的查找条件就需要加上部门。如果使用VLOOKUP就很麻烦,需要用到数组公式=VLOOKUP(F8&G8,IF({1,0},A:A&B:B,D:D),2,0)。公式里IF({1,0},A:A&B:B,D:D)可以理解为是IF(1,A:A&B:B,IF(0,A:A&B:B,D:D),就是把A列和B列合并再加上D列重新组合为一个表,如下图,然后就是在IF({1,0},A:A&B:B,D:D)形成的新表里返回第2列。如果使用XLOOKUP函数就很简单=XLOOKUP(F3&G3,A:A&B:B,D:D)。
3、返回多列
这里用到了Office的溢出功能,溢出表示公式已生成多个值, 并且这些值已放置在相邻的单元格中。如下图,仅在G3单元格输入了函数=XLOOKUP(F3,A1:A9,B1:D9),但是返回了三列数据。
4、屏蔽错误值
如下图,如果屏蔽错误值需要IFERROR+VLOOLUP,但是使用XLOOKUP只需要把第四个参数if_not_found填成"查不到"或者其他你想返回的值即可。
5、替代MATCH+INDEX查找
如果使用MATCH+INDEX公式为:=INDEX(B1:D9,MATCH(F23,B1:B9,0),MATCH(G22,B1:D1,0)),关于这个公式有不懂的同学可以移步:比vlookup好用的查找组合match+index;使用XLOOKUP只需要一层嵌套=XLOOKUP(F3,B1:B9,XLOOKUP(G2,B1:D1,B1:D9)),其中嵌套的XLOOKUP(G2,B1:D1,B1:D9),意思是返回第一行中是"年龄"的溢出数组,可以看下图G8的单元格。
熟能生巧,大家用示例文件练习一遍基本上就学会了。
示例文件可点链接下载:http://liyabo.ysepan.com/
网友评论