INDEX 関数はテーブルまたはセル範囲にある値、あるいはその値のセル参照を返します。

INDEX 関数には、次の 2 つの使い方があります。
配列形式
説明
行と列番号のインデックスによって選択された、テーブルまたは配列内の要素の値を返します。
INDEX 関数の 1 番目の引数が配列定数のときは、配列形式を使います。
書式
INDEX(配列, 行番号, [列番号])
INDEX 関数の配列形式には、次の引数があります。
-
配列 必須。 セル範囲または配列定数を指定します。
-
配列に含まれる行または列が 1 つのみである場合、対応row_numまたはcolumn_numは省略可能です。
-
配列に複数の行と複数の列が含み、row_num または column_num のみを使用する場合、INDEX は配列内の行または列全体の配列を返します。
-
-
row_num 必要です (column_num場合)。 配列の中にあり、値を返す行を数値で指定します。 省略row_num場合は、column_num必要です。
-
column_num 任意。 配列の中にあり、値を返す列を数値で指定します。 このcolumn_num省略した場合は、row_num必要です。
解説
-
row_num 引数と column_num 引数の両方が使用されている場合、INDEX はセル内の値を返し、row_num と column_num。
-
row_numとcolumn_num配列内のセルを指す必要があります。それ以外の場合、INDEX は関数を#REF! エラーが表示されます。
-
列または行row_num 0 column_numに設定すると、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キーを押して数式を動的配列数式として確認できます。 それ以外の場合は、最初に 2 つの空白セルを選択し、出力範囲の左上のセルに数式を入力してから 、Ctrl キーと Shift キーを押しながら Enter キーを押して確定することで、従来の配列数式として数式を入力する必要があります。 Excel によって、数式の先頭と末尾に中かっこが挿入されます。 配列数式の詳細については、「配列数式のガイドラインと例」を参照してください。
数式 |
説明 |
結果 |
---|---|---|
=INDEX({1,2;3,4},0,2) |
配列の中の最初の行の 2 列目の値を取り出します。 配列の中で、最初の行に 1、2 と、2 番目の行に 3、4 があります。 |
2 |
配列の中の 2 行目の 2 列目の値を取り出します (上記の配列と同じ)。 |
4 |
|
リファレンス フォーム
説明
指定された行と列が交差する位置にあるセルの参照を返します。 参照が隣接しない選択で作成されている場合は、参照する選択範囲を選択できます。
書式
INDEX(参照, 行番号, [列番号], [領域番号])
INDEX 関数の参照形式には、次の引数があります。
-
リファレンス 必須。 1 つまたは複数のセルの参照を指定します。
-
参照に隣接しない範囲を入力する場合は、参照をかっこで囲む必要があります。
-
参照内の各領域に 1 つの行または列しか含row_numまたはcolumn_num引数は省略可能です。 たとえば、範囲が 1 行のみである場合は、INDEX(範囲,列番号) と指定できます。
-
-
row_num 必ず指定します。 範囲の中にあり、セル参照を返すセルの行位置を数値で返します。
-
column_num 任意。 範囲の中にあり、セル参照を返すセルの列位置を数値で返します。
-
area_num 省略可能です。 参照する範囲を選択し、その範囲の交点をrow_num選択column_num。 最初に選択または入力された領域の領域番号が 1 となり、以下、2 番目の領域は 2 というように続きます。 指定area_num、INDEX は領域 1 を使用します。 ここで表示される領域はすべて 1 つのシート上に置かれている必要があります。 他の領域と同じシート上に存在しない領域を指定した場合、#VALUE! エラーが発生します。 相互に異なるシート上に置かれている範囲を使用する必要がある場合は、INDEX 関数の配列形式を使用し、別の関数を使用して配列を形成する範囲を計算することをお勧めします。 たとえば、CHOOSE 関数を使用して、どの範囲が使用されるかを計算することができます。
たとえば、セル (A1:B4、D1:E4、G1:H4) を参照する場合、area_num 1 は範囲 A1:B4、area_num 2 は範囲 D1:E4、area_num 3 は範囲 G1:H4 です。
解説
-
参照と area_num が特定の範囲を選択した後、row_num と column_num は特定のセルを選択します。row_num 1 は範囲内の最初の行、column_num 1 は最初の列などです。 INDEX によって返される参照は、インデックスとrow_numのcolumn_num。
-
列または行row_num 0 column_numに設定した場合、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 ワークシートのセル 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 |