小夥伴們好啊,今天老祝和大家說說一對多查詢的問題。就是當一個查詢值對應多條記錄時,如何才能把這些記錄全部提取出來呢?
如下圖所示,是多個部門的員工信息。
現在,咱們要按部門提取出對應的姓名。
要實現這樣的效果,隻需要三步:
第一步
插入輔助列(看着不爽可隐藏)
單擊A列的列标,然後右鍵→插入,插入一個空白列。
第二步
在A2單元格輸入公式,向下複制。
=B2&COUNTIF($B$1:B2,B2)
COUNTIF函數第一參數使用動态擴展的範圍$B$1:B2,當公式向下複制時,會依次變成$B$1:B3、$B$1:B4……,也就是自B1單元格開始到公式所在行這個範圍内,統計B列部門出現的次數。
再使用&符号,将B列的部門與出現的次數連接,就是相當于給部門加上唯一的标記了。
第三步
在H2單元格中輸入公式:
=IFERROR(VLOOKUP($G2&COLUMN(A1),$A:$E,3,0),"")
接下來咱們說說公式的運算過程:
1、COLUMN(A1)部分,返回A1的列号1。當公式向右複制時,參數A1會變成B1、C1……,COLUMN函數的結果就是1、2、3、……
2、用$G2&COLUMN(A1)作為VLOOKUP函數的查詢值,相當于給G2的部門加上了序号信息,公式在H2單元格中查詢的是“安監部1”,在I2單元格中,查詢的就是“安監部2”,在J2單元格中,查詢的就是“安監部3”了。
3、VLOOKUP函數使用帶序号的部門作為查詢值,與剛剛在A列使用公式得到的輔助信息相對應,最終在$A:$E這個整列引用的範圍中,返回第3列的姓名信息。
4、當VLOOKUP函數查找不到對應的内容時,會返回錯誤值,所以咱們再使用IFERROR函數進行除錯,如果VLOOKUP函數找不到姓名了,就讓他返回一個空文本。
好了,今天咱們的内容就是這些吧,祝各位一天好心情~~
圖文制作:祝洪忠
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!