
INDEX関数って名前は聞くけど、いったい何に使うの??

INDEX関数はエクセルの数ある関数の中でも、名前は聞くけど何に使うかあまり知られていないよね。
今回はそんなINDEX関数が、「いつ、どんな時に使うのか」を解説します!
安心して読み進められるように、基本的な使い方から具体的な活用例まで、図解で紹介していきます!
ぜひ最後まで読んでみてください!
INDEX関数って、結局何ができるの?

まずは、INDEX関数がどんな役割を持っているのかをシンプルにお伝えします。
INDEX関数は、
指定した範囲の中から、指定した行と列の位置にある値を取り出す関数です。

あれ?VLOOKUP関数やXLOOKUP関数と何が違うの?

すもリーマンいい質問だね!
大きな違いは、VLOOKUP関数やXLOOKUP関数が「条件に合う値を探して取り出す」のに対し、INDEX関数は「指定した場所(位置)にある値を取り出す」という点です。
INDEX関数の基本の形と引数(ひきすう)

INDEX関数には、主に2つの書式(使い方)があります。
ここでは、セル範囲から値を取り出す基本的な書式から見ていきましょう。
書式1:セル範囲から値を取り出す場合
=INDEX(範囲, 行番号, [列番号])
それぞれの引数について詳しく見ていきましょう。
- 範囲(必須): 値を取り出したいセル範囲を指定します。例えば、「A1:C10」のように指定します。
- 行番号(必須): 「範囲」で指定したセル範囲の、上から何番目の行の値を取り出すかを数値で指定します。
- 列番号(省略可能): 「範囲」で指定したセル範囲の、左から何番目の列の値を取り出すかを数値で指定します。
- この「列番号」は省略可能です。範囲が1列(または1行)しかない場合は、省略しても問題ありません。省略した場合、自動的に1列目(または1行目)と判断されます。
INDEX関数の使い方を具体例で見てみよう!

言葉だけではイメージしにくいため、実際にデータを使ってINDEX関数を使ってみましょう!
以下のデータを使って説明していきます。
営業成績データ
支店名 | 担当者 | 4月売上 | 5月売上 | 6月売上 |
東京 | 山田 | 150 | 160 | 170 |
大阪 | 佐藤 | 120 | 130 | 140 |
名古屋 | 鈴木 | 180 | 190 | 200 |
福岡 | 田中 | 100 | 110 | 120 |

例1:特定のセルの値を取り出す
「名古屋支店の6月売上」を取り出してみましょう。
- 範囲: A2:E5 (データがある範囲)
- 行番号: 「名古屋」は範囲の上から3行目なので「3」
- 列番号: 「6月売上」は範囲の左から5列目なので「5」
数式は以下のようになります。
=INDEX(A2:E5,3,5)
この数式を入力すると、「200」という値が返されます。

例2:1列(または1行)の範囲から値を取り出す
次に、データの中から「担当者」の列だけに着目して、値を取り出してみましょう。例えば、「上から2番目の担当者」を取り出したい場合です。
- 範囲: B2:B5 (担当者の列だけを範囲にする)
- 行番号: 「上から2番目」なので「2」
- 列番号: 範囲が1列しかないので、列番号は省略できます。
数式は以下のようになります。
=INDEX(B2:B5,2)
この数式を入力すると、「佐藤」という値が返されます。


このように、INDEX関数は指定した「場所」にある値をピンポイントで取り出すのが得意な関数です。
INDEX関数の便利な使い方:INDEX関数が輝くのはどんな時?

でも、これだけだとVLOOKUP関数で十分じゃない?

その通りだよ!これだけどVLOOKUP関数で十分だよね!
しかし、INDEX関数には、VLOOKUP関数などではできない、あるいは非常に効率的に行える使い方があるんです。
それが、主に以下の2つのケースです。
参照したい値が、検索値の右側にも左側にもある場合
VLOOKUP関数は、検索する列(一番左の列)を基準に、その右側にある値しか参照できません。

一方、INDEX関数は「行番号」と「列番号」を指定するため、検索値の左右どちらにある値でも自由に参照できるのが大きな強みです。
例えば、
「担当者名からその担当者の支店名を知りたい」といったケースを考えてみましょう。
支店名 | 担当者 | 4月売上 |
東京 | 山田 | 150 |
大阪 | 佐藤 | 120 |
名古屋 | 鈴木 | 180 |
福岡 | 田中 | 100 |
このデータで、「佐藤」さんの「支店名」を取り出したい場合、VLOOKUP関数では「担当者」列が一番左にないため、直接参照することはできません。(一度列を入れ替えるなどの工夫が必要です)
しかし、INDEX関数を使えば、柔軟に対応できます。

さらに便利に!INDEX関数とMATCH関数の組み合わせ

ここで、INDEX関数をさらに強力にするのがMATCH関数です。
MATCH関数は、
指定した値が「範囲の中で何番目にあるか」を行番号や列番号として教えてくれる関数です。
=MATCH(検索値, 検索範囲, [照合の種類])
このMATCH関数を、INDEX関数の「行番号」や「列番号」に組み込むことで、「〇〇という値がある行(列)の、△△という値を取り出す」といった柔軟な検索が可能になります。
例えば、「田中さんの5月売上を知りたい」という場合を考えてみましょう。
- 田中さんが何行目にあるか → MATCH関数で田中さんの行番号を特定
- 5月売上が何列目にあるか → MATCH関数で5月売上の列番号を特定
- INDEX関数で、1と2で特定した行番号と列番号の値を参照

この組み合わせについて、以前別の記事で詳しく解説していますので、気になる方はぜひ下記の記事も参考にしてみてくださいね!
動的に参照する範囲や値を変えたい場合

INDEX関数は、直接行番号や列番号を指定できるため、例えばドロップダウンリストと組み合わせることで、選択した項目に応じて表示される値を変えるといった、動的なデータ表示にも役立ちます。
例えば、店舗ごとの売上データを月ごとに切り替えて表示したい場合などに便利です。
INDEX関数の注意点
まとめ:INDEX関数は「位置」を指定する頼れる関数!

いかがでしたでしょうか?
今回の記事で、INDEX関数は「指定した場所(位置)にある値を取り出す」関数だということがお分かりいただけたかと思います。

XLOOKUP関数は新しい関数のため、古いバージョンのExcelでは使えない場合があります。
INDEX関数単体で使う機会は少ないかもしれませんが、MATCH関数と組み合わせることで、VLOOKUP関数よりも柔軟なデータ検索・抽出が可能になります。
特に、データが多く、参照したい列が左右に散らばっているような場合に、その真価を発揮します。
今日からぜひ、INDEX関数をあなたのエクセルスキルに加えて、より効率的なデータ処理を目指してみてくださいね!
何かご不明な点や、さらに詳しく知りたいことがあれば、お気軽にご質問ください!
コメント