INDEX 函數

INDEX 函數會傳回表格或範圍內的某個值或值的參照。

您的瀏覽器不支援視訊。請安裝 Microsoft Silverlight、Adobe Flash Player 或 Internet Explorer 9。

有兩種方法可使用 INDEX 函數︰

  • 如果您想要傳回指定儲存格或儲存格陣列的值,請參閱陣列形式

  • 如果您想要傳回指定儲存格的參照,請參閱參照形式

陣列形式

描述

會傳回根據欄列號索引所選取之表格或陣列中一個元素的值。

當 INDEX 的第一個引數是常數陣列時使用陣列形式。

語法

INDEX(array, row_num, [column_num])

INDEX 函數語法具有下列引數。

  • Array    必要。這是儲存格範圍或常數陣列。

    • 如果 array 只包含單列或單欄,則相對應的 Row_num 或 Column_num 引數是選擇性的。

    • 如果 array 含有多列多欄,卻只使用 Row_num 或 Column_num,則 INDEX 會傳回陣列中整列或整欄的陣列。

  • Row_num    必要。會選取陣列中傳回值的列。如果省略 Row_num,就必須使用 Column_num。

  • Column_num    選用。會選取陣列中傳回值的欄。如果省略 Column_num,就必須使用 Row_num。

註解

  • 如果同時使用了 Row_num 與 Column_num 引數,INDEX 會傳回 Row_num 與 Column_num 交集處儲存格中的值。

  • 如果把 Row_num (或 Column_num) 設定為 0 (零),INDEX 會分別傳回整列或整欄的數值陣列。若要把所傳回的值當做陣列使用,請在列的水平儲存格範圍以及在欄的垂直儲存格範圍中,以陣列公式的方式輸入 INDEX 函數。若要輸入陣列公式,請按 CTRL+SHIFT+ENTER。

    附註: 在 Excel Web App 中無法建立陣列公式。

  • Row_num 及 Column_num 必須對應到陣列中的儲存格,否則,INDEX 會傳回 #REF! 的錯誤值。

範例

範例 1

這些範例使用 INDEX 函數來尋找列與欄交集處的儲存格中的值。

請在下列表格中複製範例資料,再將之貼到新 Excel 工作表中的儲存格 A1。若要讓公式顯示結果,請選取公式,按 F2,然後再按 Enter。如有需要,您可以調整欄寬來查看所有資料。

資料

資料

蘋果

檸檬

香蕉

梨子

公式

描述

結果

=INDEX(A2:B3,2,2)

在 A2:B3 範圍內,第二列及第二欄交叉點的值。

梨子

=INDEX(A2:B3,2,1)

在 A2:B3 範圍內,第二列及第一欄交叉點的值。

香蕉

範例 2

此範例在陣列公式中使用 INDEX 函數,來尋找在 2x2 陣列中指定的兩個儲存格中的值。

在此範例中,選取任兩個上下的儲存格,例如 A1:A2,在第一個儲存格中貼上公式 =INDEX({1,2;3,4},0,2),再按 CTRL+SHIFT+ENTER。以陣列公式的形式輸入時,Excel 會自動在第二個儲存格貼上公式。

公式

描述

結果

=INDEX({1,2;3,4},0,2)

陣列第一列、第二欄內的值。陣列的第一列含有 1 和 2,第二列含有 3 和 4。

2

上述陣列中第二列、第二欄內的值。

4

附註: 這是陣列公式,必須按 CTRL+SHIFT+ENTER 來輸入。Excel 會自動以括號 {} 括住公式。如果您嘗試自行輸入,Excel 會將公式顯示為文字。如果您不使用 CTRL+SHIFT+ENTER,則公式會傳回 #VALUE! 錯誤。

頁面頂端

參照形式

描述

傳回根據所指定欄列交集處的儲存格之參照。如果參照是由幾個非相鄰的選取範圍所組成,您可以挑選某一個範圍做為處理標的。

語法

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

INDEX 函數語法具有下列引數。

  • Reference    必要。這是一個或多個儲存格範圍的參照。

    • 如果輸入非相鄰的選取範圍做為 reference,則必須使用括號括住 reference。

    • 如果參照裡的每一個區域均為單列或單欄,則單列可省略 Row_num,單欄可省略 Column_num 引數。例如,對於單一列的參照而言,請使用 INDEX(reference,,column_num)。

  • Row_num    必要。這是參照中要傳回參照的列數。

  • Column_num    選用。這是參照中要傳回參照的欄數。

  • Area_num    選用。在參照中選取範圍以傳回 Row_num 與 Column_num 的交集。第一個已選取或輸入的區域會編碼為 1,第二個則編碼為 2,以此類推。如果 Area_num 已省略,INDEX 會使用區域 1。 列於此處的區域都必須位於同一張工作表上。 如果您指定區域的所在工作表與其他區域不同,就會導致 #VALUE! 錯誤。 如果您需要使用位於不同於其他工作表的範圍,建議您使用 INDEX 函數的陣列形式,然後使用其他函數來計算組成陣列的範圍。 比方說,您可以利用 CHOOSE 函數來計算要使用哪段範圍。

例如,假設 Reference 是指儲存格 (A1:B4,D1:E4,G1:H4),則 Area_num 1 即為範圍 A1:B4,Area_num 2 即為範圍 D1:E4,而 Area_num 3 即為範圍 G1:H4。

註解

  • 在 Reference 及 Area_num 選取特定的範圍之後,Row_num 與 Column_num 才能選取特定的儲存格:Row_num 1 是指範圍中的第一列,column_num 1 是指範圍中的第一欄,依此類推。INDEX 所傳回的參照是 Row_num 與 Column_num 的交集處。

  • 如果將 Row_num 或 Column_num 設為 0 (零),INDEX 會分別傳回整欄或整列的參照。

  • Row_num、Column_num 及 Area_num 必須對應到參照中的儲存格,否則 INDEX 會傳回 #REF! 的錯誤值。如果省略 Row_num 與 Column_num,INDEX 會傳回參照中由 Area_num 指定的區域。

  • INDEX 函數所傳回的結果是個可供其他公式運用的參照。至於 INDEX 所傳回的值是以參照或值的方式使用,則要視公式而定。例如:公式 CELL("width",INDEX(A1:B2,1,2)) 相當於 CELL("width",B1)。CELL 函數將 INDEX 的傳回值當做儲存格參照來使用。而公式 2*INDEX(A1:B2,1,2) 則將 INDEX 的傳回值轉變為儲存格 B1 的數字。

附註: Excel Web App 未提供 CELL 函數。

範例

請在下列表格中複製範例資料,再將之貼到新 Excel 工作表中的儲存格 A1。若要讓公式顯示結果,請選取公式,按 F2,然後再按 Enter。如有需要,您可以調整欄寬來查看所有資料。

水果

價格

計數

蘋果

$0.69

40

香蕉

$0.34

38

檸檬

$0.55

15

柑橘

$0.25

25

梨子

$0.59

40

杏仁

$2.80

10

腰果

$3.55

16

花生

$1.25

20

胡桃

$1.75

12

公式

描述

結果

=INDEX(A2:C6, 2, 3)

A2:C6 範圍中第二列與第三欄的交叉點,也就是儲存格 C3 的內容。

38

=INDEX((A1:C6, A8:C11), 2, 2, 2)

A8:C11 第二區域中第二列與第二欄的交叉點,也就是儲存格 B9 的內容。

1.25

=SUM(INDEX(A1:C11, 0, 3, 1))

A1:C11 範圍之第一區域中第三欄的總和,也就是 C1:C11 的總和。

216

=SUM(B2:INDEX(A2:C6, 5, 2))

B2 到 A2:A6 範圍中第五列和第二欄交差點的總和,也就是 B2:B6 的總和。

2.42

頁面頂端

請參閱

VLOOKUP 函數

MATCH 函數

INDIRECT 函數

陣列公式的指導方針和範例

查閱與參照函數 (參照)

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×