【完全ガイド】ExcelのINDEX関数の使い方とは?MATCHとの連携・応用テクまで徹底解説!

Excelを使っていて「行と列を指定して、その交差点にある値を取り出したい」と思ったことはありませんか?
そんなときに使えるのが、INDEX(インデックス)関数です。

INDEX関数は、Excelの中で最も柔軟で強力な「検索・参照」関数の1つです。この記事では、INDEX関数の使い方からMATCHとの連携、実務での活用例、応用テクニックまで、わかりやすく網羅的に解説します。

1. はじめに:INDEX関数とは何か?

INDEX関数は、「配列(範囲)の中から、指定した行番号・列番号にある値を取り出す」関数です。

他の検索関数(VLOOKUPなど)は「検索値から値を探す」のに対し、INDEXは**「位置から値を取り出す」**という逆の発想です。

VLOOKUPでは実現できない「左方向の検索」や「柔軟な2次元検索」にも対応できるため、MATCH関数などと組み合わせれば、業務効率を格段に上げる強力なツールになります。

2. INDEX関数の基本構文と意味

▼ 基本構文(配列形式)

=INDEX(配列, 行番号, [列番号])
引数内容
配列値を取り出したい範囲(例:A1:C5)
行番号何行目の値を取り出すか(1から始まる)
列番号何列目の値を取り出すか(1から始まる、省略可能)

▼ 応用構文(参照形式・複数エリア対応)

=INDEX((範囲1, 範囲2), 行番号, [列番号], [エリア番号])

これはあまり日常的ではありませんが、複数の範囲から選ぶときに使えます。

3. INDEX関数の使い方:基本パターン

● パターン①:1列だけの配列

=INDEX(A1:A5, 3)

→ A1:A5 の中の3番目(A3セル)の値を返す。

● パターン②:複数行・複数列の配列

=INDEX(A1:C3, 2, 3)

→ A1:C3の中の「2行目・3列目」の値(C2セル)を返す。

● パターン③:MATCHと組み合わせて動的な検索

=INDEX(B2:B10, MATCH("田中", A2:A10, 0))

→ A列に「田中」がある行の、B列の値を返す。

4. どんな時に使うか?活用シーン

INDEX関数は以下のような場面で非常に効果的です。

✅ 行・列の交差点の値を取り出したいとき

→ 行列の番号がわかれば、簡単にセルの内容を取得できます。

✅ MATCHと組み合わせて検索を行いたいとき

→ VLOOKUPでは右方向しか検索できませんが、INDEX + MATCHであれば左方向も自由自在です。

✅ 列が変動する表の検索に対応したいとき

→ 列番号を動的に取得できるため、列が追加されても壊れません。

✅ 特定の位置にある値を柔軟に抽出したいとき

→ OFFSETのように、動的にセルの中身を取り出すことが可能です。

5. 実践サンプル:INDEX関数の使いどころ

📌 例1:3番目の名前を取得

=INDEX(A1:A4, 3) → 結果:鈴木

📌 例2:2次元の配列から交差セルを取得

=INDEX(B2:C3, 2, 1) → 結果:80

📌 例3:MATCHと組み合わせて商品名から価格を検索

=INDEX(B2:B5, MATCH("ペン", A2:A5, 0))

→ 商品「ペン」に対応する価格(B列)を返す。

6. よくあるエラーとその対処法

エラー原因と対処法
#REF!行番号や列番号が配列の範囲外 → 範囲を再確認
#VALUE!引数の指定ミス → 行や列番号が空白・文字列になっていないか確認

7. INDEX関数と他関数の組み合わせ技

✅ INDEX + MATCH(VLOOKUPの代替)

=INDEX(C2:C10, MATCH("田中", A2:A10, 0))

→ 「田中」に対応するC列の値を返す

✅ INDEX + MATCH + MATCH(2次元検索)

=INDEX(B2:D5, MATCH("商品B", A2:A5, 0), MATCH("2月", B1:D1, 0))

→ 「商品B × 2月」の値を返す

✅ INDEX + SMALL + IF(条件に合う複数データの抽出)

=INDEX(A2:A10, SMALL(IF(B2:B10="男性", ROW(A2:A10)-ROW(A2)+1, ""), 1))

→ 条件に合うデータの上から1番目を返す(配列数式)

8. INDEX関数の応用テクニック

🔸 リストのn番目を取得(並べ替え不要)

並べ替えをせずに「上位3位まで表示」などが可能

🔸 INDIRECTと組み合わせてシート間検索

=INDEX(INDIRECT("'" & A1 & "'!B2:B10"), 3)

→ A1に書かれたシート名の中の3番目を取得

🔸 INDEXによる範囲の再定義

=SUM(INDEX(A1:A100, 1):INDEX(A1:A100, 10))

→ 動的な合計範囲の定義に使える

9. まとめ:INDEX関数はExcel検索の最強パーツ!

INDEX関数は、行番号・列番号で値を取り出すというシンプルな構文ながら、MATCHや他の関数と組み合わせることで、非常に強力な検索・抽出機能を実現できます。

  • VLOOKUPでは実現できない「左方向検索」
  • 柔軟な2次元検索(MATCH + MATCH)
  • 動的な範囲・条件付き抽出にも対応可能

Excelを深く使いこなすためには、INDEX関数の習得は必須です!
まずは基本形から始めて、MATCH関数との連携や応用パターンにもぜひ挑戦してみてください。

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