Excel技巧 | 查詢符合條件的多個結果,VLOOKUP也行

2021-02-25 Excel學習交流中心

小夥伴們好啊,今天老祝和大家來說說VLOOKUP的高能用法,看看這位大眾情人還藏著多少不為人知的秘密。

函數的語法為:

VLOOKUP(要找誰,在哪兒找,返回第幾列的內容,精確找還是近似找)

如下圖,需要從B~D的數據表中,根據G1單元格的部門,查詢該部門所有的姓名。

首先在A2單元格輸入以下公式,向下複製:

=(B2=$G$1)+A1

然後在G5單元格輸入以下公式,向下複製:

=IFERROR(VLOOKUP(ROW(A1),A:C,3,0),"")

簡單說一下公式的意思:

1、B列的部門每重複出現一次,A列的序號增加1。

2、VLOOKUP函數使用ROW(A1)得到1至N的遞增序列作為查詢值,在A:C列這個查詢區域中,依次返回與遞增序號相對應的C列的姓名。

由於VLOOKUP在有多個匹配結果時,默認返回第一條記錄,所以只會返回A列中各個序號首次出現的記錄。

3、注意查找區域必須由輔助列A列開始。

4、最後將輔助列字體設置為白色或進行隱藏即可。

如果不使用輔助列,VLOOKUP能不能返回符合條件的多個結果呢?

除了公式稍微複雜了些,其實也是可以的。

在G5輸入以下公式,向下複製。

=IFERROR(VLOOKUP(G$1,OFFSET(B$1:D$1,MATCH(G4,C:C,0),0,999),2,0),"")

簡單說說這個公式的計算過程:

1、MATCH(G4,C:C,0)部分,以G4單元格的內容「姓名」為查找值,在C列中查找該內容所在的位置1。得到的結果作為OFFSET函數向下偏移的行數。

2、OFFSET函數以「B$1:D$1」為基點,根據MATCH函數的查詢結果向下偏移1行。向右偏移的列數為0列,新引用的行數是999行,得到的引用區域作為VLOOKUP函數的查詢區域。

3、當公式向下複製到G6單元格時,MATCH函數的查詢值就變成了G5單元格中的姓名,並返回該姓名在C列中的位置。後面其他單元格中的公式也是如此。

4、OFFSET函數根據MATCH函數得到的位置信息,得到一個新的999行的引用範圍。也就是每查詢到一個姓名,就從引用區域中將其排除掉。

有了MATCH和OFFSET函數的幫忙,VLOOKUP函數就如魚得水了。

此公式實現過程有點繞,如果一時難以理解,可以先收藏一下,實際工作中只要會套用就OK了。

好了,今天的分享就是這些,祝小夥伴們一天好心情!

圖文製作:祝洪忠

掃碼添加小應微信,了解年卡班

點擊「閱讀原文」,加入年卡班

相關焦點