全文 5000+字,前方高能,幹貨預警 !花了一個周末的時間,整理了 VLOOKUP 函式最全的 16 種用法,借著這個話題分享給大家,希望對大家有幫助呀,收藏的同時不要忘記點贊呀~
16 個技巧劃分成了 3 個部份: 初級篇、中級篇和高級篇 ,並且每個用法都有案例+詳細解釋,整體大綱如下:
![](https://img.jasve.com/2024-4/9269b6851bf57adadface2c7be63e39b.webp)
持續更新中,還有漏的技巧,大家可以評論區 @指北針 ,我會更新上來~
當然只看圖片不練習怎麽也學不會 VLOOKUP 的,關於這 16 種用法,我也整理了一份練習檔,分享給大家,希望對大家有幫助呀,→這裏: VLOOKUP的這16種用法,強到沒朋友!(練習下載)
另外不少小夥伴私信咨詢有沒有零基礎學習 Excel 函式的書籍推薦,對於零基礎的小夥伴,可以看下這 3 冊書,剛好京東暑假讀書優惠(適合零基礎):
另外我也分享了近 500+ 篇 Excel/Word/PPT 類的技巧,也是超級有用的學習資料:
01. VLOOKUP基礎語法
要了解一個 Excel 函式,第一個學習的肯定是函式的語法結構,VLOOKUP 共有 4 個參數,參數語法如下:
= VLOOKUP(尋找的值, 尋找區域, 返回值所在列數, [匹配模式])
這 4 個參數的解釋如下:
- 尋找的值 :要尋找的詞或單元格參照;
- 尋找區域 :包含尋找欄位和返回欄位的單元格區域,尋找欄位必須在尋找區域的第 1 列;
- 返回值所在列數 :返回值在尋找區域中的列數;
- 匹配模式 :0 為精確匹配,1 為模糊匹配;
以上就是 VLOOKUP 函式的基礎語法, 作為 Excel 中使用頻率最高、資質最老的一批函式,相容性也非常強,基本上市面的 Excel 和 WPS 版本都能完美相容 。
02. VLOOKUP 單條件查詢
首先是 Excel 中最常用,也最基礎的用法「單條件查詢」,只需要根據語法規則將對應單元格區域錄入到公式中即可。
案例:「 根據工號將對應薪資進行查詢匹配 」,操作也很簡單,輸入公式:
=VLOOKUP(p,A2:F11,6,0)
現在就可以輕松將工號為 6 的員工薪資匹配出來了,如下:
![](https://img.jasve.com/2024-4/ee0bd663cae3ad4073d5985290f24959.webp)
簡單解釋下這個公式的含義:
- p:要尋找的單元格參照;
- A2:F11:尋找區域單元格區域;
- 6:薪資欄位位於尋找區域的第 6 列;
- 0:代表精準匹配;
所以並不是所有的 VLOOKUP 函式都是返回第 2 列的,還要根據實際的工作場景來返回。
03. 遮蔽檢索不到錯誤
VLOOKUP 在找不到數據的情況下會返回 #N/A 錯誤,如果想將錯誤遮蔽掉,或者輸出其他提示資訊,用 IFERROR+VLOOKUP 組合即可實作。
案例:「 匹配不到數據的時候返回 / 提示 」,使用公式:
=IFERROR(VLOOKUP(p,A2:F11,6,0),"/")
如下,尋找區域並沒有工號 11 的員工,所以返回了「/」:
![](https://img.jasve.com/2024-4/b0a5ba6c6d7e4c8b2371bd316d03ecea.webp)
另外 VLOOKUP 對數據的匹配是極為嚴格的,哪怕差了一個空格、一個不可見字元,都會認為是不一樣的,例如: 「芒種學院」和「芒種學院 」並不相等,因為差了一個空格 。
04. 反向匹配技巧
講解語法的時候提到過「尋找詞必須在尋找區域的第 1 列」,但是在實際工作中,數據往往並不能完美符合需求,這個時候可以利用 IF 陣列公式來調換列。
案例:「 根據姓名尋找對應的工號 」,使用如下公式:
=VLOOKUP(p,IF({1,0},B2:B11,A2:A11),2,0)
這裏用到了「IF陣列公式」,將 B 列和 A 列的位置進行互互換,然後重新組成一個新的區域,這樣 B 列就跑到 A 列前面了,如下:
![](https://img.jasve.com/2024-4/abbcc8812510cdb26626f1029f015305.webp)
另外這個公式是「陣列公式」,如果使用的版本並非 365,還需要按三鍵 Ctrl+Shift+Enter 結束,並不能直接 Enter 結束,大機率結果會出錯。
05. 模糊關鍵詞檢索
除了檢索確定的關鍵詞,VLOOKUP 也可以配合通配符實作「 模糊關鍵詞匹配 」,在 Excel 中共有 2 個通配符:
- 星號* :代表任意個字元,可以是 0、1、N 個;
- 問號? :代表任意 0 個或者 1 個字元;
案例:「 匹配出包含陽字姓名的員工薪資 」,可以使用如下公式:
=VLOOKUP("*"&p&"*",B2:F11,5,0)
這樣即可匹配出數據中包含「陽」字的相關數據,如下:
![](https://img.jasve.com/2024-4/8c289e2b31f1cacb95143454da88231f.webp)
06. 代替 IF 數值區間匹配
針對尋找詞為「數位」的場景,VLOOKUP 還可以實作區間匹配,完美代替 IF 巢狀地獄。
案例:「 根據不同的銷售業績層級計算提成 」,使用如下公式:
=VLOOKUP(D2,A2:B6,2,1)
不過使用這個公式是有條件限制的,必須符合這 2 個條件方可使用:
- 尋找詞必須為數位;
- 尋找區域的數位必須從小到大進行排序;
公式實作效果如下所示,輕松將提成計算出來:
![](https://img.jasve.com/2024-4/2bd613b72f08dad3ea83eba987eaedfd.webp)
07. 去除空格/不可見字元匹配
如果碰上不規範的數據,明明肉眼看上去一模一樣,但是怎麽都匹配不出來,大機率是碰到了數據中存在空格、數據中存在不可見字元。
這個時候可以使用 SUBSTITUTE 或者 CLEAN 函式進行處理後匹配,例如:
=VLOOKUP(SUBSTITUTE(p," ",""),B2:F11,2,0)
這個公式的技巧在於使用 SUBSTITUTE 將空格替換成空,然後再進行匹配,確保數據的一致性。
另外如果碰到的是不可見字元,則可以使用 CLEAN 函式清除。
![](https://img.jasve.com/2024-4/19f256b216b29c2f6612835b5bca75eb.webp)
再分享多一個 判斷是否存在「空格」或者「不可見字元」的技巧,可以使用 LEN 函式判斷數據的長度,如果長度不一致,則表明存在 。
08. 橫向匹配返回多列
前面分享的 7 個技巧都是返回單個結果的,如果返回的數據是 N 列呢?難道還要寫 N 個公式,如果數據是連續的,可以利用 COLUMN+VLOOKUP 配合實作返回多列。
案例:「 根據工號返回姓名/部門/性別/年齡/薪資 」等欄位資訊,使用如下公式:
=VLOOKUP($H$2,$A$2:$F$11,COLUMN(B1),0)
分別向右向下拖動完成填充即可,這裏主要用到了 COLUMN 函式動態生成 2/3/4/.../N ,避免將返回列數固定寫死,從而達到返回多列的效果。
![](https://img.jasve.com/2024-4/7996ec34e43349c6e0bb63f2c3db8650.webp)
如果數據並非連續的呢?這個時候就可以考慮使用 MATCH 函式來定位數據所在的列數了。
09. 匹配多表查詢
如果匹配的表有多張,並且可以透過條件來判斷數據是位於哪張表中,那麽可以使用 VLOOKUP+IF 公式來實作需求。
案例:「 不同的城市位於不同的表中,尋找廣州工號 8 員工的薪資 」,利用如下公式:
=VLOOKUP(B2,IF(A2="深圳",A6:F15,H6:M15),6,0)
這裏用到了 IF 函式判斷 A2 單元格的數值是否為深圳,是則返回 A6:F15,否則返回返回 H6:M15,實作了動態變更尋找區域。
![](https://img.jasve.com/2024-4/74f7658809d253d85cd409017702e148.webp)
當然這個技巧只適用於表的數量較少的情況下,如果表數量比較多,使用 IF 會讓公式看起來很長,而且還容易出錯,後面會有另外的技巧來實作。
10. 多條件匹配尋找
前面分享了 9 個技巧,不過都是單條件尋找,多個欄位才能確定唯一一條數據的情況下,利用 VLOOKUP 也可以輕松實作,同樣用到了 IF 陣列公式。
案例:「 根據姓名+部門尋找員工對應薪資 」,利用如下公式:
=VLOOKUP(p&I2,IF({1,0},B2:B11&C2:C11,F2:F11),2,0)
這裏用到了 2 個技巧:
- 將 p&I2 拼接起來組成一個新欄位,並且該欄位是唯一的;
- IF 陣列公式將 B 和 C 列也拼接到一起,然後和 F 列組成成新的尋找區域;
這樣就可以 巧妙地將「多條件」轉換成「單條件」 ,實作效果如下:
![](https://img.jasve.com/2024-4/a3a658031463610259c552f4d14e7714.webp)
11. 尋找區域存在合並單元格
如果尋找區域中存在合並單元格,直接使用 VLOOKUP 匹配非常容易出錯,因為合並單元格只有最左上角的單元格存在數據,其他單元格並不存在。
這個時候就可以考慮使用 VLOOKUP+OFFSET+MATCH 來實作。
案例:「 根據部門+姓名尋找出員工對應的薪資 」,使用如下公式:
=VLOOKUP(F2,OFFSET($B$1,MATCH(E2,A:A,)-1,):C99,2,0)
MATCH 函式用於定位部門所在的行號,然後使用 OFFSET 函式向下偏移獲得「動態尋找區域」,這樣就可以輕松實作我們的需求了:
![](https://img.jasve.com/2024-4/82e03709277b9a8f39ead66386cbfad9.webp)
當然這個案例會復雜很多,在實際工作中也盡量不要使用合並單元格來實作數據分組,無論是函式、透視表、圖表、排序、篩選等絕大部份功能對合並單元格都不太友好。
12. 尋找詞中存在合並單元格
如果在尋找詞中也存在合並單元格,可以巢狀使用兩個 VLOOKUP 函式完成需求。
案例:「 根據部門返回月度獎金 」,使用如下公式:
=VLOOKUP(VLOOKUP("座",$D$2:D2,1),$A$2:$B$4,2,0)
巢狀的 VLOOKUP 函式主要是用於找到 D 列截止至本行的最後一個非空值,這樣就可以將尋找詞一一匹配上,如下所示:
![](https://img.jasve.com/2024-4/87a534469667d5dc6b563286015a393e.webp)
13. 尋找返回多個結果
關鍵詞和返回結果是 1:N 的關系,也可以使用 VLOOKUP 將所有結果全部返回,用到了 VLOOKUP+ROW+IF+INDIRECT 陣列公式配合。
案例:「 找出市場部所有員工的姓名 」,使用如下公式:
=VLOOKUP($H$2&ROW(A1),IF({1,0},$C$2:$C$11&COUNTIF(INDIRECT("c2:c"&ROW($2:$11)),$H$2),$B$2:$B$11),2,0)
公式非常復雜,整體可以分為 4 個思路:
- 用 ROW 函式生成序列;
- INDIRECT+ROW 生成行數遞增的尋找區域;
- COUNTIF 計算部門的個數,生成新編號;
- IF 陣列公式將構建的數據組成一個新的尋找區域;
同樣是陣列公式,按 Ctrl+Shift+Enter 結束後向下拖動填充,得到如下結果:
![](https://img.jasve.com/2024-4/f6f272baa3898b121d63a092ca5b32c0.webp)
這個公式的相容性雖然很好,不過維護起來實在費勁,如果是 365 版本,可以直接使用 FILTER 函式即可實作需求,而且非常便捷。
14. 尋找結果返回同一單元格
上面的技巧是將尋找結果填充到不同的單元格中,如果想將結果合並到一個單元格內呢?
純粹利用 VLOOKUP 實作不了,但是可以配合輔助列,共有 2 個公式:
G2 = C2&","&IFERROR(VLOOKUP(B2,B3:$G$12,6,),"")
I2 = VLOOKUP(p,$B$2:$G$11,6,)
其中 G2 單元格的公式用到了「呼叫自身列」的技巧,將找到的數據依次拼接,最後使用二分法進行匹配,實作效果如下:
![](https://img.jasve.com/2024-4/5969db318b10d3b04e27b97de8c529a6.webp)
當然難度也非常大,如果版本比較新,可以考慮使用 TEXTJOIN+IF/FILTER 函式來實作,會非常簡單,而且更流暢一些。
15. 返回最後一個結果
如果返回的結果有多個,只想要最後一個,利用 VLOOKUP+IF 陣列公式也可以實作。
案例:「 找到市場部的最後一位職員 」,使用如下公式:
=VLOOKUP(1,IF({1,0},0/(C2:C11=p),B2:B11),2)
具體思路為當忽略 VLOOKUP 的最後一個參數時,函式會使用二分法進行尋找,同時用 0/條件 可以將不符合條件的數值變成錯誤值,符合的變成 0。
最後用 1 尋找最後一個 0 即可實作需求,是不是非常巧妙,實作效果如下:
![](https://img.jasve.com/2024-4/88887be7eb99f0738c400cee419ef7e1.webp)
16. 跨多Sheet表匹配
數據被分布在 N 張 Sheet 表中,而且並不確定尋找詞位於其中的哪張表,這個時候可以利用 INDIRECT+VLOOKUP 實作跨多 Sheet 表匹配。
案例:「 存在深圳/廣州/上海共計 3 張表,匹配出不同員工的薪資 」,使用如下公式:
=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({"深圳";"廣州";"上海"}&"!b:b"),A2),{"深圳";"廣州";"上海"})&"!b:f"),5,0)
公式非常長,不過邏輯非常簡單,利用 INDIRECT 函式將所有表的數據全部匯入進行匹配,找到非錯誤的值即可,如下。
![](https://img.jasve.com/2024-4/6a2276f60ba892f2a93be0eeeefe4466.webp)
當然針對這類表格,已經不建議使用 VLOOKUP 進行匹配了,不僅卡不說,還非常容易出錯,不過公式還是非常值得研究的。
可以的話,利用 PQ 將數據合並起來然後進行匹配,效果會更高。
好了,暫時先分享 16 個,後續還有用到其他的 VLOOKUP 技巧,我也會更新上來,希望對大家有幫助呀,收藏的同時不要忘記點贊哦~
我的其他高贊回答,也可以看下哦,都是一些非常有用的資料:
- VLOOKUP 到底有多重要?
- 如何制作圖表非常精美的 Excel 文件?
- 工作中 Excel 哪個功能最實用?
- 有哪些值得推薦的數據視覺化工具?
- Excel 有多強大?你用 Excel 做的最酷的事情是什麽?
- 如何快速學習數據透視表?
- Excel 有哪些和 vlookup 一樣重要的函式或功能?
- 怎樣才算精通 Excel?
如果覺得有用,點個贊再走唄~持續更新哦!!