【Excel】情報検索のストレスを解消!INDEX関数とMATCH関数で即時データ取得

excel-index-match-data-search 関数
スポンサーリンク

Excelでのデータ検索に時間がかかっている方必見!
INDEX関数とMATCH関数を使って、効率的なデータ検索方法を解説します。

VLOOKUP関数など基本は知っているけれど、さらにスピードと精度を上げたい方に向けた実務で役立つ解決策を紹介します。

1つの条件からデータを検索する方法

1つの条件から1つのデータを検索する方法

A列(商品名)をもとに、B列(数量)を検索します。セルD2に商品名を入力すると、該当する数量が自動で表示されます。

excel-index-match-data-search

=INDEX(B2:B6,MATCH(D2,A2:A6,0))
=INDEX(数量の一覧,MATCH(検索したい商品名,商品名の一覧,0))
式の中に直接条件を入力することもできますが、セルを参照する方が変更に柔軟に対応できるため、より便利です。
式の一番最後にある「0」は固定で問題ありません。

1つの条件から複数のデータを検索する方法

A列(商品番号)をもとに、B列(商品名)とC列(数量)を検索します。セルE2に商品番号を入力すると、該当する商品名と数量が自動で表示されます。

excel-index-match-data-search

≪1つめの抽出≫
=INDEX(B2:B6,MATCH(E2,A2:A6,0))

=INDEX(商品名の一覧,MATCH(検索したい商品番号,商品番号の一覧, 0))
式の中に直接条件を入力することもできますが、セルを参照する方が変更に柔軟に対応できるため、より便利です。
式の一番最後にある「0」は固定で問題ありません。

excel-index-match-data-search

≪2つめの抽出≫
=INDEX(C2:C6,MATCH(E2, A2:A6,0))
=INDEX(数量の一覧,MATCH(検索したい商品番号,商品番号の一覧,0))
式の中に直接条件を入力することもできますが、セルを参照する方が変更に柔軟に対応できるため、より便利です。
式の一番最後にある「0」は固定で問題ありません。
式の組み立てさえ分かれば、抽出する項目欄を右に増やしていくことが可能ですね。

複数の条件からデータを検索する方法

A列(商品番号)とB列(商品名)が一致する行から、C列(産地)を検索します。セルF2に商品番号、G2に商品名を入力すると、該当する産地が自動で表示されます。
複数条件を利用したデータ検索の方法です。

excel-index-match-data-search

=INDEX(A2:D6,MATCH(F2&G2,A2:A6&B2:B6,0),3) 
=INDEX(一覧すべて,MATCH(検索したい商品番号&検索したい商品名,商品番号の一覧&商品名の一覧,0),3)
式の中に直接条件を入力することもできますが、セルを参照する方が変更に柔軟に対応できるため、より便利です。
式の一番最後にある「0」と「3」は固定で問題ありません。
式入力後「Ctrl + Shift + エンターキー」を押せば結果が正しく表示されます。
これにより配列数式になるので、式自体が「{}」で囲まれます。

VLOOKUP関数にはない便利な仕組み

右から左への検索

B列(商品名)をもとに、A列(商品番号)を検索します。セルE2に商品名を入力すると、該当する商品番号が自動で表示されます。
VLOOKUP関数では不可能な、右から左への検索をINDEX関数 + MATCH関数で実現します。

excel-index-match-data-search

=INDEX(A2:A6,MATCH(E2,B2:B6,0))
=INDEX(商品番号の一覧,MATCH(検索したい商品名,商品名の一覧,0))
式の中に直接条件を入力することもできますが、セルを参照する方が変更に柔軟に対応できるため、より便利です。
式の一番最後にある「0」は固定で問題ありません。

列追加への対応

INDEX関数 + MATCH関数は、列の追加や削除があってもエラーは発生しません。
↓数式入力後にB列(産地)を追加しましたが、セルG2の結果は問題ないことが確認できます。

excel-index-match-data-search

【 応用編 】縦と横のデータから交差する値を検索する方法

A列(商品名)をもとに、指定したヘッダー(1行目)に対応するデータを検索します。
セルF2に商品名、G2に売上月を入力すると、該当する数量が自動で表示されます。

excel-index-match-data-search

=INDEX(B2:D6,MATCH(F2,A2:A6,0),MATCH(G2,B1:D1,0))
=INDEX(数量の一覧,MATCH(検索したい商品名,商品名の一覧,0),MATCH(検索したい売上月,売上月のヘッダー,0))
式の中に直接条件を入力することもできますが、セルを参照する方が変更に柔軟に対応できるため、より便利です。
式にある「0」は固定で問題ありません。

【 応用編 】IFERROR関数でエラー結果を任意表示する方法

検索条件に一致するデータがない場合、「#VALUE!」などのエラーが表示されるのを防ぎます。今回は、エラー発生時に「データ無し」と表示されるように設定します。

excel-index-match-data-search

=IFERROR(INDEX関数とMATCH関数の式を入力,”データ無し”)
関数を囲むように入力すればOKです。「データ無し」の部分は任意の文字を入力することが可能です。
エラー表示についてさらに詳しく解説しています↓

【 応用編 】プルダウンメニューを使ったデータ検索方法

プルダウンメニューを活用し、手入力していた条件を選択式にします。これにより入力ミスを防ぐことが可能です。

excel-index-match-data-search

① プルダウンメニューを設定したいセルを選択
② タブにあるデータ⇒データツールにあるデータの入力規則マークをクリック
③ タブにある設定⇒入力値の種類で「リスト」を選択
④ 元の値に「プルダウンメニューで表示したいリスト範囲を指定」
(別シートにリストを作成しても問題ありません)
⑤ OKをクリックして完了
excel-index-match-data-search

まとめ

ポイントをまとめます。

INDEX関数の中にMATCH関数を組み込むことで複雑な検索が可能
・ VLOOKUP関数より難易度は高いが、縦横の交差する値を検索、列の追加や削除、右から左への検索にも対応
複数条件での検索、複数データの抽出が可能

いかがでしたか?INDEX関数とMATCH関数を活用すれば、柔軟なデータ検索が可能になり業務の効率が大幅に向上します。

特に大量のデータの処理では、VLOOKUP関数よりも計算速度が速く、列の追加・削除にも強いため、長期的に安定した運用が可能です。

さらに、IFERROR関数でエラー処理を行い、プルダウンメニューと組み合わせれば、より正確かつスムーズな検索環境を構築できます。
ぜひ、このテクニックを日々の業務でご活用ください!

この記事を書いた人
kuro
kuro

【経歴】10年以上の事務経験あり|現在進行形で事務職|主にExcelを使用し仕事に役立ててきました。楽しくて便利な機能を皆さんにお届けしていきたいと思います(*'v')

\ kuroをフォローする /
関数
\ 役立つと思ったらシェアしてね! /
\ kuroをフォローする /