Excelでのデータ検索に時間がかかっている方必見! INDEX関数とMATCH関数 を使って、効率的なデータ検索方法を解説します。
VLOOKUP関数など基本は知っているけれど、さらにスピードと精度を上げたい方に向けた実務で役立つ解決策を紹介します。
1つの条件からデータを検索する方法 1つの条件から1つのデータを検索する方法 A列(商品名)をもとに、B列(数量)を検索します。セルD2に商品名を入力すると、該当する数量が自動で表示されます。
=INDEX(B2:B6 ,MATCH(D2 ,A2:A6 ,0)) =INDEX(数量の一覧 ,MATCH(検索したい商品名 ,商品名の一覧 ,0)) 式の中に直接条件を入力することもできますが、セルを参照する方が変更に柔軟に対応できるため、より便利です。 式の一番最後にある「0」は固定で問題ありません。
1つの条件から複数のデータを検索する方法 A列(商品番号)をもとに、B列(商品名)とC列(数量)を検索します。セルE2に商品番号を入力すると、該当する商品名と数量が自動で表示されます。
≪1つめの抽出≫ =INDEX(B2:B6 ,MATCH(E2 ,A2:A6 ,0)) =INDEX(商品名の一覧 ,MATCH(検索したい商品番号 ,商品番号の一覧 , 0)) 式の中に直接条件を入力することもできますが、セルを参照する方が変更に柔軟に対応できるため、より便利です。 式の一番最後にある「0」は固定で問題ありません。
≪2つめの抽出≫ =INDEX(C2:C6 ,MATCH(E2 , A2:A6 ,0)) =INDEX(数量の一覧 ,MATCH(検索したい商品番号 ,商品番号の一覧 ,0)) 式の中に直接条件を入力することもできますが、セルを参照する方が変更に柔軟に対応できるため、より便利です。 式の一番最後にある「0」は固定で問題ありません。
式の組み立てさえ分かれば、抽出する項目欄を右に増やしていくことが可能ですね。
複数の条件からデータを検索する方法 A列(商品番号)とB列(商品名)が一致する行から、C列(産地)を検索します。セルF2に商品番号、G2に商品名を入力すると、該当する産地が自動で表示されます。 複数条件を利用したデータ検索の方法です。
=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関数で実現 します。
=INDEX(A2:A6 ,MATCH(E2 ,B2:B6 ,0)) =INDEX(商品番号の一覧 ,MATCH(検索したい商品名 ,商品名の一覧 ,0)) 式の中に直接条件を入力することもできますが、セルを参照する方が変更に柔軟に対応できるため、より便利です。 式の一番最後にある「0」は固定で問題ありません。
列追加への対応 INDEX関数 + MATCH関数は、列の追加や削除があってもエラーは発生しません。 ↓数式入力後にB列(産地)を追加しましたが、セルG2の結果は問題ないことが確認できます。
【 応用編 】縦と横のデータから交差する値を検索する方法 A列(商品名)をもとに、指定したヘッダー(1行目)に対応するデータを検索します。 セルF2に商品名、G2に売上月を入力すると、該当する数量が自動で表示されます。
=INDEX(B2:D6 ,MATCH(F2 ,A2:A6 ,0),MATCH(G2 ,B1:D1 ,0)) =INDEX(数量の一覧 ,MATCH(検索したい商品名 ,商品名の一覧 ,0),MATCH(検索したい売上月 ,売上月のヘッダー ,0)) 式の中に直接条件を入力することもできますが、セルを参照する方が変更に柔軟に対応できるため、より便利です。 式にある「0」は固定で問題ありません。
【 応用編 】IFERROR関数でエラー結果を任意表示する方法 検索条件に一致するデータがない場合、「#VALUE!」などのエラーが表示されるのを防ぎます。今回は、エラー発生時に「データ無し」と表示されるように設定します。
=IFERROR( INDEX関数とMATCH関数の式を入力,”データ無し”) 関数を囲む ように入力すればOKです。「データ無し」の部分は任意の文字を入力することが可能です。
エラー表示についてさらに詳しく解説しています↓
【 応用編 】プルダウンメニューを使ったデータ検索方法 プルダウンメニューを活用し、手入力していた条件を選択式にします。これにより入力ミスを防ぐことが可能です。
① プルダウンメニューを設定したいセルを選択
② タブにあるデータ⇒データツールにあるデータの入力規則マークをクリック
③ タブにある設定⇒入力値の種類で「リスト」を選択
④ 元の値に「プルダウンメニューで表示したいリスト範囲を指定」
(別シートにリストを作成しても問題ありません)
⑤ OKをクリックして完了
まとめ ポイントをまとめます。
・
INDEX関数の中にMATCH関数 を組み込むことで複雑な検索が可能
・ VLOOKUP関数より難易度は高いが、縦横の交差する値を検索、列の追加や削除、右から左への検索にも対応
・
複数 条件での検索、
複数 データの抽出が可能
いかがでしたか?INDEX関数とMATCH関数を活用すれば、柔軟なデータ検索が可能になり業務の効率が大幅に向上します。
特に大量のデータの処理では、VLOOKUP関数よりも計算速度が速く、列の追加・削除にも強いため、長期的に安定した運用が可能です。
さらに、IFERROR関数でエラー処理を行い、プルダウンメニューと組み合わせれば、より正確かつスムーズな検索環境を構築できます。 ぜひ、このテクニックを日々の業務でご活用ください!