エクセルINDEX関数の基本と使い方を徹底解説!「何に使うの?」を解決

Excel

すもリーマン
すもリーマン

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月売上
東京山田150160170
大阪佐藤120130140
名古屋鈴木180190200
福岡田中100110120
営業成績データ

例1:特定のセルの値を取り出す

「名古屋支店の6月売上」を取り出してみましょう。

  • 範囲: A2:E5 (データがある範囲)
  • 行番号: 「名古屋」は範囲の上から3行目なので「3」
  • 列番号: 「6月売上」は範囲の左から5列目なので「5」

数式は以下のようになります。

=INDEX(A2:E5,3,5)

この数式を入力すると、「200」という値が返されます。

例1の数式入力とその結果

例2:1列(または1行)の範囲から値を取り出す

次に、データの中から「担当者」の列だけに着目して、値を取り出してみましょう。例えば、「上から2番目の担当者」を取り出したい場合です。

  • 範囲: B2:B5 (担当者の列だけを範囲にする)
  • 行番号: 「上から2番目」なので「2」
  • 列番号: 範囲が1列しかないので、列番号は省略できます。

数式は以下のようになります。

=INDEX(B2:B5,2)

この数式を入力すると、「佐藤」という値が返されます。

例2の数式入力と結果

でんちゃん
でんちゃん

このように、INDEX関数は指定した「場所」にある値をピンポイントで取り出すのが得意な関数です。


INDEX関数の便利な使い方:INDEX関数が輝くのはどんな時?

すもリーマン
すもリーマン

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

でんちゃん
でんちゃん

その通りだよ!これだけどVLOOKUP関数で十分だよね!

しかし、INDEX関数には、VLOOKUP関数などではできない、あるいは非常に効率的に行える使い方があるんです。

それが、主に以下の2つのケースです。

  1. 参照したい値が、検索値の右側にも左側にもある場合
  2. 動的に参照する範囲や値を変えたい場合

参照したい値が、検索値の右側にも左側にもある場合

VLOOKUP関数は、検索する列(一番左の列)を基準に、その右側にある値しか参照できません。

でんちゃん
でんちゃん

一方、INDEX関数は「行番号」と「列番号」を指定するため、検索値の左右どちらにある値でも自由に参照できるのが大きな強みです。

例えば、

「担当者名からその担当者の支店名を知りたい」といったケースを考えてみましょう。

支店名担当者4月売上
東京山田150
大阪佐藤120
名古屋鈴木180
福岡田中100

このデータで、「佐藤」さんの「支店名」を取り出したい場合、VLOOKUP関数では「担当者」列が一番左にないため、直接参照することはできません。(一度列を入れ替えるなどの工夫が必要です)

しかし、INDEX関数を使えば、柔軟に対応できます。

VLOOKUP関数を使い、担当者名から支店名を抜き出すのは現状の表ではできません。

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

でんちゃん
でんちゃん

ここで、INDEX関数をさらに強力にするのがMATCH関数です。

MATCH関数は、

指定した値が「範囲の中で何番目にあるか」を行番号や列番号として教えてくれる関数です。

=MATCH(検索値, 検索範囲, [照合の種類])

このMATCH関数を、INDEX関数の「行番号」や「列番号」に組み込むことで、「〇〇という値がある行(列)の、△△という値を取り出す」といった柔軟な検索が可能になります。

例えば、「田中さんの5月売上を知りたい」という場合を考えてみましょう。

  1. 田中さんが何行目にあるか → MATCH関数で田中さんの行番号を特定
  2. 5月売上が何列目にあるか → MATCH関数で5月売上の列番号を特定
  3. INDEX関数で、1と2で特定した行番号と列番号の値を参照

でんちゃん
でんちゃん

この組み合わせについて、以前別の記事で詳しく解説していますので、気になる方はぜひ下記の記事も参考にしてみてくださいね!


動的に参照する範囲や値を変えたい場合

でんちゃん
でんちゃん

INDEX関数は、直接行番号や列番号を指定できるため、例えばドロップダウンリストと組み合わせることで、選択した項目に応じて表示される値を変えるといった、動的なデータ表示にも役立ちます。

例えば、店舗ごとの売上データを月ごとに切り替えて表示したい場合などに便利です。


INDEX関数の注意点

  • 範囲と行番号/列番号のズレ: 指定した「範囲」に対して、「行番号」や「列番号」が範囲外の数値を指定すると、#REF!エラーが表示されます。
    • 例:範囲がA1:C5なのに、行番号に10を指定するなど。
  • 複数範囲を指定する書式: INDEX関数には、複数の離れた範囲を指定して使う書式もありますが、少し複雑なので、まずは基本的な使い方をマスターすることをおすすめします。必要になったら調べてみましょう。

まとめ:INDEX関数は「位置」を指定する頼れる関数!

でんちゃん
でんちゃん

いかがでしたでしょうか?

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

まとめ

XLOOKUP関数は新しい関数のため、古いバージョンのExcelでは使えない場合があります。

INDEX関数単体で使う機会は少ないかもしれませんが、MATCH関数と組み合わせることで、VLOOKUP関数よりも柔軟なデータ検索・抽出が可能になります。

特に、データが多く、参照したい列が左右に散らばっているような場合に、その真価を発揮します。

今日からぜひ、INDEX関数をあなたのエクセルスキルに加えて、より効率的なデータ処理を目指してみてくださいね!


何かご不明な点や、さらに詳しく知りたいことがあれば、お気軽にご質問ください!

この記事を書いた人
でんちゃん

一児の父。人事として6年、採用・教育・労務・人事制度などを経験してきました。これまで200名ほどの方と面接を実施してきたので就職・転職に関するノウハウがあります。またExcelを用いたデータ分析が得意です。
娘が生まれ日々のすさまじい成長を目の当たりにしています。
人事やExcel、子育てに関してのお役立ち情報を伝えるブログを作っていきます!

でんちゃんをフォローする
Excel
でんちゃんをフォローする

コメント

タイトルとURLをコピーしました