INDEX 関数はテーブルまたはセル範囲にある値、あるいはその値のセル参照を返します。
INDEX 関数には、次の 2 つの使い方があります。
配列形式
説明
行番号と列番号で指定されるテーブルまたは配列の要素の値を返します。
INDEX 関数の 1 番目の引数が配列定数のときは、配列形式を使います。
書式
INDEX(配列, 行番号, [列番号])
INDEX 関数の配列形式には、次の引数があります。
-
配列 必須。 セル範囲または配列定数を指定します。
-
配列が 1 行または 1 列のみの場合、それぞれ行番号または列番号を省略することができます。
-
配列が複数行および複数列で構成され、行番号または列番号のどちらか一方しか指定されていない場合、配列の中にある行または列全体の配列が返されます。
-
-
行番号 列番号が存在する場合を除き、必須。 配列の中にあり、値を返す行を数値で指定します。 行番号を省略する場合は、列番号が必要になります。
-
列番号 任意。 配列の中にあり、値を返す列を数値で指定します。 列番号を省略する場合は、行番号が必要になります。
解説
-
行番号と列番号の両方の引数を使用している場合は、行番号と列番号の共通部分にあるセルの値が INDEX によって返されます。
-
行番号と列番号には、配列内のセルを指定する必要があります。配列の範囲外のセルを指定すると、INDEX は #REF! を返します。 エラーが表示されます。
-
行番号または列番号を 0 (ゼロ) に設定すると、列全体または行全体の値の配列がそれぞれ INDEX によって返されます。 配列として返される値を使用するには、INDEX 関数を配列数式として入力します。
注: 現在のバージョンの Microsoft 365 を使用している場合は、出力範囲の左上のセルに式を入力し [Enter] キーを押して、式を動的な配列の数式として確定することができます。 それ以外の場合、最初に出力範囲を選択し、出力範囲の左上のセルに数式を入力し、Ctrl + Shift + Enter キーを押して確定し、従来の配列数式として数式を入力する必要があります。 Excel によって、数式の先頭と末尾に中かっこが挿入されます。 配列数式の詳細については、「配列数式のガイドラインと例」を参照してください。
使用例
使用例 1
これらの例では、INDEX 関数を使用して、行と列の交差する位置にあるセル内の値を検索します。
次の表のサンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 数式を選択して、F2 キーを押し、さらに Enter キーを押すと、結果が表示されます。
データ |
データ |
|
---|---|---|
リンゴ |
レモン |
|
バナナ |
ナシ |
|
数式 |
説明 |
結果 |
=INDEX(A2:B3,2,2) |
セル範囲 A2:B3 の 2 行目と 2 列目で交差するセル B3 の値を取り出します。 |
ナシ |
=INDEX(A2:B3,2,1) |
セル範囲 A2:B3 の 2 行目と 1 列目で交差するセル A3 の値を取り出します。 |
バナナ |
使用例 2
この例では、配列数式に INDEX 関数を使用して、2 x 2 の配列で指定された 2 つのセルの値を検索します。
注: 現在のバージョンの Microsoft 365 を使用している場合は、出力範囲の左上のセルに式を入力し [Enter] キーを押して、式を動的な配列の数式として確定することができます。 それ以外の場合、最初に出力範囲を選択し、出力範囲の左上のセルに数式を入力し、Ctrl + Shift + Enter キーを押して確定し、従来の配列数式として数式を入力する必要があります。 Excel によって、数式の先頭と末尾に中かっこが挿入されます。 配列数式の詳細については、「配列数式のガイドラインと例」を参照してください。
数式 |
説明 |
結果 |
---|---|---|
=INDEX({1,2;3,4},0,2) |
配列の中の最初の行の 2 列目の値を取り出します。 配列の中で、最初の行に 1、2 と、2 番目の行に 3、4 があります。 |
2 |
配列の中の 2 行目の 2 列目の値を取り出します (上記の配列と同じ)。 |
4 |
|
セル範囲形式
説明
指定された行と列が交差する位置にあるセルの参照を返します。 隣接しない複数のセル範囲を指定した場合、その中から任意の領域を選択できます。
書式
INDEX(参照, 行番号, [列番号], [領域番号])
INDEX 関数の参照形式には、次の引数があります。
-
reference 必須。 1 つまたは複数のセルの参照を指定します。
-
隣接しない範囲を参照として入力する場合は、参照をかっこで囲みます。
-
参照の中の各領域に行または列が 1 つしか含まれていない場合は、行番号または列番号の引数はそれぞれ省略することができます。 たとえば、範囲が 1 行のみである場合は、INDEX(範囲,列番号) と指定できます。
-
-
行番号 必ず指定します。 範囲の中にあり、セル参照を返すセルの行位置を数値で返します。
-
列番号 任意。 範囲の中にあり、セル参照を返すセルの列位置を数値で返します。
-
領域番号 省略可能です。 行番号と列番号の共通部分を返す参照の範囲を選択します。 最初に選択または入力された領域の領域番号が 1 となり、以下、2 番目の領域は 2 というように続きます。 領域番号を省略すると、INDEX は 1 の領域を使用します。 ここで表示される領域はすべて 1 つのシート上に置かれている必要があります。 他の領域と同じシート上に存在しない領域を指定した場合、#VALUE! エラーが発生します。 相互に異なるシート上に置かれている範囲を使用する必要がある場合は、INDEX 関数の配列形式を使用し、別の関数を使用して配列を形成する範囲を計算することをお勧めします。 たとえば、CHOOSE 関数を使用して、どの範囲が使用されるかを計算することができます。
たとえば、範囲として (A1:B4,D1:E4,G1:H4) のような複数選択領域が指定されている場合、領域番号の 1 は A1:B4、領域番号の 2 は D1:E4、領域番号の 3 は G1:H4 となります。
解説
-
参照と領域番号によって特定の範囲が選択された後、行番号と列番号によって特定のセルが選択されます。行番号 1 が範囲内の最初の行、列番号 1 が最初の列というように続きます。 INDEX によって返される参照は、行番号と列番号の共通部分です。
-
行番号または列番号を 0 (ゼロ) に設定すると、列全体または行全体の参照がそれぞれ INDEX によって返されます。
-
行番号、列番号と領域番号には、配列内のセルを指定する必要があります。配列の範囲外のセルを指定すると、#REF! を返します。 エラーが表示されます。 行番号と列番号を省略すると、領域番号で指定される参照の領域が INDEX によって返されます。
-
INDEX 関数の計算結果はセル参照となり、他の数式はこれを通常のセル参照と同様に扱います。 INDEX 関数の計算結果は、セル参照または値として使用されます。 たとえば、CELL("width",INDEX(A1:B2,1,2)) という数式は、CELL("width",B1) と同じ結果になります。 これは CELL 関数が、INDEX 関数の計算結果を通常のセル参照と同じであると解釈するためです。 一方、2*INDEX(A1:B2,1,2) のような数式では、INDEX 関数の計算結果はセル B1 に入力されている数値に変換されます。
使用例
次の表のサンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 数式を選択して、F2 キーを押し、さらに Enter キーを押すと、結果が表示されます。
果物 |
価格 |
個数 |
---|---|---|
リンゴ |
¥69 |
40 |
バナナ |
¥34 |
38 |
レモン |
¥55 |
15 |
オレンジ |
¥25 |
25 |
ナシ |
¥59 |
40 |
アーモンド |
¥280 |
10 |
カシューナッツ |
¥355 |
16 |
ピーナッツ |
¥125 |
20 |
クルミ |
¥175 |
12 |
数式 |
説明 |
結果 |
=INDEX(A2:C6, 2, 3) |
セル範囲 A2:C6 の 2 行目と 3 列目で交差するセル C3 の値を取り出します。 |
38 |
=INDEX((A1:C6, A8:C11), 2, 2, 2) |
領域番号 2 のセル範囲 A8:C11 の 2 行目と 2 列目で交差するセル B9 の値を取り出します。 |
1.25 |
=SUM(INDEX(A1:C11, 0, 3, 1)) |
セル範囲 A1:C11 の領域番号 1 にある 3 列目のセル範囲 C1:C11 の合計を求めます。 |
216 |
=SUM(B2:INDEX(A2:C6, 5, 2)) |
セル B2 と、セル範囲 A2:C6 の 5 行目と 2 列目の交差するセル B6 の合計を求めます。 |
2.42 |