哈喽,大家好呀~
如图所示,我们想要更直观查看每个运货商对应每个产品的客户ID。
数据源是一个一维表,要转换成一个二维表。
与以往案例不同的是,二维表要填充的是一个字符串,而不是数字。
如果要填充数字的话,直接用数据透视表就可以搞定,或者SUMIFS函数也比较方便。
可是对于字符串来说,就只能老老实实的用匹配函数去搞。
先来看下常规思路,可以使用LOOKUP得到所需的结果,公式为:
=IFERROR(LOOKUP(1,0/(($B$2:$B$19=$E2)*($C$2:$C$19=F$1)),$A$2:$A$19),"")
这是一个多条件匹配并且考虑容错的问题,使用LOOKUP算是比较简单的。
关于这些函数的用法和原理,之前发过很多相关的教程,这里就不啰嗦了。
如果需要讲解的同学在评论区留言“求讲解”。
下面重点看看使用XLOOKUP解决这个问题有多爽。
=XLOOKUP($E2&F$1,$B$2:$B$19&$C$2:$C$19,$A$2:$A$19,"")
仅对比公式的长度感觉就很爽。
如果要解释公式的原理感觉更爽了,一点也不绕,简单又直接。
XLOOKUP函数本来有六个参数的,本例只用到前四个参数,咱们就本例的公式来解释,要了解完整的XLOOKUP使用攻略请参阅之前的教程:XLOOKUP函数的用法
公式解析:
本例使用的XLOOKUP结构是=XLOOKUP(查找值,查找范围,结果范围,找不到时显示的值)。
其中查找值是$E2&F$1,也就是产品名称+运营商。
查找范围是$B$2:$B$19&$C$2:$C$19,也就是数据源中的产品名称+运营商。
查找结果是$A$2:$A$19,也就是数据源中的客户ID。
找不到时显示的值是"",也就是空值。
对于XLOOKUP来说,没有正向反向的区别,单条件与多条件直接用&合并就能用,完全不需要做大的调整,这些特性其他的查找函数都不具备,另外还可以直接指定找不到时显示的值,这就让IFERROR函数彻底无用武之地,就问你使用XLOOKUP爽不爽?
有话要说...