VLOOKUP 函數

當您需要在表格或範圍中按列搜尋資料時,請使用查閱與參照函數其中之一的 VLOOKUP。例如按零件編號查閱某個汽車零件的價格時。

以其最簡單的形式而言,VLOOKUP 函數表示:

=VLOOKUP(想要查閱的值, 想要查閱值的範圍, 範圍中包含傳回值的欄號, 完全符合或大約符合 (以 0/FALSE 或 1/TRUE 指示))。

您的瀏覽器不支援視訊。請安裝 Microsoft Silverlight、Adobe Flash Player 或 Internet Explorer 9。

本影片是 VLOOKUP:使用時機及方式訓練課程的一部分。

提示: 使用 VLOOKUP 的訣竅,便是整理您的資料,讓要查閱的值 (零件編號) 位於要尋找的傳回值 (零件價格) 左側。

使用 VLOOKUP 函數來查閱表格中的值。

語法

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

例如:

  • =VLOOKUP(105,A2:C7,2,TRUE)

  • = VLOOKUP("連",B2:E7,2,FALSE)

引數名稱

描述

lookup_value    (必填)

您要查閱的值。您想要查閱的值必須位於表格陣列中所指定之儲存格範圍的第一欄。

例如,如果表格陣列橫跨 B2:D7,那麼您的 lookup_value 必須位於欄 B。請見下圖,Lookup_value 可以是值或儲存格參照。

table_array    (必填)

VLOOKUP 會針對 lookup_value 搜尋及傳回值的儲存格範圍。

儲存格範圍中的第一欄必須包含 lookup_value (例如下圖中的 [姓氏]。) 儲存格範圍也必須包含要尋找的傳回值 (例如下圖中的 [名字])。

了解如何選取工作表中的範圍

col_index_num    (必填)

包含傳回值的欄號 (從「表格陣列」最左方的欄開始為 1)。

range_lookup    (選填)

這是用以指定要 VLOOKUP 尋找大約符合或完全符合值的邏輯值:

  • TRUE 假設表格第一欄依數字順序或字母順序排列,然後搜尋最接近值。如果您沒有指定方法,則預設為 TRUE。

  • FALSE 會在第一欄搜尋精確值。

如何開始

建置 VLOOKUP 語法需要四項資訊:

  1. 您想要查閱的值,也稱為「查閱值」。

  2. 查閱值所在的範圍。請記住,查閱值必須一律位於範圍的第一欄內,VLOOKUP 才能正確運作。例如,如果您的查閱值是位於儲存格 C2 中,您的範圍便應該從 C 開始。

  3. 範圍中包含傳回值的欄號。例如,如果您將範圍指定為 B2:D11,您應該將 B 視為第一欄,C 視為第二欄,依此類推。

  4. 此外,如果您想要取得大約符合回傳值,可以指定 TRUE,如果想要取得完全符合回傳值,可以指定 FALSE。若您不指定,預設值一律為 TRUE 或稱為大約符合值。

現在將上述內容組合在一起:

=VLOOKUP(查閱值, 包含查閱值的範圍, 範圍中包含傳回值的欄號, 可選擇針對大約符合指定 TRUE 或針對完全符合指定 FALSE)。

下圖顯示如何將 VLOOKUP 設定成傳回剎車盤的價格:85.73。

VLOOKUP 範例
  1. D13 為 lookup_value,也就是您要查閱的值。

  2. B2 到 E11 (在表格中以黃色醒目提示) 為 table_array,也就是查閱值所在的範圍。

  3. 3 為 col_index_num,也就是包含傳回值的 table_array 中的欄號。在此範例中,表格陣列中的第三欄為零件名稱,因此公式輸出內容會是零件價格欄中的值。

  4. FALSE 為 range_lookup,因此傳回值會是完全相符。

  5. VLOOKUP 公式的輸出內容為 85.73,也就是剎車盤的價格。

範例

以下是幾個額外的 VLOOKUP 範例:

範例 1

VLOOKUP 範例 1

範例 2

VLOOKUP 範例 2

範例 3

VLOOKUP 範例 3

範例 4

VLOOKUP 範例 4

範例 5

VLOOKUP 範例 5

問題

錯在哪裡

傳回錯誤值

如果 range_lookup 為 TRUE 或省略,則第一欄必須依字母順序或數字順序排列。如果第一欄沒有排列,傳回值可能會出錯。您可以排序第一欄,或以 FALSE 找尋完全符合的值。

儲存格中出現 #N/A

  • 如果 range_lookup 為 TRUE,則如果 lookup_value 的值小於 table_array 第一欄的最小值,您會接獲 #N/A 錯誤值。

  • 如果 range_lookup 是 FALSE,則 #N/A 錯誤值代表找不到完全符合的值。

如需解決 VLOOKUP 中 #N/A 錯誤的詳細資訊,請參閱如何修正 VLOOKUP 函數中的 #N/A 錯誤

儲存格中出現 #REF!

如果 col_index_num 大於 table-array 中的欄數,您會接獲 #REF! 錯誤值。

如需解決 VLOOKUP 中 #REF! 錯誤的詳細資訊,請參閱如何修正 #REF! 錯誤

儲存格中出現 #VALUE!

如果 table_array 小於 1,您會接獲 #VALUE! 錯誤值。

如需解決 VLOOKUP 中 #VALUE! 錯誤的詳細資訊,請參閱如何修正 VLOOKUP 函數中的 #VALUE! 錯誤

儲存格中出現 #NAME?

#NAME? 錯誤值通常表示公式漏掉雙引號。若要查詢人名時,請務必在公式中的人名前後加上雙引號。例如,在 =VLOOKUP("周",B2:E7,2,FALSE) 中,請將名字寫成 "周"

如需詳細資訊,請參閱如何修正 #NAME? 錯誤

請執行此動作

理由

range_lookup 使用絕對參照

使用絕對參照可讓您填滿公式,使它永遠查閱完全相同的範圍。

進一步了解如何使用絕對儲存格參照

不要將數字或日期儲存為文字。

搜尋數字或日期值時,請確定 table_array 第一欄中的資料並未儲存成文字值。否則,VLOOKUP 可能會傳回不正確或非預期的值。

將第一欄排序

如果 range_lookup 是 TRUE,請在使用 VLOOKUP 之前,先將 table_array 的第一欄排序。

使用萬用字元

如果 range_lookup 是 FALSE,而且 look_up value 是文字,則您可在 look_up value 中使用萬用字元 (問號 (?) 和星號 (*))。問號可比對任何一個字元。星號可比對任何一串連續字元。如果您要尋找實際的問號或星號,請在該字元前面輸入波狀符號 (~)。

例如,=VLOOKUP("Fontan?",B2:E7,2,FALSE) 會搜尋所有與「連」僅最後一個字母不同的例項。

請確定您的資料沒有包含錯誤的字元。

在第一欄中搜尋文字值時,請確定第一欄中的資料不包含前置空格、結尾空格、不成對的直引號 ( ' 或 " ) 及彎引號 ( ‘ 或 “ ),以及非列印字元。否則 VLOOKUP 可能會傳回不在預期之內的值。

若要得出正確的結果,可嘗試使用 CLEAN 函數TRIM 函數,移除儲存格中表格值後面的結尾空格。

對特定函數有任何問題嗎?

在 Excel 社群論壇張貼問題

協助我們改進 Excel

您是否有任何關於下一版 Excel 的改善方式的建議?如果有的話,請參閱 Excel User Voice中的主題。

請參閱

快速參考卡:VLOOKUP 進修課程

快速參考卡:VLOOKUP 疑難排解提示

您所需知道的所有 VLOOKUP 資訊

如何修正 VLOOKUP 函數中的 #VALUE! 錯誤

如何修正 VLOOKUP 函數中的 #N/A 錯誤

Excel 公式概觀

如何避免公式出錯

偵測公式中的錯誤

Excel 函數 (依英文字母順序)

Excel 函數 (依類別)

分享 Facebook Facebook Twitter Twitter 電子郵件 電子郵件

這項資訊有幫助嗎?

太好了! 還有其他意見反應嗎?

我們應該如何改進?

感謝您的意見反應!

×