免費軟體與線上工具1,417影音、圖片與 PDF9153C 開箱評測895生活、旅遊與遊戲798iPhone 與 Mac548LINE 與社群533Google 服務467Windows 與電腦455Office 教學420Android 手機402網路新知372AI 工具126
Office 教學

Excel INDEX 函數教學:根據列號與欄號傳回指定範圍的資料

INDEX 函數的作用是從指定的儲存格範圍中,依照給定的列號和欄號,提取並傳回該位置的資料。它是 Excel 中進行進階資料查詢的核心函數之一。

Excel INDEX 函數語法

=INDEX(陣列, 列號, [欄號])
參數必填說明
陣列是要提取資料的儲存格範圍或陣列常數。
列號是指定要從陣列中傳回哪一列的資料。如果省略,則必須指定欄號。
欄號選填指定要從陣列中傳回哪一欄的資料。如果省略,則必須指定列號。

回傳:傳回指定列與欄交叉處的儲存格內容或參照。

適用版本:Excel 2007 以上、Microsoft 365

INDEX 函數範例

範例 1:基本單欄資料提取

從員工名單中找出第 3 位的姓名。

員工編號姓名
E001王小明
E002陳怡君
E003林家豪
E004張雅婷

在 D2 輸入公式:

=INDEX(B2:B5, 3)

結果:林家豪。範圍 B2:B5 只有一欄,公式指定提取第 3 列的資料,因此傳回該範圍中第 3 個儲存格的值「林家豪」。

範例 2:二維表格交叉查詢

根據指定的列與欄,找出特定業務員在第二季的業績。

業務員第一季第二季第三季
王小明150001800016000
陳怡君210002300025000
林家豪120001400013000

在 F2 輸入公式:

=INDEX(B2:D4, 2, 2)

結果:23000。範圍 B2:D4 包含所有業績數字,公式指定傳回第 2 列與第 2 欄交叉處的數值,結果為陳怡君第二季的業績 23000。

範例 3:搭配 MATCH 函數動態查詢

透過員工姓名反向查詢對應的員工編號(向左查詢)。

員工編號部門姓名
A101行銷部王小明
A102業務部陳怡君
A103人資部林家豪

在 E2 輸入公式:

=INDEX(A2:A4, MATCH("陳怡君", C2:C4, 0))

結果:A102。先用 MATCH 找出「陳怡君」在 C2:C4 中的相對位置為 2,再由 INDEX 從 A2:A4 範圍中提取第 2 列的員工編號。

使用 INDEX 的技巧與注意事項

  • 如果將列號或欄號設為 0,INDEX 會傳回整欄或整列的陣列。這在搭配 SUM 或 AVERAGE 等彙總函數時非常有用。
  • INDEX 傳回的是儲存格的「參照」而非單純的值,因此可以放在冒號兩側建立動態範圍,例如 A1:INDEX(A1:A10, 5)。
  • 雖然 XLOOKUP 已經能取代大部分 INDEX 與 MATCH 的組合,但在處理舊版 Excel 檔案或需要動態參照時,INDEX 依然不可或缺。

INDEX 常見錯誤與解決方法

錯誤原因解決方法
#REF!指定的列號或欄號超出了陣列的實際範圍。例如範圍只有 5 列,卻要求傳回第 6 列。檢查公式中的列號與欄號數值,確保它們小於或等於指定範圍的總列數與總欄數。
#VALUE!列號或欄號使用了非數值的文字,或者引數的格式不正確。確保輸入的列號與欄號為大於 0 的整數,若使用其他函數動態產生,需確認其傳回值為數字。

Google 試算表可以用 INDEX 嗎?

Google 試算表完全支援 INDEX 函數,語法和用法與 Excel 相同,且同樣能與 MATCH 函數完美搭配進行進階查詢。

下載 INDEX 範例檔

上面的範例都整理在這個檔案裡,每個範例一個工作表,黃色格子是公式,可以直接改資料看結果變化:INDEX 範例.xlsx(範例公式都在試算表軟體實際計算過)。

常見問題

INDEX 和 VLOOKUP 有什麼不同?

VLOOKUP 只能由左向右查詢,且查閱值必須在範圍的第一欄。INDEX 搭配 MATCH 則不受此限制,可以進行向左查詢、多條件查詢,在處理大量資料時通常更具彈性。

為什麼我的 INDEX 函數會出現 #REF! 錯誤?

這是因為指定的列號或欄號超出了你設定的陣列範圍。例如你的資料範圍只有 10 列,但列號參數卻輸入 11,就會導致找不到對應儲存格而報錯。

INDEX 函數的列號和欄號可以省略嗎?

可以省略其中一個。如果陣列只有一欄,可以省略欄號;如果陣列只有一列,可以省略列號。若兩者皆省略或設為 0,則會傳回整個陣列的範圍參照。

相關函數

這篇收錄在「Excel 函數字典」。