【EXCEL教學】5分鐘搞懂INDEX用法與結合MATCH進階應用

INDEX 是 EXCEL 中30個必學函數之一,用於根據輸入的欄列號碼回傳範圍中的值。相較於 VLOOKUP 等其他查找類函數,INDEX 能夠更靈活的查找特定資料,尤其是在處理大量資料時更為方便。

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

那麼我們就開始吧!

INDEX 函數用法

根據 EXCEL 提供的函數解釋,INDEX 其實有 2 種方式可以輸入:

但其實兩個輸入方式都可以根據輸入的欄列號碼回傳範圍中的值,差別在於「單範圍(上)」與「多範圍(下)」

單範圍 INDEX 函數

我們就先從最常用的單範圍 INDEX 開始說明:

=INDEX ( array , row_num , [column_num] )

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

使用範例:利用 INDEX 函數回傳範圍中「第 4 列第 3 欄」的資料:

=INDEX ( A2:C6 , 4 , 3 )

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

另外,如果欄列其中一個引數設定為 0,則只會回傳該列或該欄。

使用範例:利用 INDEX 函數回傳範圍中的第 1 欄:

=INDEX ( A2:C6 , 0 , 1 )

使用範例:利用 INDEX 函數回傳範圍中的第 1 列:

=INDEX ( A2:C6 , 1 , 0 )


多範圍 INDEX 函數

接著,說明使用頻率較低的多範圍 INDEX:

=INDEX ( reference , row_num , [column_num] , [area_num] )

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

使用範例:利用 INDEX 函數回傳第 2 個範圍中「第 2 列第 3 欄」的資料:

=INDEX ( (A2:C4,A6:C7) , 2 , 3 , 2 )

引數名稱解釋範例
reference資料範圍(A2:C4,A6:C7),多範圍需用括弧與逗號隔開
row_num回傳第幾列(垂直往下數)2
[column_num]回傳第幾欄(水平往右數)3
[area_num]第幾個範圍2,也就是資料範圍中輸入的第 2 個範圍 A6:C7

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

INDEX 函數真正強大的原因,在於它跟 MATCH 函數結合,可以達到 VLOOKUP 查找資料的效果,甚至比 VLOOKUP 還要好用。

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

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

直式資料範例

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

因此,我們需要先來了解 MATCH 函數的用法:

=MATCH ( lookup_value , lookup_array , [match_type] )

引數名稱解釋
lookup_value查找資料名稱
lookup_array查找範圍
[match_type]查找方式(可以輸入 0 或 1,本例只示範完全符合「0」)

使用範例:利用 MATCH 函數找出「柯佳瑩」位於資料的第幾列:

=MATCH ( E2 , A2:A6 , 0 )

引數名稱解釋範例
lookup_value查找資料名稱E2(柯佳瑩)
lookup_array查找範圍A2:A6
[match_type]查找方式(可以輸入 0 或 1,本例只示範完全符合「0」)0(完全符合)

MATCH 函數回傳 3,也就是我們要查找的資料位於範圍中的第 3 列,而這個 MATCH 函數,就可以放入 INDEX 函數的第 2 個引數中。

使用範例:利用 INDEX+MATCH 函數回傳「柯佳瑩」的英文分數:

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

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

橫式資料範例

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

先利用 MATCH 函數找出「柯佳瑩」在資料中的第幾欄:

=MATCH ( B6 , B1:F1 , 0 )

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

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


INDEX 常見錯誤

  • #NAME?:通常是由於函數名稱拼寫錯誤造成的(如將 INDEX 打錯成了 NIDEX)
  • #REF!:如果欄列數字超過範圍(如範圍只有3欄,卻輸入回傳第4欄),或者引用的儲存格無效(如引用了一個已被刪除的範圍),Excel 就會顯示 #REF! 錯誤。

參考資料


發佈留言

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