g727|【脱VLOOKUP】Excel上級者の常識!INDEX & MATCH関数で自由自在なデータ検索を実現しよう 🚀

「指定した商品名から、左の列にある商品番号を検索したい…」

VLOOKUP関数に慣れている方ほど、このような「逆引き」検索ができず、もどかしい思いをした経験があるのではないでしょうか。

そんなVLOOKUPの弱点をすべて解決するのが、INDEX関数とMATCH関数を組み合わせるという最強のテクニックです。今回は、この2つの関数を組み合わせ、どんな方向からでもデータを自在に抽出する方法をマスターしましょう。

目次

今回のゴール:物品名から対応する「物品番号」を検索する

以下の「物品リスト」があります。

VLOOKUPでは検索できない、E列の「物品名」を使って、その左側にあるD列の「物品番号」をB3セルに表示させることが目標です。 1

サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。

Excel-g727-1.xlsx (ダウンロード)

まずは、以下のサンプルデータをExcelシートにコピーして、操作の準備をしてください。

ABCDEF
1商品番号検索物品リスト
2物品名ぶどう物品番号物品名価格
3位置(ここに数式を入力)B101¥700
4B102メロン¥1,050
5B103ぶどう¥800
6E101人参¥200
7E102かぼちゃ¥330

解決策:INDEX関数とMATCH関数を組み合わせる

セルB3に、以下の数式を入力します。

Excel

=INDEX(D3:D7, MATCH(B2, E3:E7, 0))

この数式を入力すると、「B103」という物品番号が正しく表示されます。 2

数式の解説(内側から外側へ)

この数式は、MATCH関数をINDEX関数の中に入れる「入れ子(ネスト)」構造になっています。理解のコツは、内側のMATCH関数から読み解くことです。

ステップ1:MATCH関数で「位置」を特定する

まず、内側の

MATCH(B2, E3:E7, 0)の部分が実行されます。 3

  • これは「B2セルにある”ぶどう” 4444が、E3:E7の範囲 5555の中で、上から何番目にあるか(完全一致 6 で)調べて」という命令です。
  • 結果として、”ぶどう”は範囲の中で3番目にあるため、MATCH関数は数値の「3」を返します。

ステップ2:INDEX関数で値を「取り出す」

次に、外側のINDEX関数が、MATCH関数の返した結果(3)を使って動作します。

  • 数式全体は、=INDEX(D3:D7, 3) と同じ意味になります。 7
  • これは「D3:D7の範囲(物品番号の列) 8 の中から、3番目の値を取り出して」という命令です。
  • 結果として、D3:D7の3番目の値である「B103」が最終的な答えとしてセルに表示されます。

なぜVLOOKUPよりINDEX & MATCHなのか?

この組み合わせは、VLOOKUPに比べて圧倒的に柔軟で強力です。

  • 左右を問わない検索VLOOKUPと違い、検索列より左側にある値も簡単に取得できます。
  • 列の挿入・削除に強いVLOOKUPは列番号を「4」のように数値で指定するため、後から列を挿入すると数式が壊れます。INDEX & MATCHは列そのものを範囲として指定するため、構成の変更に強いです。
  • 動作が速い:データ量が多い場合、VLOOKUPより計算負荷が軽いと言われています。

まとめ

MATCH関数で「行番号(位置)を探し」、その結果をINDEX関数に渡して「目的の列から値を取り出す」。この連携プレーこそが、Excel検索の王道テクニックです。

最初は少し複雑に感じるかもしれませんが、この使い方を一度マスターすれば、あなたのExcelスキルが飛躍的に向上することは間違いありません。ぜひ、日々の業務で活用してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次