INDEX関数は、範囲の中の「何行目・何列目」を指定して、その位置の値を取り出す関数です。MATCH 関数と組み合わせると、VLOOKUP のように表から値を探せ、左の列も返せます。縦横の表から値を取り出すクロス検索にも使います。
この記事では、INDEX 関数の使い方を、基本の書き方、MATCH との組み合わせ、行全体を取り出す列番号 0、範囲を作る使い方、#REF! や「1つずれる」間違いまで、実際の Excel の画面で説明します。練習用のファイルも無料でダウンロードできます。
INDEX関数の書き方(構文)
=INDEX(配列, 行番号, [列番号])
| 引数 | 意味 |
|---|---|
| 配列 | 値を取り出す範囲(B2:D6 など) |
| 行番号 | 範囲の上から何行目か。0 にすると列全体 |
| 列番号(省略可) | 範囲の左から何列目か。0 にすると行全体。1列だけの範囲なら省略できる |
番号は範囲の中での位置です。シートの行番号ではありません。INDEX はすべてのバージョンの Excel で使えます。
基本の使い方:行と列の番号で値を取り出す
手順:G3 に INDEX の式を入れて Enter
商品ごとの月別の表(B2:D6)から、G1 の行番号・G2 の列番号に当たる値を取り出します。 G3 に次の式を入力して、Enter キーを押します❶。
=INDEX(B2:D6,G1,G2) B2:D6G1G2青に「取り出したい表」、オレンジと紫に「何行目・何列目か」を入れます。番号は MATCH 関数で求めることが多いです。例:表 B2:M20 の、H1 行目・H2 列目の値
=INDEX(B2:M20,H1,H2) - 範囲より大きい番号(ここでは 6 行目)を指定すると #REF! になりました。

確認:400 は 3 行目(ぶどう)と 2 列目(5月)が交わる値

答えは 400 になりました❷。式は、次の順に計算しています。
- 表(B2:D6)の上から 3 行目を見る
⇒ ぶどうの行 - その行の左から 2 列目を取り出す
⇒ 5月の 400
=INDEX(A2:A6,3) は「ぶどう」です。2 列以上の範囲で列番号を省いた =INDEX(B2:D6,2) は #REF! でした。まず動かしてみよう|この記事のサンプルをその場で試せます
ブラウザの上で INDEX 関数を試せます。B2 の式は =INDEX(D2:E4,A2,2) で、区分の番号(A2)から名前(会社員・自営業・その他)を取り出します。練習用ファイルの「サンプル」シートと同じ表です。
MATCH と組み合わせて表から探す
INDEX の行番号・列番号に MATCH を入れると、「もも」の「5月」のように見出しから探して取り出せます。結果は 320 です(MATCH関数の使い方)。
=INDEX(B2:D6,MATCH(G1,A2:A6,0),MATCH(G2,B1:D1,0))

列番号を 0 にすると、ももの行全体(300・320・280)が横に広がって返りました。SUM で囲むと3か月の合計 900 です。行番号を 0 にした場合は、列全体(4月の5件)が縦に返りました。
=SUM(INDEX(B2:D6,MATCH(G1,A2:A6,0),0))
INDEX で「範囲」を作る
INDEX はセルの位置(参照)を返すので、B2:INDEX(B2:B6,3) のように範囲の終わりに使えます。G1 の件数を変えると、合計する範囲が伸び縮みします。上から3件の合計は 650 でした。
=SUM(B2:INDEX(B2:B6,G1))

よくある間違い

INDEX と MATCH の範囲の始まりの行がずれると、1つずれた値が返ります。試したところ、INDEX の範囲を1行目から(A1:A6)にすると、「ぶどう」を探したのに「みかん」が返りました。2つの範囲は同じ行から始めます。
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 1つずれた値が出る | INDEX と MATCH の範囲の始まりの行が違う | 2つの範囲を同じ行から始める。 |
| #REF! になる | 行番号・列番号が範囲より大きい/2列以上の範囲で列番号を省略した | 範囲の大きさと番号を確かめる。 |
| #N/A になる | MATCH が見つけられない | IFERROR で表示を決める(IFERROR関数)。 |
| 値が横・縦にいくつも出る | 行番号か列番号が 0 | 1つだけなら 0 以外の番号にする。 |
番号に小数(2.9)を入れると切り捨てて 2 として扱われ、文字の「2」も 2 として扱われました。
よくある質問
INDEX+MATCH と XLOOKUP、どちらを使えばいいですか?
Microsoft 365・Excel 2021 以降なら XLOOKUP のほうが短く書けます。INDEX+MATCH はすべてのバージョンで使え、縦横のクロス検索や行全体の取り出しも得意です(XLOOKUP関数の使い方)。
複数の表から切り替えて取り出せますか?
INDEX の4つ目(領域番号)で、どの表から取り出すかを選べます(AREAS関数とINDEXの領域番号・INDEX関数で複数の表を切り替える方法)。
練習問題で確かめたいときは?
INDEX・MATCH関数の練習問題10問で、位置の調べ方からクロス検索・複数条件まで練習できます。
あわせて読みたい:INDEX関数の関連記事
縦に並んだリストを表の形にするときは、縦に並んだリストを表にする方法もあわせてご覧ください。
