小夥伴們好啊,今天老祝和大家來說說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了。
好了,今天的分享就是這些,祝小夥伴們一天好心情!
圖文製作:祝洪忠
掃碼添加小應微信,了解年卡班
點擊「閱讀原文」,加入年卡班