當前位置: 妍妍網 > 辦公

一對多查詢的4種方法,你最喜歡哪一種?

2024-02-25辦公

小夥伴們好啊,今天和大家說說一對多查詢的問題。

就是當一個查詢值對應多條記錄時,如何才能把這些記錄全部提取出來呢?

如下圖所示,是多個部門的員工資訊。

現在,咱們要按部門提取出對應的姓名。

方法1:VLOOKUP+輔助列

單擊A列列標,右鍵→插入,插入一個空白列。

在A2單元格輸入公式,向下復制。

=B2&COUNTIF($B$1:B2,B2)

在H2單元格中輸入公式,向右向下復制:

=IFERROR(VLOOKUP( $G2&COLUMN(A1) , $A:$E ,3,0),"")

方法2: FILTER 函式

如果你使用的是最新的WPS表格或者是Office 2021,只要在H2單元格輸入以下公式,向下拖動即可:

=TRANSPOSE(FILTER(C$2:C$14,B$2:B$14=G2))

先使用 FILTER 函式,根據指定的條件 B $2:B$14=G2 ,在 C$2:C$1 4 單元格區域中提取出姓名。

然後使用 TRANSPOSE 函式把垂直的記憶體陣列轉換為水平方向。

方法3:陣列公式

除此之外,還可以使用陣列公式:

=INDEX($C:$C,SMALL(($B$2:$B$14<>$G2)/1%%+ROW($2:$14),COLUMN(A1)))&""

這個公式的大致意思是,如果 $B$2:$B$14不等於$G2,就將行號放大10000倍,否則返回符合條件的行號。

再使用SAMLL函式從小到大依次提取出行號。

最後由INDEX函式根據提取出的行號,返回C列中對應位置的內容。

這個公式的缺點是編輯復雜,執行效率低,優點是可以在任意版本中使用。

方法4:

李秘書,你來一下……

好了,今天咱們的內容就是這些吧,祝各位一天好心情~~

練手檔:

https://pan.baidu.com/s/18Z5uuDAwNg2e0t0W1cCwog

圖文制作:祝洪忠