秘訣
請嘗試使用新的 XLOOKUP 函數,這是 VLOOKUP 的改良版本,可朝任何方向運作,並預設會傳回完全符合的比對,因此比其前置函數更容易且更方便使用。
在您需要於表格中或以列為主的範圍尋找項目時,請使用 VLOOKUP。 例如,依據零件編號查詢汽車零件的價格,或根據員工識別碼尋找員工名稱。
以其最簡單的形式而言,VLOOKUP 函數表示:
=VLOOKUP (您要查閱的項目、要尋找的位置、包含要傳回值的範圍中的欄位號、傳回大約符合或完全符合的值,顯示 1/TRUE 或 0/FALSE)。
秘訣
- 使用 VLOOKUP 的訣竅,便是整理您的資料,讓要查閱的值 (Fruit) 位於要尋找的傳回值 (Amount) 左側。
- 如果您是 Microsoft Copilot 訂閱者,Copilot 可以讓您更輕鬆地插入及使用 VLookup 或 XLookup 函式。 請參閱使用 Excel 中的 Copilot 取得資料深入解析。
技術詳細資訊
使用 VLOOKUP 函數來查閱表格中的值。
語法
VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
例如:
- =VLOOKUP (A2,A10:C20,2,TRUE)
- = VLOOKUP("連",B2:E7,2,FALSE)
- =VLOOKUP (A2,'Client Details'!A:F,3,FALSE)
| 引數名稱 | 描述 |
|---|---|
| lookup_value (必填) | 您要查閱的值。 您想要查閱的值必須位於您在 table_array 引數中所指定之儲存格範圍的第一欄。 例如,如果 表格陣列 跨越儲存格 B2:D7,則您的lookup_value必須位於欄 B 中。 Lookup_value 可以是值或儲存格參照。 |
| table_array (必填) | VLOOKUP 會針對 lookup_value 和傳回值搜尋的儲存格範圍。 您可以使用具名範圍或表格,而且可以使用引數中的名稱,而非儲存格參照。 儲存格範圍中的第一欄必須包含 lookup_value。 儲存格範圍也必須包括您要尋找的傳回值。 |
| col_index_num (必填) | 對於包含傳回值的 table_array) 的最左邊欄,欄號 (從 1 開始。 |
| range_lookup (選填) | 這是用以指定要 VLOOKUP 尋找大約符合或完全符合值的邏輯值:
|
如何開始
建置 VLOOKUP 語法需要四項資訊:
- 您想要查閱的值,也稱為「查閱值」。
- 查閱值所在的範圍。 請記住,查閱值必須一律位於範圍的第一欄內,VLOOKUP 才能正確運作。 例如,如果您的查閱值是位於儲存格 C2 中,您的範圍便應該從 C 開始。
- 範圍中包含傳回值的欄號。 例如,如果您將範圍指定為 B2:D11,您應該將 B 視為第一欄,C 視為第二欄,依此類推。
- 此外,如果您想要取得大約符合回傳值,可以指定 TRUE,如果想要取得完全符合回傳值,可以指定 FALSE。 若您不指定,預設值一律為 TRUE 或稱為大約符合值。
現在將上述內容組合在一起:
=VLOOKUP (查閱值, 範圍包含查閱值,範圍中包含傳回值的欄位號,大約符合 (TRUE) 或完全符合 (FALSE))。
範例
以下是 VLOOKUP 的一些範例:
範例 1
範例 2
範例 3
範例 4
範例 5
常見問題
| 問題 | 錯在哪裡 |
|---|---|
| 傳回錯誤值 | 如果 range_lookup 為 TRUE 或省略,則第一欄必須依字母順序或數字順序排列。 如果第一欄沒有排列,傳回值可能會出錯。 您可以排序第一欄,或以 FALSE 找尋完全符合的值。 |
| 儲存格中出現 #N/A |
|
| #REF! (在儲存格中) | 如果 col_index_num 大於 table-array 中的欄數,則會得到 #REF! 錯誤值。 如需解決 VLOOKUP 中 #REF! 錯誤,請參閱 如何修正 #REF! 錯誤。 |
| #VALUE! (在儲存格中) | 如果 table_array 小於 1,您就會收到 #VALUE! 錯誤值。 如需解決 VLOOKUP 中 #VALUE! 錯誤,請參閱 如何修正 #VALUE! VLOOKUP 函數中的錯誤。 |
| 儲存格中的 #NAME? | #NAME?錯誤值通常表示公式漏掉雙引號。 若要查詢人名時,請務必在公式中的人名前後加上雙引號。 例如,在 =VLOOKUP("周",B2:E7,2,FALSE) 中,請將名字寫成 "周"。 如需詳細資訊,請參閱如何修正 #NAME? 錯誤。 |
| #SPILL! (在儲存格中) | 這個特殊的 #SPILL! 錯誤 通常表示您的公式是依賴查閱值的隱含交集,並使用整欄做為參照。 例如,=VLOOKUP ( A:A,A:C,2,FALSE) 。 您可以使用 @ 運算子來錨定查閱參照以解決問題,如下所示:=VLOOKUP(@A:A,A:C,2,FALSE).。 或者,您可以使用傳統的 VLOOKUP 方法,並參照單一儲存格,而非整個欄:=VLOOKUP(A2,A:C,2,FALSE)。 |
最佳做法
| 進行這項操作 | 理由 |
|---|---|
| 對range_lookup使用絕對參照 | 使用絕對參照可讓您填滿公式,使它永遠查閱完全相同的範圍。 進一步了解如何使用絕對儲存格參照。 |
| 不要將數字或日期儲存為文字。 | 搜尋數字或日期值時,請確定 table_array 第一欄中的資料並未儲存成文字值。 否則,VLOOKUP 可能會傳回不正確或非預期的值。 |
| 將第一欄排序 | 當range_lookup為 TRUE 時,在使用 VLOOKUP 之前,先將table_array的第一欄排序。 |
| 使用萬用字元 | 如果 range_lookup 為 FALSE 且 lookup_value 為文字,則可以在 lookup_value 中使用萬用字元,例如問號 (?) 和星號 (*) 。 問號可比對任何一個字元。 星號可比對任何一串字元。 如果您要尋找實際的問號或星號,請在該字元前面輸入波狀符號 (~)。 例如,=VLOOKUP("Fontan?",B2:E7,2,FALSE) 將搜尋與 Fontana 僅最後一個字母不同的所有執行個體。 |
| 請確定您的資料沒有包含錯誤的字元。 | 在第一欄中搜尋文字值時,請確定第一欄中的資料不包含前置空格、結尾空格、不成對的直 ( 引號 ' 或 “ ) 和彎引 ( 號 ' 或 ) ,以及非列印字元。 否則 VLOOKUP 可能會傳回不在預期之內的值。 若要得出正確的結果,可嘗試使用 CLEAN 函數或 TRIM 函數,移除儲存格中表格值後面的結尾空格。 |
需要更多協助嗎?
您隨時都可以詢問 Excel 技術社群 中的專家,或在 社群中取得支援。