哈喽,大家好呀~
如圖所示,我們想要更直觀查看每個運貨商對應每個産品的客戶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爽不爽?
有話要說...