昨天更新了XLOOKUP的“上下左右”四个方向的查询方法,这些都是前面3个参数的基本用法,除了这些用法,灵活利用XLOOKUP的剩下3个参数,就可以解决老版本需要很长的公式写出来的结果;接下来古老师继续更新XLOOKUP的第6种到第10种中阶用法

模糊查找:

有时候需要找的数据只记得部分关键字,想通过这个关键字找到对应的返回数据,此时可以用XLOOKUP的第5个参数,指定匹配类型中的 通配符匹配,其中 *和?有特殊含义。分别代表通配所有和一个单位;


【资料图】

=XLOOKUP("*"&E2&"*",B2:B8,A2:A8,"",2),公式的意思是查询包含E2单元格条件顺德的工单,用两个*号中间连接E2,来代替包含顺德的意思;效果如下图:

在上面的数据中只适合没有重复项的情况下用,当有重复项的时候只能返回一个项,返回第一项和最后一项取决于搜索指定匹配条件;从前面搜索还是后面搜索;需要模糊查询一对多的时候,需要换一个函数,录入:

=FILTER(A2:A8,IFERROR(SEARCH(I2,B2:B8),0)),通过SEARCH来判断,做为FILTER的第二参数的条件;

区间查找:

在需要对一些数据进行区间查询,并返回区间对应的条件的时候,可以用XLOOKUP的第5参数中的指定匹配类型,-1 - 完全匹配。 如果没有找到,则返回下一个较小的项。如查询99,对应 90 返回 A,此时99与90不一样,返回下一个较小的项90对应的结果A,类似VLOOKUP的模糊查询,第4参数选择1,只不过VLOOKUP需要查询数据范围是升序,XLOOKUP不用;=VLOOKUP(C28,$F$28:$G$32,2,1)

=XLOOKUP(C2,F:F,G:G,,-1),下图中不同供应商交货的数量不一样,返回的等级对应就不一样,此时用-1,执行的就是返回下一个较小项;条件区没有升序也可以;

查找最后一个数据:

有一些数据查询区域是一对多的,什么是一对多呢?一个产品电脑-1,在不同的采购时间点,价格不一样,需要查询最近一次购入的价格,如果不加第6参数,-1 - 从最后一项开始执行反向搜索,默认就是1 - 从第一项开始执行搜索。下图案例中录入函数:

方法1=XLOOKUP(E2,B:B,C:C,,,-1);

方法2=TAKE(FILTER($C$2:$C$8,$B$2:$B$8=E2),-1);

总结:就是一对多的情况从后面搜索,并返回;

一次返回多列查找:

有一些数据是连续的,需要一次性返回多列,如果是VLOOKUP函数的话,还需要嵌套COLUMN函数来实现,用XLOOKUP的话不需要嵌套其它函数,用本函数的区域引用就可以了;录入函数:

B10=XLOOKUP(A10,$A$2:$A$6,$B$2:$E$6)

B11=VLOOKUP($A11,$A$2:$E$6,COLUMN(B1),0)

通过对比,可以发现XLOOKUP的写法相对简单,缺点是是一个动态数组,需要填充下拉公式,而且数组公式不能更改;虽然VLOOKUP代码长一点,但是批量引用还是习惯用VLOOKUP;

一次返回多列列的顺序不一样

有一些数据是连续的,需要一次性返回多列,但是需要返回的列号与查询数据不一致,此时没有办法返回类似第2列、第3列、第4列这样顺序的列,用上面的批量区域范围没有效果了,此时可以用XLOOKUP+XLOOKUP来解决,也可以用经典的INDEX+MATCH来解决;

B10=XLOOKUP($A10,$A$2:$A$6,XLOOKUP(B$9,$A$1:$E$1,$A$2:$E$6))

B11=INDEX($A$1:$E$6,MATCH($A11,$A$1:$A$6,0),MATCH(B$9,$A$1:$E$1,0))

这里对比,发现XLOOKUP+XLOOKUP这个办法非常巧妙,返回区域利用第二XLOOKUP返回了业务这一列,再次通过XLOOKUP查询对应工单;这样就不用复杂的INDEX+MATCH了;

以上就是XLOOKUP的中阶用法,当XLOOKUP配合别的函数后,用法更加强大与灵活,明天更新XLOOKUP的高阶用法,未完待续……


我是古哥:

从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!

推荐内容