【Excel】エクセルでデータを抽出するには?VLOOKUP関数から条件に合う方法まで徹底解説
更新日:
「エクセルでデータを抽出したい」と思ったとき、内容によって使うべき機能や関数が異なります。今回は、特定の条件に合うデータを抜き出す「検索関数」、複雑な条件にも対応できる「INDEX+MATCH」まで、実務で役立つ抽出の方法を解説します。ぜひ参考にしてみてくださいね。
イチオシスト
スマホ・ガジェットレビュワー
イチオシ編集部 ガジェット部
NTTドコモと共同開設したレコメンドサイト「イチオシ」を運営。スマホやパソコン、アプリ、スマートウォッチなど、デジタルライフを豊かにするレビューやセール情報を発信。専門家による信頼できる情報をまとめたり、ガジェット好きの編集部員が厳選したお得情報をお届けします。
※記事内で紹介した商品を購入すると、売上の一部が当サイトに還元されることがあります。
■ エクセルの「抽出」とは? 目的別に解説!
エクセルの「抽出」とは? 目的別に解説!
エクセルの「抽出」とは、膨大なデータの中から特定の条件に一致する情報だけを取り出す操作のことです。手作業で探すと時間がかかるうえに見落としがちですが、抽出機能をマスターすれば、欲しいデータだけをパッと画面に表示できるようになります。
主な目的は、必要な情報の「検索・整理」、特定の数値に基づいた「分析」、そして「レポート作成の効率化」の3点です。フィルター機能や関数など、目的やデータの規模に合わせて使い分けることで、情報収集のスピードがアップします。
今回は、エクセルの抽出方法からうまくいかない場合のチェックリストまでまとめました。ぜひ参考にしてみてくださいね。
■エクセルの表から特定のデータを抽出する関数
膨大なデータから、特定のキーワードに一致する値だけを別セルに呼び出したい時に役立つのが「検索・引用関数」です。手動でのコピー&ペーストを卒業し、表から特定のデータを抽出する関数を解説します。基本の「VLOOKUP関数」
特定の値をキーにして、対応するデータを取り出す基本的な関数です。縦方向(列)を検索してデータを抽出する「VLOOKUP」と、横方向(行)を検索する「HLOOKUP」を使い分けます。VLOOKUP関数の基本形式は以下の通りです。
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
- 検索値:何を基準に探すか(例:商品コード)
- 範囲:どこから探すか(データの一覧表)
- 列番号:範囲の左端から数えて何列目のデータを取り出すか
- 検索方法:完全に一致するもの(FALSE)か、近似値(TRUE)かを選択
実務では、正確なデータを取得するために「FALSE(完全一致)」を指定するのが一般的です。
VLOOKUP関数の使用例
VLOOKUP関数を使って、E2セルに入力された「みかん」の単価をF2セルに自動表示させる手順を解説します。
1. 表示させたいセルを選択し、以下の数式を入力してください。
=VLOOKUP(E2, B2:C4, 2, FALSE)
表示させたいセルを選択し、以下の数式を入力してください。
2. 数式を実行すると、指定した範囲から「みかん」の単価が瞬時に抽出されます。
数式を実行すると、指定した範囲から「みかん」の単価が瞬時に抽出されます。
各項目の役割は以下の通りです。
検索値(E2):何を基準に探すかを指定します。ここでは「みかん」という名称が検索のキーとなります。
範囲(B2:C4):データが格納されている「マスター表」を選択します。このとき、検索値が含まれる列を必ず一番左端にするのがルールです。
列番号(2):範囲の左から数えて何列目のデータを取り出すか。今回は2列目にある「単価」を取得します。
検索方法(FALSE):完全に一致するデータだけを探す「完全一致モード」を指定しています。
横方向(行)なら「HLOOKUP関数」
HLOOKUP関数の基本形式は以下の通りです。=HLOOKUP(検索値, 範囲, 行番号, 検索方法)
- 検索値:何を基準に探すか(例:サイズ名)
- 範囲:どこから探すか(横方向に並んだデータ表)
- 行番号:範囲の上端から数えて何行目のデータを取り出すか
- 検索方法:完全に一致するもの(FALSE)か、近似値(TRUE)かを選択
実務では、横長の料金表やマスタから正確なデータを取得するために「FALSE(完全一致)」を指定するのが一般的です。
HLOOKUP関数の使用例
HLOOKUP関数を使って、C2セルに入力された「80サイズ」の配送料をF2セルに自動表示させる手順を解説します。
表示させたいセルを選択し、以下の数式を入力してください。
=HLOOKUP(C1, A1:D2, 2, FALSE)
HLOOKUP関数の使用例
2. 数式を実行すると、指定した範囲の1行目から「80サイズ」を探し出し、2行目にある配送料が瞬時に抽出されます。
指定した範囲の1行目から「80サイズ」を探し出し、2行目にある配送料が瞬時に抽出されます。
各項目の役割は以下の通りです。
検索値(C1):何を基準に探すかを指定します。ここでは「80サイズ」という項目名が検索のキーとなります。
範囲(A1:D2):データが横方向に並んでいる「マスター表」を選択します。このとき、検索値が含まれる行を必ず一番上端にするのがルールです。
行番号(2):範囲の上から数えて何行目のデータを取り出すか。今回は2行目にある「配送料」を取得します。
検索方法(FALSE):完全に一致するデータだけを横方向に探す「完全一致モード」を指定しています。
縦横無尽な「XLOOKUP関数」
Office 2021やMicrosoft 365ユーザーなら、VLOOKUPの弱点を克服した「XLOOKUP関数」が最適です。検索値が左端になくても抽出でき、縦・横どちらの検索もこれ一つでこなせます。さらに「該当なし」の場合の表示設定なども引数で簡単に指定できるため、数式の安定性がアップします。
柔軟な検索ができる「INDEX関数 + MATCH関数」
検索値が左端にない場合や、複雑な表から情報を抜き出したい場合に有効な組み合わせです。基本形式は以下の通りです。
=INDEX(表示したい列の範囲, MATCH(検索値, 検索値が含まれる範囲, 0))
- 表示したい列の範囲:最終的に取り出したいデータが入っている列を指定します。
- 検索値:何を基準に探すか(例:商品名)
- 検索値が含まれる範囲:基準となるデータが並んでいる範囲を指定します。
- 0:完全に一致するデータを探す指定です。
「MATCH関数」でデータの位置(行番号)を特定し、その位置にある値を「INDEX関数」で取り出すという仕組みです。VLOOKUP関数の弱点である「検索値より左側のデータは取れない」という制約を克服できます。
INDEX + MATCH関数の使用例
「商品名(B列)」をキーにして、その左側にある「商品コード(A列)」を取得する手順を解説します。
表示させたいセルを選択し、以下の数式を入力してください。
=INDEX(A2:A4, MATCH(F2, B2:B4, 0))
INDEX + MATCH関数の使用例
2. 数式を実行すると、MATCH関数が「みかん」の行位置を特定し、INDEX関数がそれに対応する左側の「商品コード」を瞬時に抽出します。
MATCH関数が「みかん」の行位置を特定し、INDEX関数が「商品コード」を瞬時に抽出します。
各関数の役割は以下の通りです。
MATCH(F2, B2:B4, 0):C列(商品名)の中からF2(みかん)が「何行目にあるか」を探します。この場合、結果として「3」が返されます。
INDEX(A2:A4, ...):取り出したいデータがあるB列(商品コード)の範囲を指定します。
組み合わせ:MATCHが算出した「3行目」という情報をINDEXに渡すことで、A列の3行目にある「A002」という値を正確に取り出します。
■条件に合う行をまとめて抽出する方法
大量のリストから特定の条件に合う「行」だけを一覧で見たい場合、エクセルには簡易的なものから自動更新される関数まで、複数の機能が備わっています。作業の目的や環境に応じた最適な方法を解説します。簡単操作! 「フィルター機能」
簡単操作! 「フィルター機能」
フィルター機能は、もっとも手軽な方法です。「データ」タブの「フィルター」をクリックし、見出しに出現するプルダウンから特定の項目(例:「aaa文具店」など)を選択するだけで完了します。
メリット
関数を使わず、数値の大小や日付での並べ替え(ソート)も同時に行えます。
注意点
条件に合わない行が一時的に「非表示」になるだけなので、元データを常に全表示しておきたい場合は、抽出結果を別場所にコピーする必要があります。
数式で自動抽出する「FILTER関数」
Microsoft 365やExcel 2021以降で利用できる、条件に合うデータを別のセルに自動で展開させる関数です。構文
=FILTER(配列, 含む, [空の場合])
メリット
元データが更新されると、抽出結果もリアルタイムで反映されます。
複数条件: (条件1)*(条件2) でAND条件、(条件1)+(条件2) でOR条件といった高度な指定も可能です。
抽出結果を「別シート」に保存する
抽出結果を「別シート」に保存する
「データ」タブの「詳細設定」から「フィルターオプション」を使用する方法です。
手順
抽出先を「指定した範囲」に変更し、別シートのセルを出力先に指定します。
メリット
元の表をそのまま保持しつつ、必要なデータだけを別シートへ瞬時に「転記」できるため、報告書作成などの際に便利です。
■抽出がうまくいかない場合のチェックリスト
関数を入力したのにエラーが出たり、フィルターをかけても思い通りの結果が得られなかったりすることがあります。抽出ミスを防ぎ、正確なデータを手に入れるために確認すべき3つのポイントをまとめました。#N/Aエラーが出る
もっとも多いのが、検索値が指定範囲の中に存在しないケースです。また、見た目が同じでも「全角・半角」の違いや、末尾に「不要なスペース」が混じっていると不一致とみなされます。TRIM関数を使って余計なスペースを一括削除したり、入力内容を再確認しましょう。
数値が文字列として認識されている
抽出が失敗する原因の多くは、データ型の不一致です。一方が「数値」、もう一方が「文字列としての数字」になっていると、エクセルは別物として判断します。VALUE関数を使って数値化するか、セルの書式設定を「標準」や「数値」に変更してデータ型を揃えてください。
結合セルがある
セルが結合されていると、フィルター機能が一部の行を飛ばしてしまったり、関数の参照範囲がズレたりする原因になります。データ抽出や分析を前提とする表では、セルの結合を解除し、各セルに値を正しく入力しておくことが重要です。
■エクセルの抽出に関するQ&A
エクセルの抽出に関するQ&Aを紹介します。気になる情報をまとめました。エクセルで条件に合うデータを別シートに自動で抽出するには?
Microsoft 365やExcel 2021以降であれば、FILTER関数を使うのが簡単で、元のデータが変われば抽出先も自動更新されます。 関数を使わない場合は、「データ」タブの「詳細設定(フィルターオプション)」を使用します。この際、抽出先の(別シートの)セルを選択した状態で設定画面を開くのがコツです。エクセルで特定の文字(名前や苗字のみ)を抽出する関数は?
文字数が決まっている場合はLEFT関数やRIGHT関数を使います。 氏名のように文字数が人によって異なる(苗字の長さが違う)場合は、FIND関数やSEARCH関数を組み合わせて「スペース」の位置を特定し、そこまでの文字を抜き出す方法が有効です。プルダウンで選んだ項目に合わせて抽出データを切り替える方法は?
まず「データの入力規則」でプルダウンリストを作成します。次に、FILTER関数の条件部分(引数「含む」)に、そのプルダウンのセルを参照させます。 これにより、プルダウンを切り替えるだけで、表示されるリストが瞬時に切り替わる仕組みを作ることができます。抽出した結果が「#CALC!」エラーになる原因と対処法は?
FILTER関数を使用している場合、条件に一致するデータが1つもないと「#CALC!」エラーが表示されます。 これを防ぐには、関数の第3引数「空の場合」に「"該当なし"」などの文字を指定しておくと、エラーの代わりにその文字が表示されます。関数を使わずに簡単にデータを抽出・集計する方法はある?
「テーブル」機能と「スライサー」を使うのがおすすめです。表をテーブルに変換し「スライサーの挿入」を行うと、ボタンをクリックするだけで視覚的にデータを絞り込むことができます。 また、複雑な集計が必要ない単純な確認であれば、オートフィルター機能で十分な場合もあります。■【まとめ】エクセルのデータ抽出は「関数の使い分け」が正解!
エクセルでのデータ抽出は、表に合わせて最適な関数を選ぶことが効率化の鍵です。標準的な縦長の表には「VLOOKUP」、横長の表には「HLOOKUP」を活用しましょう。さらに、検索値が左端にない場合や複雑なレイアウトには「INDEX関数+MATCH関数」を組み合わせることで、自由自在にデータを取り出せるようになります。ぜひ参考にしてみてくださいね。
※記事内容は執筆時点のものです。最新の内容をご確認ください。

)
