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! 錯誤。