【Excel】データ抽出で差を付ける!INDEX MATCHの使い方完全マニュアル

Excel & マクロ
この記事は約3分で読めます。

初めに

こんにちわ。柊美俊です。

Excelの関数には、データを効率的に検索し取得するためのさまざまな機能があります。
その中でも「INDEX関数」と「MATCH関数」を組み合わせることで、
より柔軟なデータ検索が可能になります。
本記事では、INDEX関数とMATCH関数の基本を復習した後、実際の活用方法について解説します。

🎓 Excelを本格的に学びたい方はこちら

パソコンスクールISAを見る

復習

INDEX関数

INDEX関数は、指定した範囲の中から行番号と列番号を指定して値を取得する関数です。

構文:

=INDEX(範囲, 行番号, [列番号])

例: A1:C3の範囲があり、=INDEX(A1:C3,2,1)とすると、A列の2行目の値を取得できます。

MATCH関数

MATCH関数は、指定した値が範囲の中で何番目にあるかを返す関数です。

構文:

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

例: A1:A5に「りんご、バナナ、ぶどう、みかん、すいか」と並んでいる場合、=MATCH("ぶどう", A1:A5, 0) は 3 を返します(「ぶどう」は3番目にあるため)。

活用方法

🎓 Excelを本格的に学びたい方はこちら

パソコンスクールISAを見る


INDEX関数とMATCH関数を組み合わせることで、
VLOOKUP関数よりも柔軟にデータを検索できます。

=INDEX(B1:B5, MATCH("ぶどう", A1:A5, 0))

この式では、A列で「ぶどう」を検索し、その行のB列の値を取得します。VLOOKUP関数と異なり、検索列の位置を問わず柔軟に値を取得できるのが特徴です。

また、MATCH関数を行番号だけでなく列番号に活用することで、縦横を組み合わせた検索も可能になります。

=INDEX(A1:D5, MATCH("みかん", A1:A5, 0), MATCH("価格", A1:D1, 0))

この式では、A列で「みかん」の行番号を取得し、D列の「価格」の列番号を取得することで、該当するセルの値を取得できます。

VLOOKUP関数との比較

VLOOKUP関数も検索に使われる関数ですが、
INDEX関数+MATCH関数の組み合わせと比較すると、以下の違いがあります。

項目INDEX+MATCHVLOOKUP
検索方向左右どちらでも可能左から右のみ
列の追加・削除の影響受けにくい受けやすい
処理速度大量データで高速列数が多いと遅くなる

例: VLOOKUPでは、検索値がA列にある場合、B列以降の値しか取得できません。

=VLOOKUP("ぶどう", A1:B5, 2, FALSE)

しかし、INDEX+MATCHを使えば、B列を検索キーにしてA列の値を取得することも可能です。

=INDEX(A1:A5, MATCH("価格", B1:B5, 0))

まとめ

INDEX関数とMATCH関数を組み合わせることで、VLOOKUP関数ではできない柔軟な検索が可能になります。
特に、大量のデータを扱う場合や、列の追加・削除による影響を受けにくい検索方法を求める場合にINDEX関数MATCH関数複合型が有効です。
ぜひ活用して、より効率的なデータ管理を行いましょう!

🎓 Excelを本格的に学びたい方はこちら

パソコンスクールISAを見る

Excel関係の記事はこちら

コメント

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