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 效率更高,特別是在處理大型數據表時。