1.支持逆向查询
VLOOKUP函数是不支持逆向查询的,如图1所示,我们要根据工资查询对应的员工姓名,VLOOKUP函数就不能胜任了,它必须配合IF函数才可以进行逆向查询,但XLOOKUP函数就没用这样的限制。XLOOKUP函数共有六个参数,其语法为:=XLOOKUP(查找值,查找值区域,返回值区域,[未找到值],[匹配方式],[搜索模式]),默认为精确匹配,后三个参数可省略。
如图所示,其公式为:=XLOOKUP(E2,C1:C9,A1:A9)。
图12.支持多条件查询
VLOOKUP函数进行多条件查询必须要手动添加辅助列或者配合IF函数,而XLOOKUP函数只需使用&连接符就可以,如图2所示,要根据张三推广部两个条件查询对应的工资,其公式为:=XLOOKUP(E2&F2,A1:A9&B1:B9,C1:C9),将查询值和查询区域分别都用&连接起来即可。
图23.忽略错误值
VLOOKUP函数出现错误值的时候,需要搭配IFERROR函数隐藏错误值,而XLOOKUP函数不用,它的第四参数提供隐藏错误值的能力。如图3所示,我们要查询诸葛亮的工资,但是诸葛亮不存于源数据中,使用查询函数的结果必然会返回错误值,要直接隐藏错误值,其公式为:=XLOOKUP(E2,A1:A9,C1:C9,"此人不存在"),或者将第四参数设置为“”,代表空值。
图34.查找值重复,按需要匹配返回值
当查找值重复的时候,VLOOKUP函数默认匹配第一个值重复值,如图4所示,人事部为重复值,使用VLOOKUP函数返回的结果为4500,如果实际我们需要匹配最后一个重复值即4800,该如何操作呢?使用XLOOKUP函数就可以了,其公式为:=XLOOKUP(E2,B1:B9,C1:C9,,,-1),第四四五参数省略不写,第六参数为1时表示从第一个值往最后一个值搜索,为-1时表示从最后一个值往第一个值搜索,这里为-1,第六参数若省略不写默认为1。
图45.通配符匹配查找
如图5所示,我们要根据“人事”查询对应的工资,并要求匹配最后一个人事部,其公式为:=XLOOKUP(E2&"*",B1:B9,C1:C9,,2,-1),第一参数用E2&"*"表示“人事*”,第四参数省略,第五参数为2时表示通配符匹配,为0时或省略不写表示精确匹配,为1时表示匹配小于且最接近于查找值的值,为-1时表示匹配大于且最接近于查找值的值,第六参数为-1时表示从最后一个值往第一个值搜索。
图56.模糊匹配
如果查找值在查找区域中一直都不存在,且我们必须要返回某个数据(不能返回错误值),我们可以使用XLOOKUP函数。如图6所示,对员工工资进行等级判定,在D2单元格输入公式:=XLOOKUP(C2,$B$12:$B$14,$C$12:$C$14,,-1),然后向下填充,第二参数和第三参数要使用绝对引用,第四参数省略,第五参数为-1,上面已说过,为-1时表示匹配大于且最接近于查找值的值,为1时表示匹配小于且最接近于查找值的值,第六参数省略。
第一个查找值在数据区域B12:B14中并不存在,第六参数为-1,它会匹配小于4100并且最接近4100的那个数,即4000,4000对应的等级为一般,因此函数的最终结果返回“一般”,第二个参数4600在B12:B14中也不存在,那么就会匹配到B12:B14中小于4600并且最接近于4600的那个值,即4000,所以结果仍然是“一般”,后面以此类推。
图6关注小包