Google Sheet – INDEX function


Google Sheet 中的 INDEX 函數 是一個強大且靈活的函數,依據指定的 列和欄從範圍中傳回特定儲存格的內容。它是處理資料表中精確搜尋的基礎。


INDEX 函數語法

=INDEX(範圍, 列號(Row), [欄號(Column)])

參數說明

1. 範圍

• 要搜尋的資料範圍,可以是單欄(Single Column)、單列(Single Row),或多欄多列(Multi-Column Multi-Row)的範圍。

• 例如:A1:C10。

2. 列號(Row):

• 指定要傳回範圍內的第幾列。

• 列號從 1 開始計算。

3. [欄號](Column)(選填):

• 當範圍是多欄時,指定要傳回第幾欄的值。

• 如果未提供,預設為 1(傳回第一欄)。

基本範例

範例 1:單欄範圍

=INDEX(A1:A10, 3)

範圍:A1:A10 ( A欄 )

列號:3

結果:輸出 A3儲存格內的值。A3為A欄第3列。


範例 2:多欄範圍

=INDEX(A1:C10, 4, 2)

範圍:A1:C10 (A, B, C 三欄 )

• 列:4

欄號:2

結果:輸出範圍中第 4 列、第 2 欄的值(即 B4)。


範例 3:整列資料的查詢

=INDEX(A1:C10, 5, )

範圍:A1:C10

列號:5

欄號:省略 ( = 第1欄 )

結果:傳回範圍中第 5 列的第一欄值(即 A5)。

範例 4:結合 MATCH 函數

用 INDEX 和 MATCH 搜尋特定值

=INDEX(A1:C10, MATCH(100, B1:B10, 0), 1)

MATCH 函數:在 B1:B10 找尋數值 100,傳回它所在的列號。

INDEX 函數:從 A1:C10 的第一欄取得對應值,列號為MATCH函數傳回的值。

作用

• 假設 B5 是 100,A5 是 產品名稱,結果會傳回 A5 的值。

範例 5:傳回整列或整欄

傳回指定列所有的值

=INDEX(A1:C10, 3)


執行結果:傳回範圍內第 3 列所有的值,傳回A3、B3、C3儲存格的值。


傳回指定欄所有的值

=INDEX(A1:C10, ,2)

執行結果:傳回範圍內第 2 欄所有的值,傳回 B1 至B10儲存格的值。

範例 6:動態範圍選擇

假如您想要取得某個動態範圍最後一列的值:

=INDEX(A1:C10, 3, COLUMNS(A1:C10))

COLUMNS(A1:C10):它的功能是計算範圍的總欄數,會得出3。

COLUMNS(B1:C10):它的功能是計算範圍的總欄數,會得出2。

• 執行結果:整個函數的結果是傳回範圍內第 3 列最後一欄的值。

範例 7:處理錯誤輸出

使用 IFERROR 搭配 INDEX,避免找不到數據時出現錯誤:

=IFERROR(INDEX(A1:C10, 5, 3), "無數據")


如果列欄指定的值超出範圍,傳回 「無數據」 而不是錯誤。

應用技巧

1. INDEX 和 MATCH 的搭配

• INDEX 與 MATCH 組合可以取代 VLOOKUP,並解決 VLOOKUP 的方向限制。

2. 動態數據選擇

• 搭配其他函數(如 ROWS、COLUMNS),可以靈活處理動態範圍。

3. 性能優勢

• 與 VLOOKUP 相比,INDEX + MATCH 效率更高,特別是在處理大型數據表時。