上期給大家聊了如何使用VLOOKUP進(jìn)行一對一數(shù)據(jù)查詢與匹配,這期再聊一下一對多查詢。所謂一對多查詢,顧名思義,就是符合條件的查詢結(jié)果有多個。如下圖所示,A:B是數(shù)據(jù)源。需要在F列查詢E列普查員負(fù)責(zé)的小區(qū)代碼,如果是負(fù)責(zé)多個小區(qū),則將不同小區(qū)代碼按逗號為分隔符合并成一個字符串。
這種問題不同的Excel版本可以有不同的解法,但VLOOKUP函數(shù)的解法是通用的。=B2&IFERROR(","& VLOOKUP(A2,A3:C20,3,0),"")VLOOKUP函數(shù)采用精確匹配的方式,查找范圍是公式所在行的下一行開始到最后一行結(jié)束:A3:C20,返回A列數(shù)據(jù)在C列的對應(yīng)內(nèi)容。如果A列數(shù)據(jù)是唯一值或最后一條記錄,VLOOKUP函數(shù)將返回錯誤值。? IFERROR(","& VLOOKUP(A2,A3:C20,3,0),"")如果返回錯誤值,則使用IFERROR函數(shù)屏蔽為假空,否則返回正常結(jié)果。? =B2&IFERROR(","& VLOOKUP(A2,A3:C20,3,0),"")最后將B2單元格的小區(qū)代碼和IFERROR函數(shù)返回的結(jié)果相連。由于VLOOKUP具有存在多個匹配結(jié)果時,只取首個數(shù)據(jù)的特點(diǎn);當(dāng)公式向下復(fù)制填充時,下一層所計算的結(jié)果會被上一層公式所獲取,最后就達(dá)到A列數(shù)據(jù)第一次出現(xiàn)時,在C列獲取多個結(jié)果并合并的效果。這有點(diǎn)兒像多層套娃,底層人民的勞動成果總是被上層人民富豪所掠奪……在F2單元格輸入以下公式即可獲取最終結(jié)果:HI,朋友們,是不是對VLOOKUP函數(shù)又多了一層認(rèn)識?
打個響指,如果你所使用的Excel版本是2019/2021或365,也可以不使用輔助列,在F2單元格輸入以下公式即可:=TEXTJOIN(",",1,IF($A$1:$A$20=E2,$B$1:$B$20,""))
再打個響指,如果查詢的多個結(jié)果中包含重復(fù)值,需要取重獲取唯一值,將輔助列的公式修改為如下即可:=IF(COUNTIFS(A$2:A2,A2,B$2:B2,B2)>1,"",B2)&IFERROR(","&VLOOKUP(A2,A3:C20,3,0),"")
如果不使用輔助列,365版本的Excel可以使用以下公式:
=TEXTJOIN(",",1,UNIQUE(FILTER($B$2:$B$20,$A$2:$A$20=E2)))
沒了,今天給大家分享的內(nèi)容就這樣,有啥問題可以在VIP會員群中提問交流,右下角點(diǎn)個贊,咱們下期再見。