Excel 如何用 VLOOKUP 查詢資料?超詳細圖解教學,讓你晉升資料處理達人!

Excel 如何用 VLOOKUP 查詢資料?

各位 Excel 的愛好者們,尤其是那些常常被海量資料淹沒,需要快速從一大堆表格中找出特定資訊的朋友們,相信大家一定都遇過這樣的困擾:明明資料就在那裡,但要費九牛二虎之力才能找到,真是讓人頭痛欲裂!別擔心,今天我要帶大家深入了解一個在 Excel 中處理資料的超級利器——VLOOKUP 函數!學會了它,你就能像變魔術一樣,輕鬆又準確地完成資料查詢和整合的任務,絕對讓你效率倍增,晉升資料處理達人!

簡單來說,VLOOKUP 函數就像是你專屬的資料小助手,你告訴它你要找的「東西」(查詢值),以及這個「東西」可能藏在哪個「範圍」(查詢範圍),還有你希望它從找到的「東西」旁邊,幫你帶回哪一欄的資訊(傳回欄位索引),最後再決定要「精確比對」還是「近似比對」。它就會乖乖地幫你把符合條件的資料找出來,傳回給你。是不是聽起來就覺得很厲害呀?

我自己在剛接觸 Excel 的時候,也常常為了查找資料而花費很多時間,尤其是在處理不同表格之間的關聯性資料時。當時,VLOOKUP 對我來說簡直是一個天書!但經過不斷地摸索和實踐,我發現它真的是一個能徹底改變工作流程的神奇工具。今天,我將會把我的經驗和詳細的步驟,毫無保留地分享給大家,保證讓你一次就學懂,而且是真的「懂」,而不是死記硬背!

VLOOKUP 函數的奇妙之處:為何它如此重要?

在我們開始學習實際操作之前,讓我們先來聊聊為什麼 VLOOKUP 如此重要,以及它能為我們帶來什麼樣的改變。想像一下,你手上有兩個 Excel 工作表:一個是客戶訂單表,裡面有訂單編號、客戶 ID、訂單日期等等;另一個是客戶基本資料表,裡面有客戶 ID、客戶名稱、聯絡電話、地址等等。現在,你需要在一份新的報表中,同時顯示每個訂單的客戶名稱和聯絡電話。沒有 VLOOKUP 的話,你可能得手動複製貼上,或者用篩選、排序來一個個找,這在訂單量大的時候,簡直是個噩夢,而且極容易出錯!

但是,有了 VLOOKUP,這個過程就可以變得非常簡單。你只需要在新的報表中,針對每一個訂單的客戶 ID,使用 VLOOKUP 去客戶基本資料表中尋找對應的客戶 ID,然後把客戶名稱和聯絡電話帶回來。這樣一來,不僅速度快上百倍,而且結果也更準確,大大降低了人為錯誤的機會。

我的經驗談: 剛開始我總是擔心函數的複雜性,但後來我發現,其實 VLOOKUP 的邏輯並不難理解。它最核心的概念就是「查尋」與「帶回」。只要搞清楚這兩點,並掌握好它的四個參數,你就能輕鬆駕馭它了。

VLOOKUP 函數的語法解析:拆解每個參數

要學會使用 VLOOKUP,首先要了解它的基本語法。VLOOKUP 函數的完整語法是這樣的:

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

是不是看起來有點專業?別擔心,我們一個個來拆解,把它們變成我們最好懂的朋友:

  1. lookup_value (查詢值): 這就像是你在尋找的「線索」或「關鍵字」。它是你要在第一個表格(也就是 table_array 的第一欄)中尋找的值。例如,如果你在找特定客戶的資料,這個「查詢值」就是客戶 ID。
  2. table_array (查詢範圍): 這就是 VLOOKUP 要去「搜尋」的整個表格區域。它必須包含你想要尋找的「查詢值」以及你希望它「帶回」的欄位。非常重要的一點是: lookup_value 必須位於 table_array最左邊那一欄。Excel 會從這一欄開始尋找 lookup_value
  3. col_index_num (傳回欄位索引):VLOOKUPtable_array 的第一欄找到了 lookup_value 後,它就會從這一列的相同位置,往右數,數到你指定的「傳回欄位索引」那一欄,並將該欄位的值傳回給你。請注意,這個數字是指 table_array 範圍內從左邊數起的第幾欄,而不是 Excel 工作表中實際的欄位字母。
  4. [range_lookup] (範圍查詢): 這是一個可選參數,但非常關鍵!它決定了 VLOOKUP 是要進行「精確比對」還是「近似比對」。
    • 輸入 FALSE0:表示進行「精確比對」。這意味著 VLOOKUP 只會尋找與 lookup_value 完全相同的值。如果找不到完全相同的值,它會傳回 #N/A 錯誤。在大多數情況下,我們都會使用這個選項,因為我們通常需要找到確切的資料。
    • 輸入 TRUE1 (或省略):表示進行「近似比對」。這意味著 VLOOKUP 會尋找小於或等於 lookup_value 的最大值。請注意! 使用近似比對的前提是,table_array 的第一欄必須是遞增排序的(通常是數字或字母順序)。這個選項常用於查詢區間價格、績效等級等。

我的經驗談: 很多人一開始會搞混 col_index_num,以為是 Excel 的欄位編號。記住,它是相對於你選取的 table_array 的左邊第一欄開始算的!還有,range_lookupFALSETRUE(或 0 和 1)真的差很多,務必確認你的需求,以免得到錯誤的結果。

實戰演練:用 VLOOKUP 解決實際問題(步驟詳解)

理論講完了,現在就讓我們來實際動手操作,把 VLOOKUP 應用到一個具體的例子中吧!

假設我們有兩個工作表:

工作表一:產品銷售紀錄 (Sheet1)

訂單 ID 產品 ID 銷售數量 銷售日期
1001 P003 5 2026/10/26
1002 P001 10 2026/10/26
1003 P002 8 2026/10/27
1004 P003 2 2026/10/27

工作表二:產品資訊 (Sheet2)

產品 ID 產品名稱 單價 庫存
P001 筆記型電腦 35000 50
P002 滑鼠 800 200
P003 鍵盤 1500 150

我們的目標是,在「產品銷售紀錄」工作表中,新增「產品名稱」和「單價」這兩欄,讓每一筆銷售紀錄都能顯示對應的產品資訊。我們將會在 Sheet1 中進行操作。

步驟一:定義查詢值 (lookup_value)

Sheet1 的 D2 儲存格(假設我們要在 D 欄新增「產品名稱」),我們需要找出與之相對應的「產品 ID」。在 D2 儲存格中,我們輸入 =VLOOKUP(

我們想要查詢的「產品 ID」就在 B2 儲存格。所以,我們的 lookup_value 就是 B2。現在公式變成:=VLOOKUP(B2,

步驟二:選取查詢範圍 (table_array)

接著,我們要告訴 VLOOKUP 到哪裡去找這個「產品 ID」。我們需要到 Sheet2,並選取包含「產品 ID」、「產品名稱」和「單價」的整個表格區域。在這個例子中,我們選取 Sheet2 的 A2:C4 儲存格範圍。

重要提示: 在選取 table_array 時,務必將游標移到 Sheet2,然後選取 A2:C4。選取完畢後,為了在複製公式時讓這個範圍保持固定,我們需要按下 F4 鍵,將儲存格範圍變成絕對參照,變成 Sheet2!$A$2:$C$4。這樣,當我們把公式向下拖曳時,這個查詢範圍就不會跑掉。

現在公式變成:=VLOOKUP(B2, Sheet2!$A$2:$C$4,

步驟三:指定傳回欄位索引 (col_index_num)

我們希望帶回「產品名稱」。在我們選取的 table_array (Sheet2!$A$2:$C$4) 中,「產品名稱」是從左邊數起的第二欄。所以,我們的 col_index_num 就是 2

現在公式變成:=VLOOKUP(B2, Sheet2!$A$2:$C$4, 2,

步驟四:設定範圍查詢 (range_lookup)

我們需要找到與 Sheet1 中的「產品 ID」完全符合的「產品 ID」在 Sheet2 中。因此,我們需要進行「精確比對」。在 range_lookup 參數中,我們輸入 FALSE (或 0)。

最後,我們加上右括號 ),完成公式:=VLOOKUP(B2, Sheet2!$A$2:$C$4, 2, FALSE)

步驟五:套用公式並複製

按下 Enter 鍵後,D2 儲存格就會顯示「鍵盤」。接著,我們將滑鼠游標移到 D2 儲存格的右下角,當游標變成一個黑色的小十字時,點擊滑鼠並向下拖曳,複製公式到 D3、D4、D5 儲存格。你就會發現,每一筆銷售紀錄都成功帶回了對應的產品名稱!

新增「單價」欄位

同理,我們可以在 E 欄新增「單價」。在 E2 儲存格輸入公式:

=VLOOKUP(B2, Sheet2!$A$2:$C$4, 3, FALSE)

這裡,我們將 col_index_num 改為 3,因為「單價」是我們選取範圍 (Sheet2!$A$2:$C$4) 中的第三欄。

同樣地,將公式向下複製到 E3、E4、E5 儲存格。

完成後,我們的 Sheet1 就會變成這樣:

訂單 ID 產品 ID 銷售數量 銷售日期 產品名稱 單價
1001 P003 5 2026/10/26 鍵盤 1500
1002 P001 10 2026/10/26 筆記型電腦 35000
1003 P002 8 2026/10/27 滑鼠 800
1004 P003 2 2026/10/27 鍵盤 1500

是不是超級方便!透過 VLOOKUP,我們輕輕鬆鬆就完成了兩個工作表之間的資料整合。

VLOOKUP 函數的常見錯誤與排除

雖然 VLOOKUP 非常強大,但有時候我們也會遇到一些讓人生氣的錯誤訊息,像是 #N/A#REF! 或是傳回了不對的值。別急,這些通常都有解決辦法的!

1. #N/A 錯誤:找不到符合的值

這是最常見的錯誤,表示 VLOOKUPtable_array 的第一欄找不到你的 lookup_value。可能的原因有:

  • 查詢值不存在: 你的 lookup_valuetable_array 的第一欄中確實沒有。
  • 前後有空格: 這是個很小的細節,但卻常常被忽略!例如,儲存格裡的「P001」前面或後面多了一個空格,就會導致無法比對。你可以選取該欄,然後按下 Ctrl + H (尋找與取代),在「尋找目標」輸入一個空格,在「取代為」欄位留空,然後全部取代。
  • 數字格式不同: 有時候,一個儲存格看起來是數字,但實際上它被儲存為文字。這會導致比對失敗。試著將兩邊的欄位格式都設定為「通用格式」或「數字」。
  • 查詢範圍的第一欄不是 lookup_value: 再次確認,lookup_value 一定要放在 table_array 的最左邊那一欄。
  • 使用近似比對但資料未排序: 如果你設定 range_lookupTRUE (或省略),但 table_array 的第一欄不是遞增排序,就可能出現錯誤。

2. #REF! 錯誤:傳回欄位索引超出範圍

這個錯誤通常發生在你指定的 col_index_num 超出了 table_array 的欄位數。例如,你的 table_array 只有 3 欄,但你卻指定 col_index_num 為 4,就會出現這個錯誤。請仔細檢查你的 table_array 範圍和 col_index_num

3. 傳回了不對的值(但沒有錯誤訊息)

這通常是因為你使用了「近似比對」 (range_lookupTRUE 或省略),但你的資料並未正確排序,或是你的 lookup_value 應該要精確比對,卻誤設為近似比對。

我的建議: 除非你確定需要近似比對,否則強烈建議在 range_lookup 參數中永遠輸入 FALSE0,這樣才能保證你找到的是最精確的結果。

進階應用與考量

學會了 VLOOKUP 的基本用法,你可能還會遇到一些更進階的需求。以下是一些額外的考量和提示:

當查詢範圍很大時的效能問題

如果你的 table_array 非常龐大(例如數十萬列),VLOOKUP 的計算速度可能會變慢,影響 Excel 的整體效能。在這種情況下,你可能需要考慮使用其他更有效率的函數,例如:

  • INDEX + MATCH 組合: 這個組合在某些情況下比 VLOOKUP 更靈活且效能更好,而且它可以讓你查詢的欄位不在 table_array 的最左邊。
  • XLOOKUP (Excel 365 和較新版本): 如果你使用的是較新版本的 Excel,XLOOKUPVLOOKUP 的一個更強大、更易用的替代方案,它解決了 VLOOKUP 的許多限制。

不過,對於大多數日常應用,VLOOKUP 絕對是你的首選,也是最容易上手的。

絕對參照與相對參照

我在前面的步驟中提到過,當選取 table_array 後,按下 F4 將其轉換為絕對參照(加上 $ 符號)是非常重要的,這樣在複製公式時,查詢範圍才不會移動。相對參照(沒有 $ 符號)則會在複製公式時根據新的位置自動調整。這兩者在 Excel 公式中扮演著不同的角色,理解它們的區別對於精確控制公式非常關鍵。

處理多個查詢條件

VLOOKUP 本身一次只能處理一個查詢值。如果你需要根據多個條件來查詢資料,例如同時根據「產品 ID」和「銷售日期」來找資料,你就不能直接使用 VLOOKUP。這時候,你可能需要結合其他函數,例如:

  • 輔助欄位: 在你的 table_array 中新增一個輔助欄位,將你想合併的欄位的值串接起來,然後以這個輔助欄位作為 VLOOKUP 的查詢值。
  • INDEX + MATCH 組合(搭配陣列公式): 這種組合可以讓你更靈活地處理多個查詢條件。
  • SUMIFS / AVERAGEIFS / COUNTIFS 如果你的目的是對符合多個條件的資料進行加總、平均或計數,這些函數會比 VLOOKUP 更適合。

結論:讓 VLOOKUP 成為你 Excel 的得力助手!

各位朋友,學到這裡,相信你對 VLOOKUP 函數的了解已經非常深入了!從它的語法、實際操作步驟,到可能遇到的錯誤及解決方法,我都盡量用最清楚、最易懂的方式來跟大家說明。我真心覺得,VLOOKUP 這個函數的出現,簡直是大幅提升了我們處理 Excel 資料的效率和精準度。

請大家一定要動手去練習!理論再好,沒有實際操作,永遠也學不會。你可以找一些自己日常工作會用到的資料,試著用 VLOOKUP 去整合看看。過程中一定會遇到一些小挑戰,但別怕,每一次的解決問題,都是你進步的動力。

記住,Excel 的學習是一個循序漸進的過程。今天學會了 VLOOKUP,明後天你可能就會發現更多函數的妙用。最重要的是保持好奇心和練習的習慣。希望今天的教學對大家有幫助,讓你往後的 Excel 工作更加得心應手,不再為資料查詢而煩惱!

常見問題集

Q1:為什麼我的 VLOOKUP 函數傳回 #N/A 錯誤?

#N/A 錯誤表示 VLOOKUP 在指定的查詢範圍 (table_array) 的第一欄中,找不到你要尋找的值 (lookup_value)。請檢查以下幾點:

  1. 查詢值是否存在: 確認你要查詢的值 (lookup_value) 是否確實存在於查詢範圍的第一欄。
  2. 前後是否有空格: 這是最常見的原因之一。請檢查你的查詢值和查詢範圍的第一欄中,儲存格內的文字前後是否有不小心多出來的空格。你可以使用「尋找與取代」功能來移除空格。
  3. 格式不一致: 有時候,數字可能被儲存為文字,或是文字前面有看不見的特殊符號。試著將相關儲存格的格式設定為「通用格式」,並檢查是否有其他潛在的格式問題。
  4. 大小寫差異: 預設情況下,VLOOKUP 對於文字的比對是不區分大小寫的。但如果你的查找值和表格中的值因為其他原因(例如前面提到的空格)而無法完全匹配,也可能導致此錯誤。
  5. 查詢範圍的設定: 再次確認你的 table_array 是否正確,並且你要查詢的值 (lookup_value) 是否位於 table_array 的最左邊那一欄。
  6. Range_lookup 參數: 如果你使用「近似比對」(range_lookup 設定為 TRUE 或省略),但你的查詢範圍第一欄並未按遞增排序,也可能出現 #N/A
Q2:VLOOKUP 函數可以查詢右邊的資料嗎?

不行,這是 VLOOKUP 的一個主要限制。VLOOKUP 只能夠從你指定的查詢範圍 (table_array) 的最左邊那一欄開始向右查找,並將相同列、指定欄位索引 (col_index_num) 的值傳回。它無法查詢在你查詢值所在欄位左邊的資料。

如果你需要從左邊查找資料,建議你採用以下兩種方法:

  • 調整表格結構: 如果可能,重新排列你的表格,將你想要查詢的值放在最左邊的欄位。
  • 使用 INDEX + MATCH 組合: 這是 VLOOKUP 的一個強大替代方案,MATCH 函數可以用來找出值的位置,而 INDEX 函數則可以根據位置傳回指定欄位的值。這個組合的靈活性更高,可以實現左右查找。
  • 使用 XLOOKUP (Excel 365+): 如果你使用的是新版本的 Excel,XLOOKUP 函數可以克服 VLOOKUP 的左右查找限制,更加方便。
Q3:VLOOKUP 函數中,range_lookup 設定為 TRUE 和 FALSE 有什麼區別?

這是 VLOOKUP 函數中最關鍵也最容易被誤解的參數之一。它們的區別在於比對的方式:

range_lookup 設定為 FALSE (或 0):

  • 表示進行「精確比對」。
  • VLOOKUP 會在查詢範圍的第一欄中,尋找與你的 lookup_value 完全相同的值。
  • 如果找不到完全相同的值,就會傳回 #N/A 錯誤。
  • 這是最常用的設定,適用於查找產品 ID、員工編號、訂單編號等需要精確匹配的情況。
  • 注意: 使用 FALSE 時,查詢範圍的第一欄不一定需要排序

range_lookup 設定為 TRUE (或 1,或省略):

  • 表示進行「近似比對」。
  • VLOOKUP 會尋找小於或等於你的 lookup_value 的最大值。
  • 非常重要: 使用 TRUE 時,查詢範圍的第一欄必須是以遞增排序(從小到大)的。如果沒有排序,傳回的結果將會是錯誤的。
  • 這個設定常用於查找區間性的資料,例如:根據考試分數查找對應的成績等級(A、B、C),或根據銷售額查找對應的獎金比例。

我的建議: 在大多數情況下,如果你需要找到完全符合的值,請務必將 range_lookup 設定為 FALSE0。只有在你確定需要進行區間查找,並且你的資料已經正確排序時,才考慮使用 TRUE

Q4:為什麼我複製 VLOOKUP 公式後,傳回的值會跑掉?

這個問題通常是因為你沒有正確使用「絕對參照」或「相對參照」。當你在公式中引用儲存格或範圍時,Excel 有兩種參照方式:

  • 相對參照 (例如:B2, A2:C4): 當你複製公式到新的儲存格時,這些參照會根據新儲存格的位置自動調整。
  • 絕對參照 (例如:$B$2, $A$2:$C$4): 在參照前加上 $ 符號,表示這個參照是固定的,不會隨著公式的複製而改變。

VLOOKUP 函數中,我們通常需要:

  • lookup_value (查詢值) 使用相對參照: 因為當公式向下複製時,我們希望查詢的值能跟著換到下一列(例如 B2 變成 B3, B4…)。
  • table_array (查詢範圍) 使用絕對參照: 因為無論公式複製到哪個儲存格,我們都希望它永遠從同一個固定的範圍去查找資料。

解決方法: 在選取 table_array (例如 Sheet2!A2:C4) 後,按下鍵盤上的 F4 鍵,它會自動在參照前後加上 $ 符號,將其轉換為絕對參照。如果你不小心按到了,想要取消,可以再按一次 F4

Q5:Excel 365 版本有 VLOOKUP 嗎?還是有更好的替代函數?

是的,Excel 365 版本依然包含 VLOOKUP 函數,讓舊有使用者可以順暢轉換。然而,Excel 365 也引入了一個更強大、更靈活的函數——XLOOKUP

XLOOKUP 函數解決了 VLOOKUP 的許多限制,例如:

  • 查找方向更自由: XLOOKUP 不僅可以向右查找,也可以向左查找,打破了 VLOOKUP 的限制。
  • 參數更簡潔: XLOOKUP 的語法通常比 VLOOKUP 更容易理解,參數也更直觀。
  • 內建錯誤處理: XLOOKUP 可以直接在函數內設定找不到值時要顯示的內容,省去了使用 IFERROR 函數的步驟。
  • 更強大的匹配模式: 支援模糊匹配(例如使用萬用字元)等更進階的功能。

如果你使用的是 Excel 365 或更新的版本,強烈建議你學習並開始使用 XLOOKUP。但如果你仍在使用較舊版本的 Excel,VLOOKUP 依然是你處理資料查詢的首選工具。

Excel如何用vlookup