在 Excel 中,MATCH 函數能回傳查詢值在範圍中的相對位置,而不是值本身。這讓它成為 INDEX+MATCH 查表組合的核心,能取代 VLOOKUP/HLOOKUP,提供更高的彈性與效能。
🔹快速摘要(語法、用途、常見場景)
用途:在範圍中尋找指定值的位置
語法:=MATCH(lookup_value, lookup_array, [match_type]) 常見場景:查找資料列號、欄號、動態定位、INDEX 搭配查表、取代 VLOOKUP/HLOOKUP
一、MATCH 函數語法與用途
=MATCH(lookup_value, lookup_array, [match_type])
- lookup_value:要查找的值(數字、文字或邏輯值)
- lookup_array:搜尋範圍(單列或單欄)
- match_type:搜尋方式
- 1(預設):找小於或等於查詢值的最大值,範圍需遞增排序
- 0:找完全相等的值,範圍可任意排序
- -1:找大於或等於查詢值的最小值,範圍需遞減排序
二、範例教學:五個基礎 + 五個進階範例
🔸基礎範例
範例一:精確查找文字位置
=MATCH("Apple",A2:A10,0)
說明:在 A2:A10 中找到 "Apple",回傳其位置。
範例二:查找數字位置(近似匹配)
=MATCH(75,A2:A10,1)
說明:在遞增排序的範圍中,找到小於或等於 75 的最大值位置。
範例三:查找遞減排序範圍
=MATCH(50,A10:A2,-1)
說明:在遞減排序範圍中,找到大於或等於 50 的最小值位置。
範例四:搭配儲存格參照
=MATCH(C1,A2:A10,0)
說明:查找 C1 的值在 A2:A10 的位置。
範例五:橫向範圍查找
=MATCH("甲",B1:G1,0)
說明:在橫向範圍 B1:G1 中找到「甲」的位置。
🔸進階範例
範例六:搭配 INDEX 查表
=INDEX(B2:B10,MATCH("Apple",A2:A10,0))
說明:先用 MATCH 找位置,再用 INDEX 回傳對應值。
範例七:動態欄號查找
=INDEX(A1:Z1,MATCH("總分",A1:Z1,0))
說明:自動定位「總分」欄位。
範例八:多條件查找(陣列公式)
=MATCH(1,(A2:A10="甲")*(B2:B10="乙"),0)
說明:同時滿足兩個條件時,回傳位置。
範例九:搭配 VLOOKUP 驗證結果
=VLOOKUP("Apple",A2:B10,2,FALSE)=INDEX(B2:B10,MATCH("Apple",A2:A10,0))
說明:比較 VLOOKUP 與 INDEX+MATCH 的結果。
範例十:搭配 XMATCH(新版 Excel)
=XMATCH("Apple",A2:A10)
說明:XMATCH 是 MATCH 的改良版,支援更多功能。
三、常見問題解答(FAQ)
Q1:MATCH 是否需要排序?
取決於 match_type。若使用 1 或 -1,範圍必須排序;若使用 0,則不需排序。
Q2:MATCH 可以回傳值嗎?
不行,它只回傳位置,需搭配 INDEX 才能取值。
Q3:MATCH 是否區分大小寫?
不區分大小寫,"Apple" 與 "apple" 視為相同。
Q4:MATCH 可以處理文字嗎?
可以,常用於定位欄位名稱或代碼。
Q5:MATCH 與 XMATCH 有何不同?
XMATCH 功能更強大,支援雙向查找、預設精確匹配與錯誤處理。
四、注意事項與錯誤排除
- 若查詢值不存在,會回傳 #N/A,建議搭配 IFERROR。
- 使用 match_type=1 或 -1 時,範圍必須正確排序,否則結果錯誤。
- MATCH 只能回傳位置,不能直接回傳值。
- 在大型資料集上,MATCH 計算速度快於 VLOOKUP。
- 若查找範圍包含重複值,MATCH 只會回傳第一個匹配的位置。
五、延伸技巧與相關函數
- 搭配 INDEX:建立完整查表邏輯,取代 VLOOKUP。
- 搭配 XMATCH:新版函數,支援更多查找模式。
- 搭配 IFERROR:處理查無資料的情況。
- 搭配 OFFSET:建立動態範圍,結合 MATCH 定位。
- 搭配 SEQUENCE/FILTER:建立動態查找表,提升彈性。
六、結語與延伸閱讀推薦
MATCH 是 Excel 中的定位工具,適合用於查找位置並搭配 INDEX 建立查表公式。若需要更強大的功能,建議使用 XMATCH 或 INDEX+MATCH。













