用了 VLOOKUP 一段時間之後,你可能會發現它有幾個讓人頭痛的限制:只能從左往右查、關鍵字必須在第一欄、欄位順序一改就出錯。INDEX + MATCH 組合正是為了解決這些問題而存在。
這篇從 INDEX 和 MATCH 各自的用途開始說明,再教你如何把兩者組合起來,取代 VLOOKUP 完成更靈活的查詢。全程附可直接複製使用的範例公式。
如果你還不熟悉 VLOOKUP,建議先閱讀本站的 VLOOKUP 文字數字技巧教學,再回來看這篇。自學Excel系列 – 使用Vlookup函數的1個小技巧, 文字與數字之間的轉換問題(文字轉數字 數字轉文字)
內容目錄
📌 先認識 INDEX:根據位置取值
INDEX 的功能很單純:給它一個範圍和位置(第幾列、第幾欄),它就回傳那個位置的值。
語法:
=INDEX(範圍, 列號, 欄號)
舉例:假設 A1:C5 是一個資料表,要取出第3列第2欄的值:
=INDEX(A1:C5, 3, 2)
INDEX 本身用得不多,因為直接指定列號欄號並不實用——資料一變動,位置就跑掉了。真正的威力在於和 MATCH 組合使用。
📌 再認識 MATCH:找出關鍵字的位置
MATCH 的功能是:在一個範圍裡找到你指定的值,然後回傳它是第幾個位置(數字)。
語法:
=MATCH(查找值, 查找範圍, 比對類型)
比對類型幾乎都填 0,代表完全符合(跟 VLOOKUP 的 FALSE 一樣)。
舉例:在 A1:A10 裡找「陳大文」在第幾列:
=MATCH(“陳大文”, A1:A10, 0)
如果「陳大文」在 A3,MATCH 就回傳 3。這個數字,剛好可以塞進 INDEX 的列號位置。
備註:幾乎每次都有人會問,為什麼從你的公式直接copy and paste都有error,除非真的是我打錯字,不然幾乎99.99%都是”陳大文”,外面的雙引號問題,我在電腦裡面明明輸入的是 “陳大文” ,外面看到的卻是這個,這是格式問題,各位讀者記得要改一下。


📌 組合起來:INDEX + MATCH 查詢
把 MATCH 的結果直接放進 INDEX 的列號參數,就完成了組合:
=INDEX(回傳範圍, MATCH(查找值, 查找範圍, 0))
用實際例子說明。假設資料表如下:
| A欄:員工編號 | B欄:姓名 | C欄:部門 | D欄:薪資 |
| E001 | 陳大文 | 行銷部 | 45,000 |
| E002 | 李小明 | 工程部 | 55,000 |
| E003 | 王美玲 | 人事部 | 42,000 |
要查出員工編號 E002 的薪資:
=INDEX(D2:D4, MATCH(“E002”, A2:A4, 0))
執行邏輯:
- MATCH(“E002”, A2:A4, 0) → 找到 E002 在第 2 個位置,回傳 2
- INDEX(D2:D4, 2) → 取出 D 欄第 2 個值,也就是 55,000
📌 INDEX + MATCH vs VLOOKUP:差在哪?
同樣的查詢,用 VLOOKUP 會這樣寫:
=VLOOKUP(“E002”, A2:D4, 4, FALSE)
看起來 VLOOKUP 更簡短,那為什麼還要學 INDEX + MATCH?差別在這裡:
| 比較項目 | VLOOKUP | INDEX + MATCH |
| 查詢方向 | 只能往右 | 左右上下皆可 |
| 關鍵字欄位限制 | 必須在第一欄 | 任意欄位都可以 |
| 插入欄位後是否出錯 | 會(欄號需手動修改) | 不會(動態參照範圍) |
| 公式易讀性 | 簡短直觀 | 稍長,需要理解結構 |
一般情況用 VLOOKUP 沒問題;但當資料結構複雜、或需要往左查詢時,INDEX + MATCH 是更穩健的選擇。
📌 進階用法:雙向查詢
INDEX + MATCH 還可以同時在列和欄兩個方向查詢,VLOOKUP 完全做不到這點。假設你有一個各地區各季度的銷售表,想查出「香港第三季」的數字:
=INDEX(B2:E5,
MATCH(“香港”, A2:A5, 0),
MATCH(“第三季”, B1:E1, 0))
邏輯拆解:
- 第一個 MATCH:在 A 欄找到「香港」是第幾列
- 第二個 MATCH:在第一列找到「第三季」是第幾欄
- INDEX:用這兩個數字定位到正確的交叉點,取出數值
📌 常見問題
Q:MATCH 找不到值會怎樣?
會回傳 #N/A 錯誤,跟 VLOOKUP 一樣。可以用 IFERROR 包住整個公式來處理:=IFERROR(INDEX(…), “查無資料”)
Q:INDEX 的範圍和 MATCH 的範圍要一樣大嗎?
不需要。INDEX 的範圍是你要回傳值的欄(例如薪資欄),MATCH 的範圍是你要查找關鍵字的欄(例如編號欄),兩者分開指定,這正是 INDEX + MATCH 比 VLOOKUP 靈活的原因。
Q:Excel 新版本有 XLOOKUP 了,還需要學 INDEX + MATCH 嗎?
如果你用的是 Microsoft 365 或 Excel 2021 以上版本,XLOOKUP 確實更簡單。但很多公司環境仍在使用較舊版本,而且理解 INDEX + MATCH 的邏輯對學習其他函數組合也有幫助,值得掌握。
📌 總結
INDEX + MATCH 的核心概念只有一句話:
用 MATCH 找位置,用 INDEX 取值。
一開始覺得複雜是正常的,多寫幾次之後就會變成直覺。建議先用簡單的單向查詢練習,熟悉之後再試雙向查詢。
想了解更多 Excel 函數的應用,可以參考本站的 Excel 函數完整教學,包含 VLOOKUP 和 OFFSET 的詳細說明。
一個強大的Excel函數OFFSET,動態選取資料範圍一個強大的Excel函數OFFSET,動態選取資料範圍
Excel強大的組合函數練習,資料庫關鍵字搜索,Address + Match + Index + Find 組合拳