- Excelのデータ抽出にはテーブル機能のスライサーが便利
- スライサーで特定のデータを抽出する方法
- 別シートにデータ抽出するならフィルターオプションを使う
- 複雑な条件を指定するなら「FILTER関数」が便利
- Excelで必要な項目だけ抽出する際に便利な関数
- 関数を使えばExcelでスムーズにデータ抽出できる
Microsoft Excel(以下、Excel)でデータ抽出ができれば、仕事で膨大なデータベースから該当するデータだけを見たいときに便利です。データ抽出には、スライサーやFILTER関数などを使います。
今回はExcelでデータ抽出する方法を、手順ごとにわかりやすく解説します。
Excelのデータ抽出にはテーブル機能のスライサーが便利
Excelでデータを抽出する際は、テーブル機能を活用すると便利です。テーブル機能とは、テーブルを挿入してフィルターや並べ替えができる機能を指します。
テーブル機能の基本的な使い方は以下の記事も解説しているので、詳しく知りたい方はこちらも参考にしてください。
【関連記事】名簿作成はエクセルなら簡単作成!理解すれば簡単・便利な時短テクニック
特定のデータを抜き出す際に使うのが、テーブル機能の中の補助的機能である「スライサー」です。スライサーを使えば、ワンクリックでフィルターをかけられます。
通常のフィルターを使う場合、表頭の逆三角ボタンをクリック(手順①)、「すべて選択」を一度押してチェックを全解除(手順②)、見たいデータにチェック(手順③)、OKをクリック(手順④)と4つのステップを踏まなければなりません。さらに、「複数の項目でフィルターをかけたい」となれば、より多くの手間がかかります。
一方、スライサーを使うと見たい項目を1クリックするだけでフィルターをかけられます。
スライサーで特定のデータを抽出する方法
ここから、スライサーを使う際の手順を詳しく解説します。
手順①:テーブルを用意する
まずは、特定のデータを抽出するテーブルを用意します。今回は、Excelに店舗別で販売価格・仕入価格(月単位)を入力した、以下のデータベースを活用します。
データベースが入力されているシートで、「挿入」タブを選択し、「テーブル」をクリックしましょう。続いて、今回テーブルにする範囲を指定したら、「OK」をクリックします。
これで、以下のように、テーブルを作成できました。
それでは、このテーブルにスライサーを挿入していきましょう。
手順②:「スライサーの挿入」をクリックする
テーブル上にカーソルを持っていくと「テーブルツール(デザイン)」というタブが表示されます(*表をテーブルにしていなければ、表示されません)。そのなかにある「スライサーの挿入」をクリックしてください。
すると、「スライサーの挿入」というダイアログボックスが表示されます。
手順③:見たい項目をチェックしてスライサーを表示する
表示されたダイアログボックスの中には、テーブルの表頭項目が並んでいるはずです。その中から、抽出したい項目を選び、チェックを入れます。
例えば、店舗別データを見たいのであれば「店舗名」、月別データを見たいのであれば「月」にチェックを入れましょう。
チェックを入れてOKを押すと、スライサーが登場します。
手順④:具体的な項目を選択してデータを抽出する
各項目のスライサーには、それぞれのデータ内容(店舗名であれば、横浜、渋谷、千葉、大宮)が表示されています。この中から、具体的な項目を選択してデータを抽出していきましょう。
例えば、「横浜と渋谷の飲みもののデータを見たい」という場合には、店舗名で「横浜」・「渋谷」、商品で「お茶」・「ジュース」を選択します。そうすると自動的にテーブルにフィルターがかかるという仕組みです。
スライサー内の項目を複数選択したい場合には、スライサーウィンドウ上部左のボタンを押し、フィルターを解除したい場合には上部右のボタンを押しましょう。
なお、スライサーは通常のオブジェクト(図形)扱いなので、選択してBack Spaceキーを押せば簡単に削除できます。
【無料診断】あなたの仕事力はどれぐらい?リモート・在宅ワークに役立つ仕事力をチェック
別シートにデータ抽出するならフィルターオプションを使う
元のデータから条件に当てはまるデータを「別シートに抽出したい」という場合には、フィルターオプションを使うのがおすすめです。先ほどのデータベースを使って、別シートにデータを抽出する方法を解説します。
手順①:データ抽出用シートに条件項目を入力する
最初に、条件となる項目をデータ抽出用のシートに入力しておきます。今回は、横浜の店舗を抽出するため、新たに作成したシート(データ抽出用)に「店舗名」と「横浜」を入力しておきました。
手順②:「フィルターオプションの設定」をする
次に、「データ」タブを選択し、並べ替えとフィルター内の「詳細設定」をクリックします。
「フィルターオプションの設定」のダイアログが表示されたら、各項目に入力していきましょう。
抽出先:「指定した範囲」
リスト範囲:データベース全体を指定
検索条件範囲:データ抽出用シートの条件項目のセルを指定
抽出範囲:データ抽出用シート上で、抽出したデータを表示させたいセルを指定
今回は、「元データ」シートのテーブル全体を「リスト範囲」として指定します。
また、「検索条件範囲」には「店舗名」「横浜」のセルを指定しました。
*下図では、便宜上「データ抽出用!Criteria」となっていますが、「データ抽出用!$A$1:$A$2」とセル番号で指定して構いません。
続いて、シートで空白がある任意の場所を「抽出範囲」に指定します。
「フィルターオプションの設定」にある全項目を入力し終えたら、「OK」をクリックしましょう。
手順③:条件を満たすデータが抽出される
以下のように、条件を満たすデータが抽出されます(今回は横浜の店舗の店舗コード・月・販売価格・仕入価格が表示)。
【無料診断】そのモヤモヤの原因は?キャリアのヒントが見つかる「モヤモヤ解消診断」
複雑な条件を指定するなら「FILTER関数」が便利
複雑な条件を指定する場合は、「FILTER関数」が便利です。ただし、この関数はOffice 365(サブスクリプション)もしくはExcel2021(2021年10月5日発売)のみで使用可能で、Office2019以前のバージョンでは使えないので注意しましょう。
ここから、FILTER関数について詳しく解説します。
FILTER関数とは
FILTER関数とは、「=FILTER(配列 , 含む , [空の場合])」で定義される関数です。指定した条件に基づき、データの範囲をフィルター処理できます。
FILTER関数の活用例
FILTER関数を使って、下記データベースから「ジュース」の列のみを抽出してみましょう。抽出した項目を見やすくするため、E列・F列・G列に「店舗名」「商品」「販売価格」をあらかじめ入力しています。
今回は、各引数を以下のように指定します。
配列:A2:C19
含む:B2:B19="ジュース"
空の場合:省略可能
上記を引数にしてFILTER関数を入力すると、「ジュース」を含む列が抽出できます。
FILTER関数は条件を式で表すことができるので「販売価格200円以上のデータを抜き出したい(この場合は、含むの項目を「≦200」とする)」などの条件指定もできます。FILTER関数内で複数の条件(「かつ」の場合)を指定する場合は、*で条件をつないでください(「または」として指定する場合は+を使う)。
新たな条件を加えたことで、以下では「横浜」「ジュース」「370」の行が表示されなくなりました。
なお、「特定の店舗だけのデータを見たい」「ある商品のデータを抽出したい」など条件が限定されている場合は、最初に説明したスライサーのほうがシンプルで便利です。
Excelで必要な項目だけ抽出する際に便利な関数
スライサーやFILTER関数では、必要なデータ(行)を丸ごと抽出していました。一方、VLOOKUP関数やDGET関数のように、値(項目)だけを取り出す関数もあります。ここから、いくつか紹介します。
VLOOKUP関数
VLOOKUP関数とは、指定した範囲内で検索条件に一致するデータを抽出する関数です。引数に検索値・範囲・列番号・検索方法(近い値を探すならTRUE、完全一致の値を探すならFALSE)を入力します。
例えば、各店舗の店舗コードがわからなくなった場合、VLOOKUP関数を使って数値を抽出できます。下の例では、VLOOKUP関数でまず横浜の店舗コードを抽出してから、オートフィルで他店のコードも入力しています。
縦方向を検索して値を抽出するVLOOKUP関数に対し、横方向を検索して抽出するHLOOKUP関数もあります。また、新たに登場したXLOOKUP関数は、縦にも横にも対応した関数です。
VLOOKUP関数・HLOOKUP関数・XLOOKUP関数の詳しい使い方を知りたい方は、以下の記事を参考にしてください。
<関連記事>【Excel】朗報!これでVLOOKUPいらず!? 新たに登場するXLOOKUP関数とは?
INDEX関数とMATCH関数の組み合わせ
INDEX関数とMATCH関数を組み合わせれば、LOOKUP関数よりも自由に値を抽出できます。INDEX関数とは、対象範囲から指定した行番号・列番号に該当するデータを抽出する関数で、MATCH関数とは対象範囲から指定した値を検索し、数字で場所を示す関数です。
例えば、INDEX関数とMATCH関数を組み合わせることで、自動で調べたい値を表示できます。以下は、「店舗名」「月」「商品」を入力し、自動で販売価格を表示させる例です。
販売価格の部分のセルに、INDEX関数とMATCH関数を組み合わせた関数を入力しました。今回は詳しい説明を省略しますが、入力した店舗名・月・商品が完全に一致する行を表の中(A2からF14まで)から探し出し、その部分の販売価格を表示させるように、INDEX関数とMATCH関数の組み合わせで指示しています。
関数入力後、店舗名に「渋谷」、月に「8」、商品名に「果物」と入れると、自動で販売価格に「112」と表示されました。
INDEX関数やMATCH関数の詳しい使い方を知りたい方は、以下の記事も参考にしてください。
<関連記事>【Excel】あなたのExcelレベルはどれくらい? 上級問題にチャレンジ Vol.5
DGET関数
DGET関数も、対象範囲内で条件に一致する項目を抽出します。LOOKUP関数は基本的にひとつの条件に従うのに対し、DGET関数は複数の条件に対応可能です。
INDEX関数とMATCH関数の組み合わせで作成した販売価格の自動表示が、DGET関数でもできます。INDEX関数とMATCH関数の組み合わせが複雑で理解しにくい場合は、DGET関数を活用するとよいでしょう。
手順①:対象の範囲(データベース)を選択する
自動検索用に作成した「店舗名」「月」「商品」「販売価格」の表を使い、「販売価格」を表示するセルの上でDGET関数を入力(もしくは選択)し、対象の範囲を指定しましょう。今回は、左側にある「店舗名」から「仕入価格」までの表を丸ごと指定します(A1:F14)。
手順②:抽出項目が含まれるセル(フィールド)を指定する
続いて、フィールドを選択しましょう。今回は、入力した条件における「販売価格」を知りたいので、「販売価格」が入力されている表頭のセル(E1)を選択します。
手順③:検索条件を指定する
最後に、検索条件を指定します。今回は、入力した部分(「店舗名」「月」「商品」)に該当する販売価格を知りたいので、該当する部分のセルを選択しましょう。この際、入力する部分のセルだけ(H2:J2)でなく、表頭部分も含めること(H1:J2)が重要です。
これで、DGET関数の入力が完了しました。あらかじめ「渋谷」「12」「おにぎり」と入力していたので、渋谷店における12月のおにぎり販売価格が自動で表示されます(110)。
一度DGET関数を入力しておけば、他の条件を入力した場合も自動で反映されるため便利です。
なお、販売価格に数値が表示されず、「#NUM」や「#VALUE」などのエラーが出力されることがあります。「#NUM」の場合は他にも条件を満たす項目がある、「#VALUE」の場合は条件を満たす項目がない可能性が高いです。
関数を使えばExcelでスムーズにデータ抽出できる
Excelでテーブル機能のスライサーや関数を使えば、手軽にデータを抽出できます。スライサーやFILTER関数はデータベースから対象の行を抽出する際、LOOKUP関数やDGET関数などは対象の値・項目を抽出する際に使うと便利です。
ビジネスでデータ抽出が必要になったら、状況にあった機能や関数を活用して、業務の効率化を図りましょう。
【関連記事】
ピボットテーブルの使い方とは?【図解】作り方の基本から応用まで解説
Excel(エクセル)掛け算の方法は3つ!「*」以外の便利な関数も紹介
【Excel】IF関数を総まとめ!基本の使い方から条件分岐まで紹介