首頁 / 公式 / Excel INDEX MATCH 查表
查詢 Excel + Google Sheets

Excel INDEX MATCH 查表

MATCH 找出某個值在清單裡的位置,INDEX 依位置從範圍取值。把 MATCH 放進 INDEX 裡,就得到一個不在乎資料方向的查表公式——金鑰在右邊時,VLOOKUP 給不了這個答案。

INDEX MATCH 的語法

=INDEX(回傳範圍, MATCH(要找的值, 搜尋範圍, 0))

這是把兩個函數疊在一起用:MATCH 回報「第幾格」,INDEX 回報那個位置上的值。整個組合才是一次查表,單獨看任何一半都不成立。

1 INDEX 第 1 個參數:回傳範圍
必填

你要取出的值所在的那一欄(或那一列),例如 C2:C5。它不必包含鍵欄,在左邊或右邊都可以。

2 MATCH 的 3 個參數
必填

要找的值、要搜尋的範圍(鍵欄)、以及比對方式。比對方式一定要寫 0(完全相符);省略會變成 1(近似相符),排序一亂就回傳錯的列。

查表演例

金鑰在左邊時,用 INDEX MATCH 取出產品單價。

產品代碼品名單價
SKU-101鍵盤49.00
SKU-102滑鼠19.50
SKU-103螢幕24.99
SKU-104擴充座89.00
=INDEX(C2:C5, MATCH("SKU-103", A2:A5, 0))

MATCH 回傳 3(SKU-103 在 A2:A5 的第 3 列),INDEX 再取 C2:C5 的第 3 格,得到 24.99。回傳範圍一次指名,單價在左邊還是右邊都不影響結果。

同時用列與欄定位(二維查表)

要同時用列標題與欄標題定位時,就放兩個 MATCH:第一個找列,第二個找欄。

業務Q1Q2Q3
小王120150180
小李90110140
小陳200180210
=INDEX(B2:D4, MATCH("小李", A2:A4, 0), MATCH("Q3", B1:D1, 0))

列的 MATCH 回傳 2(小李)、欄的 MATCH 回傳 3(Q3),於是取 B2:D4 的第 2 列第 3 欄,得到 140。因為列與欄分開找,把表換個順序也不會壞。

與 VLOOKUP 的比較

同一個查表用 VLOOKUP 寫,要指定「從鍵欄往右算第幾欄」。差別就在這裡——也是插入欄位時會不會出事的關鍵。

面向VLOOKUPINDEX MATCH
搜尋方向只能往鍵的右邊左右皆可
插入欄位欄號跟著偏,悄悄算錯指名範圍,不受影響
回傳欄的寫法從鍵欄數起的欄號直接指名回傳範圍
可讀性短較長,但意圖明確
舊版 Excel可用可用(XLOOKUP 不可用)

欄位多、或這張表還有人持續加欄時,INDEX MATCH 比較安全。欄少、只查一次,VLOOKUP 的短就是優點。若環境支援 XLOOKUP,能一個式子同時寫回傳值與找不到時的預設值,XLOOKUP 最短。

INDEX MATCH 最常踩的 4 個陷阱

1. 忘了寫 MATCH 的比對方式

只寫 MATCH(要找的值, 範圍) 時,比對方式是 1(近似相符),範圍沒有遞增排序就會回傳不相干的列。永遠把 0 寫上去。

2. INDEX 與 MATCH 的範圍列數不一致

INDEX 用 C2:C5 卻在 A2:A6 裡找,位置就會整體偏移一格。兩個範圍要同列數、同起始列;若想用整張表,就把 INDEX 的行號補上偏移。

3. 要找的值與鍵的型別不同

一邊是文字 "103"、另一邊是數字 103,就對不上。這是匯入 CSV 之後最常見的症狀,先統一一邊的型別(VALUE 或 TEXT)再查。

4. 陣列多條件只按 Enter

MATCH(1, (A2:A6="北區")*(B2:B6="Q3"), 0) 會產生陣列。舊版 Excel 必須按 Ctrl+Shift+Enter,只按 Enter 會得到 #N/A 或 1。

Excel 與 Google Sheets

Microsoft Excel (365 / Desktop)

Excel 的 INDEX 有 3 個參數(範圍、列、欄),MATCH 也有 3 個(要找的值、範圍、比對方式)。Excel 365 的陣列多條件可直接按 Enter。INDEX 省略列或欄時,會回傳整欄或整列。

Google Sheets

Google Sheets 語法相同,範圍寫法也是 A2:A5,因此 Excel 寫好的公式幾乎可以原樣貼上。

INDEX MATCH 實戰:取出鍵左邊的值

在下方鎖定迷你表裡,用 INDEX 加 MATCH 完成查表。這正是 VLOOKUP 到不了的方向。

開啟獨立練習題頁
題目說明
提示 0/4
官方解法 2
–
測試案例
1
2
3
重設
提交
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
正在載入互動式試算表...
正在準備儲存格資料與公式求解引擎
○ 就緒 請在反白的目標儲存格輸入公式,然後點「提交」。

INDEX MATCH 練習

用 INDEX 與 MATCH 從鍵的左側或部分文字取出值。公式要隨每一列變化,不能寫死。

常見問題

INDEX MATCH 和 VLOOKUP 差在哪裡?

VLOOKUP 只能往金鑰右邊取值,而且公式裡存的是欄號,插入一欄就默默算錯。INDEX MATCH 直接指名回傳範圍、另外找位置,所以左右都能查,插入欄位也不會壞。

有 XLOOKUP 了還需要學 INDEX MATCH 嗎?

需要。Excel 2019 與更舊版本沒有 XLOOKUP,和同事共用檔案、或在 Google Sheets 協作時也常遇到。面試仍會問,財務模板也大量使用這個寫法。

INDEX MATCH 怎麼做多條件查詢?

可以串接索引鍵(=INDEX(C2:C6, MATCH(A2&B2, D2:D6&E2:E6, 0))),或用陣列寫法 =INDEX(C2:C6, MATCH(1, (A2:A6="北區")*(B2:B6="Q3"), 0))。舊版 Excel 的陣列寫法要按 Ctrl+Shift+Enter,Excel 365 與 Sheets 不用。