【EXCEL | MATCH用法教學】5分鐘快速搞懂 MATCH 函數

MATCH 是 EXCEL 中30個必學函數之一,用於查找特定值在某個範圍中的位置,特別適合在需要動態查找數據位置或匹配資料時使用。

本文將會用 5 分鐘的時間,教你 MATCH 函數的基本用法結合 INDEX 函數的進階應用,以及常見錯誤提示等。

那麼我們就開始吧!

MATCH 函數用法

MATCH 函數用於查找特定值在某個範圍中的位置,以下是 MACTH 的函數說明:

=MACTH ( lookup_value , lookup_array , [match_type] )

引數名稱解釋
lookup_value查找資料名稱
lookup_array查找資料範圍
[match_type]資料比對方式(選填,可輸入 0 / 1 / -1)

使用範例:利用 MATCH 函數回傳「蔡璇甫」位於資料範圍中的第幾列:

=MATCH ( E2 , A2:A6 , 0 )

引數名稱解釋範例
lookup_value查找資料名稱E2(蔡璇甫)
lookup_array查找資料範圍A2:A6
[match_type]資料比對方式(選填,可輸入 0 / 1 / -1)0(完全符合)

接下來,我們來看看 MATCH 函數 3 個引數的詳細規則與限制。


1. lookup_value(查找資料名稱)

第一個引數要數入的是「查找資料名稱」,資料名稱可以用「文字」的方式輸入:

=MATCH ( “蔡璇甫”

也可以用「參照儲存格」的方式輸入:

=MATCH ( E2


2. lookup_array(查找資料範圍)

第二個引數要數入的是「查找資料範圍」,資料範圍只能拉一欄或一列,如果超過,則會顯示 #N/A! 錯誤提示:

=MATCH ( E2 , A2:C6 , 0 )

當資料是垂直的,我們範圍就拉一欄:

=MATCH ( E2 , A2:A6

當資料是橫向的,我們範圍就拉一列:

=MATCH ( B6 , B1:F1


3. [match_type](資料比對方式)

MATCH 函數的第三個引數總共有 3 種資料比對方式可以選擇,以下是 3 種資料比對方式的解釋:

[match_type]比對方式解釋
0完全符合尋找第一個完全等於資料的值
1部分符合尋找小於或等於查找資料的最大值(需升序排序)
-1部分符合尋找大於或等於查找資料的最小值(需降序排序)

0:尋找第一個完全等於資料的值

0 是 MATCH 最常用的比對方式,用於尋找資料中第一個完全等於查找資料的值。

延續前面的例子,我們希望查找的是完全等於「蔡璇甫」的資料

=MATCH ( E2 , A2:A6 , 0 )

MATCH 函數就會回傳「2」,代表「蔡璇甫」是在資料中的第 2 列。


1:尋找小於或等於查找資料的最大值(需升序排序)

在第三個引數中輸入「1」,MATCH 函數會找尋範圍中最接近查找資料,但又不比查找資料大的值

使用範例:利用 MATCH 函數找出國文分數最接近 60 分,但沒有超過 60 分的人在第幾列:

=MATCH ( 60 , B2:B6 , 1 )

MATCH 函數就會回傳「3」,代表最接近 60 分,但沒有超過 60 分的分數(也就是 52)在範圍中的第 3 列。

注意!第三個引數輸入「1」時,資料一定要按升序排序(越來越大),否則回傳的值會跟預期的結果不同喔!


-1:尋找大於或等於查找資料的最小值(需降序排序)

在第三個引數中輸入「-1」,MATCH 函數會找尋範圍中最接近查找資料,但又不比查找資料小的值

使用範例:利用 MATCH 函數找出英文分數最接近 60 分,而且超過 60 分的人在第幾列:

=MATCH ( 60 , C2:C6 , -1 )

MATCH 函數就會回傳「4」,代表最接近 60 分,而且超過 60 分的分數(也就是 62)在範圍中的第 4 列。

注意!第三個引數輸入「-1」時,資料一定要按降序排序(越來越小),否則回傳的值會跟預期的結果不同喔!


MATCH 進階用法 – 結合 INDEX 查找資料

乍看之下,MATCH 函數好像有點「雞肋」,但是當他跟 INDEX 函數一起使用時,卻可以達到 VLOOKUP 查找資料的效果,甚至比 VLOOKUP 還要好用。

以下是 MATCH+INDEX 相較於 VLOOKUP 的優點:

  • 可以查找左邊的資料
  • 可以自由新增或刪除資料的欄列而不會出現錯誤提示
  • 運行速度較 VLOOKUP 快(在資料有上萬筆時這個優點就會很明顯)

直式資料範例

假設我們想要查找「蔡璇甫」的英文成績,可以先利用 MATCH 查找到「蔡璇甫」位於資料第幾列,再透過 INDEX 回傳該列英文欄的資料

因此,我們先利用 MATCH 函數找出「蔡璇甫」在資料中的第幾列:

=MATCH ( E2 , A2:A6 , 0 )

查找出「蔡璇甫」在資料的第 4 列後,接下來我們就要利用 INDEX 函數回傳該列英文欄的資料。

以下是 INDEX 函數的說明:

=INDEX ( array , row_num , [column_num] )

引數名稱解釋
array資料範圍
row_num回傳第幾列(垂直往下數)
[column_num]回傳第幾欄(水平往右數)

剛剛 MATCH 得到的列數,便可以放進 INDEX 第 2 個引數中,並且在第 3 個引數中輸入回傳該列的第 3 欄:

=INDEX ( A2:C6 , MATCH(E2,A2:A6,0) , 3 )

先透過 MATCH 查找到「蔡璇甫」位於資料第幾列,再利用 INDEX 回傳該列第 3 欄的資料,就可以輕鬆達到 VLOOKUP 查找資料的效果拉!

橫式資料範例

如果資料是橫的,也同樣可以使用 MATCH+INDEX 查找資料。

先利用 MATCH 函數找出「蔡璇甫」在資料中的第幾欄:

=MATCH ( B6 , B1:F1 , 0 )

抓出第幾欄之後,就可以放進 INDEX 的第三個引數中,並設定回傳英文列:

=INDEX ( B1:F3 , 3 , MATCH(B6,B1:F1,0) )


MATCH 常見錯誤

  • #N/A:當 MATCH 無法找到匹配的資料時,或者查找範圍超過一欄或一列,就會返回 #N/A 錯誤。
  • #NAME?:通常是由於函數名稱拼寫錯誤造成的(如將 MATCH 打錯成了 MATHC)
  • #REF!:如果引用的儲存格無效(如引用了一個已被刪除的範圍),Excel 就會顯示 #REF! 錯誤。

參考資料


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

點擊打開目錄