INDEX関数は、指定した範囲、行番号、列番号からセルの値を取得する関数です。値の取得(ルックパアップ)は、VLOOKUP関数が有名ですが、INDEX関数も非常に便利な関数です。
INDEX関数
INDEX関数は、指定した範囲、行番号、列番号からセルの値を取得する関数です。
値が見つからない場合は、「#N/A」エラーが返されます。
INDEX関数の書式
INDEX関数は、配列形式と参照形式があります。
配列形式と参照形式の違いは、引数に複数の範囲を指定できるかどうかです。指定した範囲における行番号と列番号からセルの値を取得するという部分は同じです。

よく使われるのは、配列形式のINDEX関数だよ。
配列形式
INDEX(配列, 行番号, 列番号)
配列 | 必須 | セルの範囲または配列を指定します。 |
行番号 | 必須(※) | 範囲(配列)中の値を返す行を指定します。 ※引数「配列」が1行のみの場合省略可能です。 |
列番号 | 必須(※) | 範囲(配列)中の値を返す列を指定します。 ※引数「配列」が1列のみの場合省略可能です。 |
参照形式
INDEX(参照, 行番号, 列番号, [領域番号])
参照 | 必須 | (複数の)セルの範囲を指定します。 |
行番号 | 必須(※) | 範囲中の値を返す行を指定します。 ※引数「参照」が1行のみの場合省略可能です。 |
列番号 | 必須(※) | 範囲中の値を返す列を指定します。 ※引数「参照」が1列のみの場合省略可能です。 |
領域番号 | 任意 | 値を返す領域番号を指定します。 引数「参照」に指定した最初の範囲を領域番号1、次に指定した範囲を2、…として領域番号を割り当てます。省略した場合は、領域番号1となります。 |
INDEX関数の使用例
図1のような例でINDEX関数を使用してみます。

例1(配列形式)
範囲「B3:E8」における5行2列の値「オレンジ」を取得する。
=INDEX(B3:E8,5,2)

1つ目の引数の配列には、表の範囲である「B3:E8」を指定しています。
なお、今回は、表の範囲を絶対参照「$B$3:$E$8」ではなく、相対参照「B3:E8」で記述してみました。相対参照・絶対参照が良くわからないよという方は、以前に記事を書いていますので、よろしければご覧ください。
2つ目、3つ目の引数の行番号と列番号についてです。今回は、5行目、2列目の値が欲しいのでそれぞれ行番号「5」、列番号「2」としています。
例2(参照形式)
領域番号1の範囲を「B3:E5」、領域番号2の範囲を「B6:E8」として、領域番号2の2行4列の値「150」を取得する。
=INDEX((B3:E5,B6:E8),2,4,2)

1つ目の引数の参照には、1つ目の範囲(領域番号1)である「B3:E5」と2つ目の範囲(領域番号2)である「B6:E8」を指定しています。
4つ目の引数の領域番号は、領域番号2の範囲におかる値が欲しいので「2」としています。
2つ目、3つ目の引数の行番号と列番号は、領域番号2における2行目、4列目の値が欲しいのでそれぞれ行番号「2」、列番号「4」としています。
補足
INDEX関数の引数である行番号と列番号にMATCH関数を使用することができます。MATCH関数と組み合わせた便利な使い方も紹介していますので、よろしければご覧ください。
MATCH関数の詳細については、こちらをご覧ください。
行または列全体の取得
- INDEX関数の引数「行番号」または「列番号」に0を指定すると、INDEX関数は、行または列全体の値の配列を返します。ただし、配列としての戻り値を使用する場合は、配列数式としてINDEX関数を使用しましょう。

配列数式を使えば、INDEX関数で行または列全体の値も取れるよ。
Excelにおける配列については、こちらをご覧ください。
コメント