KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

20+ 適用於 Excel 初學者與進階使用者的 VLOOKUP 範例

作者Xiaoyang修改日期

VLOOKUP 函數是 Excel 中最受歡迎的函數之一。本教學將逐步帶您掌握如何在 Excel 中靈活運用 VLOOKUP 函數,並提供數十個基礎與進階實用範例。


VLOOKUP 函數簡介-語法與引數

在 Excel 中,VLOOKUP 函數對多數使用者來說都相當強大,能讓您在資料區域的最左欄搜尋特定值,並從您指定的欄位傳回同一列中的對應值,如下方螢幕截圖所示。
VLOOKUP 函數的語法與引數

VLOOKUP 函數的語法:

=VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])

引數:

「Lookup_value」(必要):您要搜尋的值,可以是數字、日期、文字,或是儲存格參照,且必須位於 table_array 範圍的第一欄中。

「Table_array」(必要):包含查詢值欄位與對應結果值欄位的資料區域或表格。

「Col_index_num」(必要):指定要傳回值的欄位編號,從表格陣列最左側欄位起算,起始編號為 1.

「Range_lookup」(選用):決定 VLOOKUP 函數傳回的是完全相符還是近似比對的邏輯值。

  • 「近似比對」-1/TRUE/省略(預設):若找不到完全相符的值,公式會搜尋最接近的比對值,也就是小於查詢值的最大值。
  • 「完全符合」-0/FALSE:此選項用於搜尋與查詢值完全相等的項目;若找不到完全相符的結果,將傳回錯誤值 #N/A。

函數注意事項

  • VLOOKUP 函數只能向右搜尋值。
  • VLOOKUP 函數執行不區分大小寫的查詢。
  • 若根據查詢值找到多個相符項目,VLOOKUP 函數僅會傳回第一個相符的結果。

基礎 VLOOKUP 範例

本節將為您介紹一些常用的 VLOOKUP 公式。

2.1 完全符合與近似比對 VLOOKUP

2.1.1 執行完全符合 VLOOKUP

一般而言,若要使用 VLOOKUP 函數進行完全比對,只需將最後一個引數設為 FALSE 即可。

例如,若要根據特定 ID 編號取得對應的數學成績,請依下列步驟操作:
範例資料

請將下方公式複製並貼上至空白儲存格(此處我選取 G2),然後按下「ENTER 鍵」取得結果:

=VLOOKUP(F2,$A$2:$D$7,3,FALSE)

套用 VLOOKUP 公式

注意:上述公式包含四個引數:

  • 「F2」是包含您要查詢之值 C1005 的儲存格;
  • 「A2:D7」是您執行查詢的資料表陣列;
  • 「3」代表傳回相符值的欄位編號;也就是說,一旦函數找到 ID-C1005,就會移至資料表陣列的第三欄,並傳回與該 ID-C1005 位於同一列的值。
  • 「FALSE」代表完全符合。

VLOOKUP 公式是如何運作的?

首先,它會從上往下在表格最左欄中搜尋 ID「C1005」,並在儲存格 A6 找到該值。
從上到下搜尋,並在特定儲存格中找到值

一旦找到該值,便會向右移至第三欄,並提取其中的內容。
向右移至第三欄,並提取其中的值

因此,您將獲得如下圖所示的結果:
取得結果

注意:若在最左欄找不到查詢值,將傳回 #N/A 錯誤。
🤖KUTOOLS AI 助手:基於以下項目徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料與產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup     多重值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多重選擇下拉式清單……
欄位管理員新增指定數量的欄位    移動欄位     取消隱藏欄位    比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄     工作簿與工作表管理員    資源庫     日期提取    合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(依粗體/斜體……)……
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)   更多功能……

Kutools for Excel 提供超過 300 項功能確保您所需的功能觸手可及……

 
2.1.2 執行近似比對 VLOOKUP

近似比對適用於搜尋值落在某個範圍內的情況。若找不到完全相符的項目,VLOOKUP 的近似比對會傳回小於查詢值的最大值。

例如,若您有以下資料範圍,而指定的訂單並未出現在「Orders」(訂單)欄中,該如何找出其在 B 欄中最接近的「Discount」(折扣)?
執行近似比對的 VLOOKUP

步驟 1:套用 VLOOKUP 公式並將其填滿至其他儲存格

將下列公式複製並貼上至您希望顯示結果的儲存格中,然後向下拖曳填滿控點,即可將此公式套用至其他儲存格。

=VLOOKUP(D2,$A$2:$B$9,2,TRUE)

結果:

現在,您將根據給定的值取得近似比對結果,請參見下圖:
套用 VLOOKUP 公式並填滿至其他儲存格

注意事項:

  • 在上述公式中:
    • 「D2」是您想要傳回其相關資訊的值;
    • 「A2:B9」是數據區域;
    • 「2」表示傳回相符值的欄位編號;
    • 「TRUE」代表啟用近似比對。
  • 若找不到完全相符的值,近似比對將傳回小於指定查詢值的最大值。
  • 若要使用 VLOOKUP 函數取得近似比對結果,您必須先將資料區域的最左欄按遞增順序排序,否則可能傳回錯誤結果。

2.2 在 Excel 中執行區分大小寫 VLOOKUP

預設情況下,VLOOKUP 函數執行不區分大小寫的查詢,會將小寫與大寫字元視為相同。然而,當您在 Excel 中需要進行區分大小寫的查詢時,標準的 VLOOKUP 函數便無法滿足需求。此時,您可以改用 INDEX 與 MATCH 函數搭配 EXACT 函數,或採用 LOOKUP 與 EXACT 函數的組合來達成目標。

例如,我有一個數據區域,其中 ID 欄包含全大寫或全小寫的文字字串,現在我想根據指定的 ID 傳回對應的數學成績。
執行區分大小寫的 VLOOKUP

步驟 1:套用任一公式並將其填滿至其他儲存格

請將下列任一公式複製並貼到您希望取得結果的空白儲存格中,然後選取該公式儲存格,向下拖曳填滿控點,即可將公式套用至其他目標儲存格。

公式 1:貼上公式後,請按下「Ctrl」+「Shift」+「Enter」。

=INDEX($C$2:$C$10,MATCH(TRUE,EXACT(F2,$A$2:$A$10),0))

公式 2:貼上公式後,請按下「Enter 鍵」。

=LOOKUP(2,1/EXACT(F2,$A$2:$A$10),$C$2:$C$10)

結果:

接著,您將獲得所需的正確結果,如下圖所示:
套用任一公式並填滿至其他儲存格

注意事項:

  • 在上述公式中:
    • 「A2:A10」是包含您要查找之特定值的欄位;
    • 「F2」是查找值;
    • 「C2:C10」為用於返回結果的欄位。
  • 若找到多個相符值,此公式一律傳回最後一個相符的結果。

2.3 在 Excel 中從右向左執行 VLOOKUP

VLOOKUP 函數總是在資料區域的最左欄搜尋指定值,並從右側欄位傳回對應的結果。若您希望執行反向 VLOOKUP——也就是在右側欄位中搜尋特定值,並傳回其在最左欄中的對應值(如下圖所示):

點擊以逐步了解此任務的詳細操作……

從右向左執行 VLOOKUP


2.4 在 Excel 中 VLOOKUP 第二個、第 n 個或最後一個相符值

一般使用 VLOOKUP 函數時,若找到多個相符值,僅會傳回第一筆相符記錄。本節將說明如何在資料區域中取得第二個、第 n 個或最後一個相符值。

2.4.1 VLOOKUP 並傳回第二個或第 n 個相符值

假設 A 欄為客戶姓名列表,B 欄為其購買的訓練課程。現在,您希望找出特定客戶所購買的第二個(或第 n 個)訓練課程。請參見下圖:
VLOOKUP 並傳回第二個或第 N 個相符的值

在此情況下,VLOOKUP 函數可能無法直接勝任此任務,但您可以改用 INDEX 函數作為更靈活的替代方案。

步驟 1:套用公式並將其填滿至其他儲存格

例如,若要根據指定條件取得第二個相符值,請將下列公式輸入空白儲存格,並同時按下「Ctrl」+「Shift」+「Enter」鍵以取得第一個結果。接著選取該公式儲存格,向下拖曳填滿控點,即可將公式套用至其他目標儲存格。

=INDEX($B$2:$B$14,SMALL(IF(E2=$A$2:$A$14,ROW($A$2:$A$14)-ROW($A$2)+1),2))

結果:

現在,所有符合指定名稱的第二筆資料已一次全部顯示。
套用並填滿公式至其他儲存格

注意:上述公式中:

  • 「A2:A14」是包含所有查詢值的範圍;
  • 「B2:B14」是您要從中傳回相符值的範圍;
  • 「E2」是查詢值;
  • 「2」代表您要取得的第二個相符值;若要傳回第三個相符值,只需將其改為 3 即可。
2.4.2 VLOOKUP 並傳回最後一個相符值

如果您想執行 VLOOKUP 並傳回最後一個相符值(如下圖所示),這篇 VLOOKUP 並傳回最後一個相符值教學將詳細指導您輕鬆達成目標!

VLOOKUP 並傳回最後一個相符的值


2.5 VLOOKUP 介於兩個指定值或日期之間的相符值

有時您可能希望待檢索的數值或日期落在兩個值之間,並據此傳回對應的結果(如下圖所示)。此時,建議使用 LOOKUP 函數(搭配已排序的表格),而非 VLOOKUP 函數。
VLOOKUP 在兩個值之間進行比對

2.5.1 使用公式執行介於兩個指定值或日期之間的 VLOOKUP

步驟 1:整理資料並套用下列公式

您的原始表格應為已排序的數據區域。接著,請將下列公式複製或輸入至空白儲存格中,再拖曳填滿控點,將公式套用至其他所需儲存格。

=LOOKUP(2,1/($A$2:$A$6<=E2)/($B$2:$B$6>=E2),$C$2:$C$6)

結果:

現在,您將根據指定值取得所有相符記錄,請參見下圖:
整理資料並套用公式

注意事項:

  • 在上述公式中:
    • 「A2:A6」是較小數值的範圍;
    • 「B2:B6」是較大數值的範圍;
    • 「E2」是您想要取得其對應值的查找值;
    • 「C2:C6」是您要從中取得對應值的欄位。
  • 此公式亦可用於提取如下方截圖所示兩個日期之間的相符值:
    此公式也可提取介於兩個日期之間的相符值
2.5.2 使用便捷功能執行介於兩個指定值或日期之間的 VLOOKUP

如果您覺得難以記住或理解上述公式,這裡為您推薦一款簡單好用的工具——「Kutools for Excel」。透過其「查找介於兩值之間的數據」功能,您能輕鬆根據特定數值或日期(只要落在兩個指定值或日期之間),快速取得對應的項目。

  1. 點擊「Kutools」>「進階 LOOKUP」>「查找介於兩值之間的資料」即可啟用此功能。
  2. 接著,請根據您的資料,在對話方塊中指定相關操作。
注意:若要使用此功能,請下載 Kutools for Excel(提供 30 天免費試用)

使用 Kutools 在兩個指定值或日期之間執行 VLOOKUP 比對

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與工作效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

2.6 在 VLOOKUP 函數中使用萬用字元進行部分比對

在 Excel 中,您可以在 VLOOKUP 函數中運用萬用字元,輕鬆實現查詢值的部分比對。例如,只要輸入查詢值的其中一部分,VLOOKUP 就能從表格中自動找出相符的資料並傳回對應結果。

假設我有如下圖所示的資料範圍,現在想根據「名字」(而非全名)來提取對應的分數。在 Excel 中該如何達成這項任務?
VLOOKUP 部分相符

步驟 1:套用公式並將其填滿至其他儲存格

請將下列公式複製或輸入至空白儲存格中,然後拖曳填滿控點,將此公式填滿至其他所需儲存格:

=VLOOKUP(E2&"*", $A$2:$C$11, 3, FALSE)

結果:

所有相符的分數均已傳回,如下圖所示:
套用並填滿公式至其他儲存格

注意:上述公式中:

  • 「E2&“*“」是部分比對的條件,表示您要尋找所有以儲存格 E2 中的值開頭的資料。(萬用字元「)*」代表任意一個或多個字元)
  • 「A2:C11」是您要搜尋相符值的資料範圍;
  • 「3」表示從數據區域的第 3 欄傳回相符值;
  • 「False」代表精確比對。(使用萬用字元時,您必須將函數的最後一個引數設為 FALSE 或 0,才能啟用 VLOOKUP 函數的完全相符模式。)
提示
  • 若要尋找並傳回以特定值結尾的相符項目,請將萬用字元「*」置於該值前方,並套用下列公式:
  • =VLOOKUP("*"&E2, $A$2:$C$11, 3, FALSE)

    若要傳回以特定值結尾的相符值,請在該值前方加上萬用字元
  • 若要根據文字字串的部分內容(不論指定文字位於字串開頭、結尾或中間)查詢並返回相符的值,只需在儲存格參照或文字前後各加上兩個星號(*)即可。請使用下列公式:
  • =VLOOKUP("*"&D2&"*", $A$2:$B$11, 2, FALSE)

    若要根據部分文字字串傳回相符值,請在儲存格參照兩側各加上一個星號

2.7 從其他工作表執行 VLOOKUP

通常您可能需要處理多個工作表,而 VLOOKUP 函數可從另一個工作表查詢資料,操作方式與在同一工作表中完全相同。

例如,您有如下圖所示的兩個工作表,若要從指定工作表查詢並傳回對應資料,請依下列步驟操作:
從其他工作表執行 VLOOKUP

步驟 1:套用公式並將其填滿至其他儲存格

請在您希望取得相符項目的空白儲存格中輸入或貼上下列公式,然後向下拖曳填滿控點,將公式套用至其他目標儲存格。

=VLOOKUP(A2,'Data sheet'!$A$2:$C$15,3,0)

結果:

您將獲得所需的對應結果,請參見下圖:

一個工作表中的資料向右箭頭在另一個工作表中取得對應結果

注意:上述公式中:

  • 「A2」代表查詢值;
  • 「‘Data sheet‘!A2:C15」表示在名為「資料工作表」的工作表中,於 A2:C15 範圍內搜尋值;(若工作表名稱包含空格或標點符號,需以單引號將其括起;否則可直接使用工作表名稱,例如:
    =VLOOKUP(A2,Datasheet!$A$2:$C$15,3,0))。
  • 「3」是包含您要返回之相符資料的欄位編號;
  • 「0」表示完全符合。

2.8 從其他活頁簿執行 VLOOKUP

本節將說明如何運用 VLOOKUP 函數,從其他活頁簿中查詢並傳回相符的值。

例如,假設您有兩個活頁簿:第一個活頁簿包含產品清單及其對應成本;在第二個活頁簿中,您希望提取每個產品項目的對應成本(如下圖所示)。
從其他活頁簿執行 VLOOKUP

步驟 1:套用公式

開啟您要使用的兩個活頁簿,然後在第二個活頁簿中,於您希望顯示結果的儲存格輸入下列公式,再將該公式拖曳複製至其他所需儲存格。

=VLOOKUP(B2,'[Product list.xlsx]Sheet1'!$A$2:$B$6,2,0)

結果:

套用並填滿公式

注意事項:

  • 在上述公式中:
    • 「B2」代表查找值;
    • 「'[Product list.xlsx]Sheet 1'!A2:B6」表示從名為 Product list 的活頁簿中、名為 Sheet 1 的工作表之 A2:B6 範圍進行搜尋;(活頁簿的參照以方括號包圍,而整個「活頁簿+工作表」則以單引號包圍。)
    • 「2」是包含您要傳回之相符資料的欄位編號;
    • 「0」表示完全符合。
  • 若查詢活頁簿已關閉,公式中將顯示該查詢活頁簿的完整檔案路徑,如下圖所示:
    如果查閱活頁簿已關閉,公式中會顯示該查閱活頁簿的完整檔案路徑

2.9 傳回空白或特定文字,而非 0 或 #N/A 錯誤

使用 VLOOKUP 函數傳回對應值時,若相符的儲存格為空白,通常會傳回 0;若找不到相符值,則會顯示錯誤值 #N/A(如下圖所示)。若您希望改以空白或特定值取代 0 與 #N/A,這篇 VLOOKUP 傳回空白或特定值以取代 0 或 N/A 教學將助您輕鬆達成目標!

傳回空白或特定文字,而非 0 或 #N/A 錯誤


進階 VLOOKUP 範例

3.1 雙向查詢(在列與欄中執行 VLOOKUP)

有時您可能需要執行二維查詢,也就是同時在列與欄中搜尋特定數值。例如,若您擁有下列資料區域,可能需要取得某項產品在指定季度的數值。本節將介紹一個適用於 Excel 的公式,協助您輕鬆完成此類任務。
在列與欄中執行 VLOOKUP

在 Excel 中,您可以結合 VLOOKUP 與 MATCH 函數,輕鬆實現雙向查詢。

請將下列公式套用至空白儲存格,然後按下「Enter 鍵」即可取得結果。

=VLOOKUP(G2, $A$2:$E$7, MATCH(H1, $A$2:$E$2, 0), FALSE)

結合使用 VLOOKUP 與 MATCH 函數以取得結果

注意: 上述公式中:

  • 「G2」是您用來取得對應值所依據的查詢值所在欄位;
  • 「A2:E7」是您將從中查詢的資料表;
  • 「H1」是您用來取得對應值所依據的查詢值所在列;
  • 「A2:E2」是欄位標題所在的儲存格;
  • 「FALSE」表示完全符合。

3.2 根據兩個或更多條件執行 VLOOKUP 匹配數值

根據單一條件查詢匹配數值對您而言輕而易舉,但若需同時依據兩個或更多條件進行查詢,又該如何處理?

3.2.1 使用公式根據兩個或更多條件執行 VLOOKUP 匹配數值

在此情況下,Excel 的 LOOKUP、MATCH 與 INDEX 函數能助您快速又輕鬆地完成這項任務。

例如,若您有一張如下所示的資料表,並希望根據特定產品與尺寸傳回對應價格,以下公式可助您一臂之力。
根據兩個或多個條件執行 VLOOKUP

步驟 1:套用下列任一公式

公式 1:輸入下列公式,然後按下「Enter 鍵」。

=LOOKUP(2,1/($A$2:$A$12=G1)/($B$2:$B$12=G2),($D$2:$D$12))

公式 2:輸入下列公式,然後按下「Ctrl」+「Shift」+「Enter」。

=INDEX($D$2:$D$12,MATCH(1,($A$2:$A$12=G1)*($B$2:$B$12=G2),0))

結果:

套用任一公式以取得結果

注意事項:

  • 上述公式中:
    • 「A2:A12=G1」表示在範圍 A2:A12 中搜尋 G1 的條件;
    • 「B2:B12=G2」表示在範圍 B2:B12 中搜尋 G2 的條件;
    • 「D2:D12」是 您要從中取得對應值的範圍。
  • 若您有超過兩個條件,只需將其他條件加入公式中,例如:
    =LOOKUP(2,1/($A$2:$A$12=G1)/($B$2:$B$12=G2)/($C$2:$C$12=G3),($D$2:$D$12))
    =INDEX($D$2:$D$12,MATCH(1,($A$2:$A$12=G1)*($B$2:$B$12=G2)*($C$2:$C$12=G3),0))
  • 若有超過兩個條件,請將其他條件加入公式中
3.2.2 使用 Kutools for Excel 根據兩個或更多條件執行 VLOOKUP 匹配數值

上述複雜公式不僅難以記憶,還需反覆套用,恐拖慢工作效率。幸而「Kutools for Excel」內建「Lookup 多條件查找」功能,只需輕點幾下,就能依單一或多個條件快速傳回對應結果。

  1. 按一下「Kutools」>「高級 LOOKUP」>「多條件查找」即可啟用此功能。
  2. 接著,請根據您的資料,在對話方塊中指定相關操作。
注意:若要使用此功能,請下載 Kutools for Excel(提供 30 天免費試用)

使用 Kutools 根據兩個或多個條件執行 VLOOKUP

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與工作效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

3.3 根據一個或多個條件執行 VLOOKUP 傳回多筆數值

在 Excel 中,VLOOKUP 函數搜尋到數值後,若存在多筆重複的對應值,僅會傳回第一筆匹配結果。然而,您可能希望將所有相符的數值一併傳回至同一列、同一欄或單一儲存格中。本節將說明如何根據一個或多個條件,在活頁簿中傳回所有匹配的數值。

3.3.1 根據一個或多個條件水平傳回所有匹配數值

假設您有一張包含國家、城市及姓名的資料表(範圍為 A1:C14),現在希望如以下截圖所示,水平列出所有來自「美國」的姓名。若要完成此任務,請按此處逐步取得結果

根據一個或多個條件水平列出所有相符的 VLOOKUP 值

3.3.2 根據一個或多個條件垂直傳回所有匹配數值

若您需要根據特定條件(如下方截圖所示)執行 VLOOKUP,並垂直傳回所有匹配數值,請立即點擊此處詳閱完整解決方案

根據一個或多個條件垂直列出所有相符的 VLOOKUP 值

3.3.3 將所有匹配數值根據一個或多個條件傳回至單一儲存格

若您想執行 VLOOKUP,並將多筆匹配結果傳回至單一儲存格(以指定分隔符號分隔),TEXTJOIN 新函數可協助您快速且輕鬆地完成此任務

根據一個或多個條件將所有相符的 VLOOKUP 值合併至單一儲存格

注意事項:


3.4 傳回匹配儲存格的整行的 VLOOKUP

本節將說明如何運用 VLOOKUP 函數擷取與條件相符之整列資料。

步驟 1:套用下列公式

請將下列公式複製或輸入至欲顯示結果的空白儲存格,按下「Enter 鍵」取得第一筆數值,再向右拖曳該公式儲存格,直至整行資料完整顯示為止。

=VLOOKUP($F$2,$A$1:$D$12,COLUMN(A1),FALSE)

結果:

現在,您可以看到整行資料已成功傳回。請參閱下方截圖:
使用公式執行 VLOOKUP 以傳回相符儲存格的整列資料

注意:上述公式中:

  • 「F2」是您用來返回整列資料所依據的查詢值;
  • 「A1:D12」是您要從中搜尋查詢值的數據區域;
  • 「A1」表示您的數據區域中的第一欄編號;
  • 「FALSE」表示執行精確查詢。

提示:

  • 若根據相符值找到多列資料,並希望返回所有對應列,請套用下列公式,然後同時按下「Ctrl」+「Shift」+「Enter」鍵以取得第一個結果。接著向右拖曳填滿控點,再繼續向下拖曳至所有儲存格,即可取得所有相符的列。請參閱下方示範:
    =IFERROR(INDEX(A:A,SMALL(IF(ISNUMBER(SEARCH($F$2,$A$2:$A$12)),ROW($A$2:$A$12),""),ROW()-1)),"")

3.5 Excel 中的巢狀 VLOOKUP

有時,您可能需要跨多張工作表查詢彼此關聯的數值。此時,可將多個 VLOOKUP 函數巢狀使用,以取得最終結果。

例如,我有一份工作表包含兩張獨立的表格:第一張列出所有產品名稱及其對應的業務員,第二張則列出每位業務員的總銷售額。現在,若要找出每項產品對應的銷售金額(如下方截圖所示),即可透過巢狀 VLOOKUP 函數輕鬆完成此任務。
巢狀 VLOOKUP

巢狀 VLOOKUP 函數的一般公式如下:

=VLOOKUP(VLOOKUP(lookup_value, table_array 1, col_index_num 1, 0), table_array 2, col_index_num 2, 0)

注意事項:

  • 「lookup_value」是您要查詢的值;
  • 「Table_array 1」、「Table_array 2」是包含查詢值與返回值的表格;
  • 「col_index_num 1」表示在第一個表格中用於尋找中介共同資料的欄位編號;
  • 「col_index_num 2」表示在第二個表格中您要返回相符值的欄位編號;
  • 「0」用於執行完全相符的比對。

步驟 1:套用並填滿下列公式

請將下列公式套用至空白儲存格,然後向下拖曳填滿控點,以套用至目標儲存格。

=VLOOKUP(VLOOKUP(G3,$A$3:$B$7,2,0),$D$3:$E$7,2,0)

結果:

現在,您將取得如下方截圖所示的結果:
套用並填滿公式

注意:上述公式中:

  • 「G3」 包含您要查詢的值;
  • 「A3:B7」、「D3:E7」是包含查詢值與返回值的表格範圍;
  • 「2」是用於指定在返回相符值的範圍中所對應的欄位編號。
  • 「0」代表 VLOOKUP 執行精確比對。

3.6 根據另一欄中的清單資料檢查數值是否存在

VLOOKUP 函數還能協助您根據另一欄的資料清單,快速確認某數值是否存在。例如,您可在 C 欄中搜尋姓名,並依據 A 欄是否包含該姓名,自動傳回「是」或「否」(如下方截圖所示)。
根據另一欄中的清單資料檢查值是否存在

步驟 1:套用下列公式

請將下列公式套用至空白儲存格,然後向下拖曳填滿控點,以將公式套用至目標儲存格。

=IF(ISNA(VLOOKUP(C2,$A$2:$A$10,1,FALSE)), "No", "Yes")

結果:

您將獲得所需結果,請參見截圖:
套用並填滿公式

注意:上述公式中:

  • 「C2」是您要檢查的查詢值;
  • 「A2:A10」是用來檢查是否能找到待檢索值區域的範圍清單;
  • 「FALSE」表示完全符合。

3.7 VLOOKUP 並加總所有匹配數值(列或欄)

處理數值資料時,您可能需要從表格中提取符合條件的數值,並加總多個欄位或列中的數字。本節將介紹幾種能協助您輕鬆完成此任務的實用公式。

3.7.1 VLOOKUP 並加總單一列或多重列的所有匹配數值

假設您有一份包含數月銷售數據的產品清單(如下方截圖所示),現在需要針對指定產品,加總其所有月份的訂單總量。
VLOOKUP 並加總一列中所有相符的值

步驟 1:套用下列公式

請將下列公式複製或輸入至空白儲存格,然後同時按下「Ctrl」+「Shift」+「Enter」鍵,即可取得第一筆結果。接著,向下拖曳填滿控點,將公式複製到其他所需的儲存格。

=SUM(VLOOKUP(H2, $A$2:$F$9, {2,3,4,5,6}, FALSE))

套用並填滿公式

結果:

第一筆匹配數值所在列的所有數值均已加總,請參見截圖:
第一個相符值所在列的所有值會被加總在一起

注意:上述公式中:

  • 「H2」是包含您要查詢之值的儲存格;
  • 「A2:F9」是數據區域(不含欄位標題),其中包含查詢值與相符值;
  • 「{2,3,4,5,6}」是用於計算範圍總計的欄位編號;
  • 「FALSE」表示完全符合。

提示:若要加總多列中的所有相符項目,請使用下列公式:

  • =SUMPRODUCT(($A$2:$A$9=H2)*$B$2:$F$9)
  • 套用公式以加總多列中的所有相符值
3.7.2 VLOOKUP 並加總單一欄或多重欄的所有匹配數值

若您想加總特定月份的總值(如下方截圖所示),單靠一般的 VLOOKUP 函數可能難以達成目標,此時應結合 SUM、INDEX 與 MATCH 函數來建立公式。
VLOOKUP 並加總一欄中所有相符的值

步驟 1:套用下列公式

將下列公式套用至空白儲存格,然後向下拖曳填滿控點,將公式複製到其他儲存格。

=SUM(INDEX($B$2:$F$9,0,MATCH(H2,$B$1:$F$1,0)))

結果:

現在,特定月份欄中第一筆匹配數值已加總完成,請參見截圖:
套用並填滿公式

注意:上述公式中:

  • 「H2」是包含您要查詢之值的儲存格;
  • 「B1:F1」是包含查詢值的欄位標題;
  • 「B2:F9」是包含您要加總數值的資料範圍。

提示:若要執行 VLOOKUP 並加總多欄中的所有相符值,應使用下列公式:

  • =SUMPRODUCT($B$2:$F$9*(($B$1:$F$1)=H2))
  • 使用公式加總多欄中的所有相符值
3.7.3 使用 Kutools for Excel 執行 VLOOKUP 並加總第一筆或所有匹配數值

上述公式可能不易記憶,因此推薦使用「Kutools for Excel」的強大功能——「查找求和」。透過此功能,您能以最簡單的方式執行 VLOOKUP,並加總列或欄中第一筆或所有相符的數值。

  1. 點擊「Kutools」>「進階 LOOKUP」>「查找求和」即可啟用此功能。
  2. 接著,請根據您的需求在對話方塊中指定相關操作。
注意:若要使用此功能,請下載 Kutools for Excel(提供 30 天免費試用)
使用 Kutools 執行 VLOOKUP 並加總第一個或所有相符的值
Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與工作效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……
3.7.4 同時根據列與欄執行 VLOOKUP 並加總所有匹配數值

若您需要同時根據欄與列進行交叉匹配來加總數值,例如取得毛衣(Sweater)在三月(Mar)的總銷售金額(如下方截圖所示)。
VLOOKUP 並同時加總列與欄中的所有相符值

此時可運用 SUMPRODUCT 函數輕鬆完成此任務。

請將下列公式套用至儲存格,再按下「ENTER 鍵」取得結果,請參見截圖:

=SUMPRODUCT(($B$2:$F$9)*($B$1:$F$1=I2)*($A$2:$A$9=H2))

使用 SUMPRODUCT 函數取得結果

注意:上述公式中:

  • 「B2:F9」是包含您要加總之數值的數據區域;
  • 「B1:F1」是包含您要據以加總之查詢值的欄位標題;
  • 「I2」是您要在欄位標題中查詢的查詢值;
  • 「A2:A9」是包含您要據以加總之查詢值的列標題;
  • 「H2」是您要在列標題中搜尋的查詢值。

3.8 根據關鍵列使用 VLOOKUP 合併兩張表格

日常工作中分析資料時,您可能需要根據一個或多個關鍵欄位,將所有必要資訊彙整至單一表格。此時,建議使用 INDEX 與 MATCH 函數來取代 VLOOKUP 函數。

3.8.1 根據單一關鍵列使用 VLOOKUP 合併兩張表格

例如,您有兩張表格:第一張包含產品與姓名資料,第二張則包含產品與訂單資料;現在需要透過比對兩者共通的「產品」欄位,將這兩張表格合併為一。
根據一個關鍵欄位執行 VLOOKUP 以合併兩個表格

步驟 1:套用下列公式

請將下列公式套用至空白儲存格,再向下拖曳填滿控制點,即可將公式套用至您所需的儲存格。

=INDEX($F$2:$F$8, MATCH($A2, $E$2:$E$8, 0))

結果:

現在,您將獲得一個合併後的表格,其中訂單欄位會依據關鍵列資料與第一個表格進行關聯。
套用並填滿公式以取得結果

注意事項:上述公式中:

  • 「A2」是您要查詢的值;
  • 「F2:F8」是您要返回相符值的資料範圍;
  • 「E2:E8」為包含查詢值的查詢範圍。
3.8.2 使用 VLOOKUP 根據多個關鍵列合併兩個表格

若要合併的兩個表格包含多個關鍵欄位,且您希望依據這些共用欄位進行合併,請依照下列步驟操作。
根據多個關鍵欄位執行 VLOOKUP 以合併兩個表格

通用公式如下:

=INDEX(lookup_table, MATCH(1, (lookup_value 1=lookup_range 1) * (lookup_value 2=lookup_range 2), 0), return_column_number)

注意事項:

  • 「lookup_table」是包含查詢資料與相符記錄的數據區域;
  • 「lookup_value 1」是您要查詢的第一個條件;
  • 「lookup_range 1」是包含第一個條件的資料清單;
  • 「lookup_value 2」是您要查詢的第二個條件;
  • 「lookup_range 2」是包含第二個條件的資料清單;
  • 「return_column_number」代表在 lookup_table 中,您要傳回相符值的欄位編號。

步驟 1:套用下列公式

請將下方公式套用至您希望顯示結果的空白儲存格中,然後同時按下「Ctrl」+「Shift」+「Enter」鍵,以取得第一個相符的值,請參閱截圖:

=INDEX($E$2:$G$9, MATCH(1, ($A2=$E$2:$E$9) * ($B2=$F$2:$F$9), 0), 3)

套用公式

步驟 2:將公式填入其他儲存格

接著,選取第一個包含公式的儲存格,並拖曳填滿控制點,依需求將此公式複製到其他儲存格:
將公式填滿至其他儲存格

提示:在 Excel 2016 或更新版本中,您也可以使用「適用於 Excel 的 Microsoft Power Query」功能,根據關鍵列將兩個或多個表格合併為一個。請按一下以逐步了解詳細資訊

3.9 在多個工作表之間使用 VLOOKUP 比對數值

您是否曾需要在 Excel 的多個工作表中執行 VLOOKUP?例如,若您有三個包含區域資料的工作表,並希望根據這些工作表中的條件擷取特定數值,請依照以下逐步教學 在多個工作表間執行 VLOOKUP,輕鬆完成此任務!

跨多個工作表執行 VLOOKUP


VLOOKUP 比對數值時保留儲存格格式

進行比對查詢時,原始儲存格格式(例如字體顏色、背景色、資料格式等)將無法保留。若希望保留儲存格或資料格式,本節將為您介紹幾種實用技巧,有效解決此問題。

4.1 使用 VLOOKUP 比對數值並保留儲存格顏色與字型格式

眾所周知,標準的 VLOOKUP 函數僅能從另一個數據區域中提取相符的數值。然而,有時您可能希望同時取得對應的數值及其儲存格格式,例如填滿色彩、字型顏色與字型樣式。本節將說明如何在 Excel 中提取比對數值的同時,完整保留來源格式。
VLOOKUP 並保留儲存格格式

請依照下列步驟進行查詢,並傳回對應的數值及其儲存格格式:

步驟 1:將程式碼 1 複製到工作表程式碼模組中

  1. 在包含您要執行 VLOOKUP 資料的工作表上,以滑鼠右鍵點擊工作表標籤,然後從快捷選單中選擇「檢視程式碼」。請參閱以下螢幕截圖:
    按一下工作表標籤並選擇「檢視程式碼」
  2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,請將下方的 VBA 程式碼複製到程式碼視窗內。
  3. VBA 程式碼 1:VLOOKUP 取得查詢值及其儲存格格式
  4. Sub Worksheet_Change(ByVal Target As Range)
    'Updateby Extendoffice
        Dim I As Long
        Dim xKeys As Long
        Dim xDicStr As String
        On Error Resume Next
        Application.ScreenUpdating = False
        xKeys = UBound(xDic.Keys)
        If xKeys >= 0 Then
            For I = 0 To UBound(xDic.Keys)
                xDicStr = xDic.Items(I)
                If xDicStr <> "" Then
                    Range(xDic.Keys(I)).Interior.Color = _
                    Range(xDic.Items(I)).Interior.Color
                    Range(xDic.Keys(I)).Font.FontStyle = _
                    Range(xDic.Items(I)).Font.FontStyle
                    Range(xDic.Keys(I)).Font.Size = _
                    Range(xDic.Items(I)).Font.Size
                    Range(xDic.Keys(I)).Font.Color = _
                    Range(xDic.Items(I)).Font.Color
                    Range(xDic.Keys(I)).Font.Name = _
                    Range(xDic.Items(I)).Font.Name
                    Range(xDic.Keys(I)).Font.Underline = _
                    Range(xDic.Items(I)).Font.Underline
                Else
                    Range(xDic.Keys(I)).Interior.Color = xlNone
                End If
            Next
            Set xDic = Nothing
        End If
        Application.ScreenUpdating = True
    End Sub
    
  5. 將程式碼 1 複製並貼上至模組中

步驟 2:將程式碼 2 複製到模組視窗中

  1. 仍在「Microsoft Visual Basic for Applications」視窗中,請點選「插入」>「模組」,並將下方的 VBA 程式碼 2 複製到「模組」視窗中。
  2. VBA 程式碼 2:VLOOKUP 取得查詢值及其儲存格格式
  3. Public xDic As New Dictionary
    Function LookupKeepFormat (ByRef FndValue, ByRef LookupRng As Range, ByRef xCol As Long)
        Dim xFindCell As Range
        On Error Resume Next
        Set xFindCell = LookupRng.Find(FndValue, , xlValues, xlWhole)
        If xFindCell Is Nothing Then
            LookupKeepFormat = ""
            xDic.Add Application.Caller.Address, ""
        Else
            LookupKeepFormat = xFindCell.Offset(0, xCol - 1).Value
            xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address
        End If
    End Function
    
  4. 將程式碼 2 複製並貼上至模組中

步驟 3:選取 VBAproject 的選項

  1. 插入上述程式碼後,請在「Microsoft Visual Basic for Applications」視窗中依序點選「工具」>「參考設定」。接著,在「參考設定 – VBAProject」對話方塊中勾選「Microsoft Scripting Runtime」核取方塊。詳情請參閱螢幕截圖:
    按一下「工具」>「參考設定」向右箭頭在對話方塊中勾選「Microsoft Scripting Runtime」核取方塊
  2. 接著點擊「確定」關閉對話方塊,然後儲存並關閉程式碼視窗。

步驟 4:輸入公式以取得結果

  1. 現在返回工作表,套用下列公式,然後向下拖曳填滿控點,即可取得所有結果及其格式。請參閱螢幕截圖:
    =LookupKeepFormat(E2,$A$1:$C$10,3)

    輸入公式以取得結果

注意:上述公式中:

  • 「E2」是您要查詢的值;
  • 「A1:C10」是表格範圍;
  • 「3」是您要從中提取相符值的表格欄位編號。

4.2 保留 VLOOKUP 傳回結果中的日期格式返回值

當您在使用 VLOOKUP 函數查詢並傳回帶有日期格式的數值時,結果可能會顯示為純數字。若要在傳回結果中保留日期格式,請將 VLOOKUP 函數嵌入 TEXT 函數中。
VLOOKUP 保留日期格式

步驟 1:套用下列公式

請將下列公式套用至空白儲存格,再拖曳填滿控制點,即可將公式複製到其他儲存格。

=TEXT(VLOOKUP(E2,$A$2:$C$9,3,FALSE),"mm/dd/yyyy")

結果:

所有相符的日期均已如以下截圖所示傳回:
套用並填滿公式

注意:上述公式中:

  • 「E2」是查詢值;
  • 「A2:C9」是查詢範圍;
  • 「3」是您要返回值的欄位編號;
  • 「FALSE」表示執行完全符合;
  • 「mm/dd/yyyy」是您要保留的日期格式。

4.3 從 VLOOKUP 傳回批註

您是否曾在 Excel 中需要使用 VLOOKUP 同時擷取相符儲存格的資料及其相關註解(如以下截圖所示)?若是如此,下方提供的使用者自訂函數將能協助您輕鬆完成這項任務。

步驟 1:將程式碼複製到模組中

  1. 按下「Alt」+「F11」鍵,即可開啟「Microsoft Visual Basic for Applications」視窗。
  2. 按一下「插入」>「模組」,然後將下列程式碼複製並貼上至「模組」視窗中。
    VBA 程式碼:VLOOKUP 並傳回帶有批註的相符值:
    Function VlookupComment(LookVal As Variant, FTable As Range, FColumn As Long, FType As Long) As Variant
    'Updateby Extendoffice
        Application.Volatile
        Dim xRet As Variant 'could be an error
        Dim xCell As Range
        xRet = Application.Match(LookVal, FTable.Columns(1), FType)
        If IsError(xRet) Then
            VlookupComment = "Not Found"
        Else
            Set xCell = FTable.Columns(FColumn).Cells(1)(xRet)
            VlookupComment = xCell.Value
            With Application.Caller
                If Not .Comment Is Nothing Then
                    .Comment.Delete
                End If
                If Not xCell.Comment Is Nothing Then
                    .AddComment xCell.Comment.Text
                End If
            End With
        End If
    End Function
  3. 接著儲存並關閉程式碼視窗。

步驟 2:輸入公式以取得結果

  1. 現在請輸入下列公式,並拖曳填滿控點將其複製到其他儲存格。系統將同時傳回相符的值與註解,詳情請參閱螢幕截圖:
    =vlookupcomment(D2,$A$2:$B$9,2,FALSE)

    輸入公式以取得包含註解的結果

注意:上述公式中:

  • 「D2」是您要返回其對應值的查詢值;
  • 「A2:B9」是您要使用的資料表;
  • 「2」是包含您要返回之相符值的欄位編號;
  • 「FALSE」表示完全符合。

4.4 VLOOKUP 查詢以文字格式儲存的數字

舉例來說,假設您有一組資料,其中原始表格的 ID 編號為數字格式,而查詢儲存格中的 ID 編號則以文字格式儲存。此時若使用標準 VLOOKUP 函數,可能會出現 #N/A 錯誤。為正確擷取資訊,您可在 VLOOKUP 函數中嵌套 TEXT 與 VALUE 函數。以下是實現此功能的公式:
VLOOKUP 以文字形式儲存的數字

步驟 1:套用並填滿下列公式

請將下列公式套用至空白儲存格,再向下拖曳填滿控制點以複製公式。

=IFERROR(VLOOKUP(VALUE(D2),$A$2:$B$8,2,0),VLOOKUP(TEXT(D2,0),$A$2:$B$8,2,0))

結果:

現在,您將獲得如以下截圖所示的正確結果:
套用並填滿公式

注意事項:

  • 在上述公式中:
    • 「D2」是您要返回其對應值的查詢值;
    • 「A2:B8」是您要使用的資料表;
    • 「2」是包含您要返回之相符值的欄位編號;
    • 「0」表示要求完全相符。
  • 即使您不確定哪些位置是數字、哪些是文字,此公式依然能順利運作。