- 公開日:
エクセルで表から抽出して表を作る方法
エクセルにて、表として様々なデータを管理しているという方も多いかと思います。しかし、データ量が多くなればなるほど、表全体の把握が難しくなってしまいます。
この記事では、エクセルに挿入されている既存の表から特定のデータだけを抽出して、新しく別の表を作成する方法をご紹介します。
しっかりとデータを把握するためにも、特定の条件に分けて複数の表を作成してみてください。
エクセルで表から抽出して表を作る方法
エクセルに既に入力されている表から特定のデータだけを抽出して、新しい表を作成する方法をご紹介します。
コピー&ペーストで表を作る
フィルター機能を使って特定のデータだけを抽出後に、コピぺで新しい表を作成する方法をご説明します。

今回は上記画像の表から「担当者」が「伊藤」のデータだけを抽出した表を新しく作成します。
まず、フィルター機能を使って既存の表から「担当者」が「伊藤」のデータを抽出します。
①表の任意のセル(例:A1セル)、②「データ」タブ、③「フィルター」の順に選択します。

表にフィルターが設定されました。次に、データを抽出します。
B1セル右下の「▼」ボタンを押します。

プルダウンが開きました。
①「伊藤」にだけチェックマークを付けて抽出条件を指定し、②「OK」ボタンを押します。

データが抽出されました。次に、抽出されたデータをコピぺして新しく表を作成します。
見出しを含めた抽出データ(例:A1セルからC8セル)を選択し、Ctrl+Cでコピーします。

新規で表を作成したいセル(例:A12セル)を選択し、Ctrl+Vで貼り付けます。

コピーした抽出データを貼り付けることができました。
以上の操作で既存の表から特定のデータだけを抽出して、新しく表を作成できました。
元の表は改めて「データ」タブの「フィルター」を選択するなどしてフィルターの設定を解除し、正しい状態に戻しましょう。
スライサーでデータを抽出する
スライサーという機能を使うことで、表から特定のデータだけを抽出することもできます。詳しい方法については以下の通りです。

今回はスライサーを使って、上記画像の表から「担当者」が「伊藤」のデータだけを抽出します。
まず、表をテーブルに変換します。
①表の任意のセル(例:A1セル)、②「挿入」タブ、③「テーブル」の順に選択します。

「テーブルの作成」ダイアログボックスが表示されました。
正しい表の範囲がダイアログボックスに記載されていることを確認してください。
問題なければ①「先頭行をテーブルの見出しとして使用する」にチェックマークを付け、②「OK」ボタンを押します。

表がテーブルに変換されました。次に、スライサーを作成してデータの抽出を行います。
①テーブルの任意のセル(例:A1セル)、②「テーブルデザイン」タブ、③「スライサーの挿入」の順に選択します。

「スライサーの挿入」ダイアログボックスが表示されました。
①抽出条件を検索したい項目(例:担当者)にチェックマークを付け、②「OK」ボタンを押します。

スライサーが作成されました。
抽出条件(例:伊藤)を選択します。

指定した条件のデータのみ抽出できました。
抽出したデータを基に新しい表を作成したい場合には、「コピー&ペーストで表を作る」セクションの「STEP 4」以降と同様の操作を行います。
フィルターオプションで表を作る
フィルターオプションを使って特定のデータだけを抽出し、新しい表を作成する方法をご説明します。

今回は上記画像の表から、フィルターオプションを使って「担当者」が「伊藤」のデータだけを抽出した表を新しく作成します。
まず、表の見出しを含めた抽出条件を任意の空白セルに作成します。
E1セルに「担当者」、E2セルに「伊藤」をそれぞれ入力します。

抽出条件を作成できました。次に、フィルターオプションを使って表を新しく作成します。
①「データ」タブ、②「詳細設定」の順に選択します。

「フィルター オプションの設定」ダイアログボックスが表示されました。
まず、「リスト範囲」に正しく表の範囲が認識されていることを確認してください。
間違っている場合には、「リスト範囲」の「↑」ボタンを押して表の範囲を選択し直しましょう。
問題なければ①「指定した範囲」を選択し、②「検索条件範囲」の「↑」ボタンを押します。

①先ほど作成した抽出条件(例:E1セルからE2セル)を選択します。
ダイアログボックスに選択した範囲が正しく記載されていることを確認し、②「↓」ボタンを押します。

1つ前の画面に戻りました。
「抽出範囲」の「↑」ボタンを押します。

①新規で表を作成したいセル(例:A12セル)を選択します。
ダイアログボックスに選択したセルが正しく記載されていることを確認し、②「↓」ボタンを押します。

既存の表、抽出条件、新規表の作成先をすべて指定できました。「OK」ボタンを押します。

フィルターオプションを使って既存の表から特定のデータだけを抽出し、新しく表を作成することができました。
FILTER関数で表を作る
FILTER関数を使って、特定のデータだけを抽出した表を新規作成する方法をご説明します。
ただし、FILTER関数はExcel 2021以降またはMicrosoft 365でのみ使用可能です。 Excel2019以前のバージョンでは使用できないため、ご注意ください。

今回は上記画像の表から、FILTER関数を使って「担当者」が「伊藤」のデータだけを抽出した表を新しく作成します。
まず、抽出条件を任意の空白セルに作成します。
E2セルに「伊藤」を入力します。
また、FILTER関数では表の見出しは自動作成できないため、必要に応じて入力しておきましょう。

抽出条件を作成できました。次に、数式を入力して表を新しく作成します。
新規で表を作成したいセル(例:A13セル)に「=FILTER(A2:C9,B2:B9=E2,"")」を入力し、Enterを押します。
FILTER関数の書式は、「=FILTER(配列,含む,[空の場合])」です。
「配列」には、見出しを除いた表の範囲(A2:C9)を入力します。
また、「含む」で抽出条件を検索したい範囲(B2:B9)と抽出条件(E2)を「=」でつなぐことで、データの抽出を行います。
そして「空の場合」に「""」を入力することで、抽出条件に当てはまらないデータは表示されなくなります。
FILTER関数の詳細については、以下の記事でご説明していますのでぜひご参考にしてください。

入力した数式によって、特定のデータだけが抽出されました。
FILTER関数を使って既存の表から特定のデータだけを抽出し、新しく表を作成することができました。
VBAで表を作る
VBAを使って、特定のデータだけを抽出した表を新規作成する方法をご説明します。

それでは上記画像の表から、「担当者」が「伊藤」のデータだけを抽出した表を新しく作成するためのマクロを設定していきます。
①「開発」タブ、②「Visual Basic」の順に選択します。

「Microsoft Visual Basic for Applications」ダイアログボックスが表示されました。
①「挿入」タブ、②「標準モジュール」の順に選択します。

標準モジュールが挿入されました。以下のコードをコピーして貼り付けます。
Sub ExtractItoEvents()
Dim ws As Worksheet, newWs As Worksheet, r As Long, c As Long
Set ws = ThisWorkbook.Worksheets("元のシート名")
Set newWs = ThisWorkbook.Worksheets.Add
newWs.Name = "新規シート名"
ws.Rows(1).Copy Destination:=newWs.Rows(1)
c = 2
For r = 2 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
If ws.Cells(r, c).Value = "抽出条件" Then
ws.Rows(r).Copy Destination:=newWs.Rows(newWs.Cells(newWs.Rows.Count, "A").End(xlUp).Row + 1)
End If
Next r
End Sub
「元のシート」は既存の表が挿入されているシート名、「新規シート」は新規表の作成先シート名、「抽出条件」は抽出する条件(例:伊藤)にそれぞれ変更してください。
また、「ws.Rows(1)」は既存の表が何行目から作成されているのかを指定しています。2行目から表が作成されている場合は、「ws.Rows(2)」に編集してください。
そして「c = 2」では、抽出条件をチェックする列を指定します。抽出条件をA列でチェックするのであれば「c = 1」、B列でチェックするのであれば「c = 2」を入力してください。

次に、入力したコードを保存します。
①「ファイル」タブ、②「(ファイル名).xlsx の上書き保存」の順に選択します。

「次の機能はマクロなしのブックに保存できません:」と記載されたダイアログボックスが表示されました。
「戻る」ボタンを押します。

「名前を付けて保存」ダイアログボックスが表示されました。
①任意の保存先(例:デスクトップ)を選択し、②ファイル名(例:VBAで表を作る)を入力します。
③「ファイルの種類」で「Excel マクロ有効ブック」を選択し、④「保存」ボタンを押します。

マクロを設定できました。次に、マクロを実行して新しく表を作成します。
①「開発」タブ、②「マクロ」の順に選択します。

「マクロ」ダイアログボックスが表示されました。
①作成したコードを選択し、②「実行」ボタンを押します。

VBAを使って既存の表から特定のデータだけを抽出し、新しく表を作成することができました。
特定のデータだけを抽出できる関数について
エクセルでは、FILTER関数以外にも条件を指定することで特定のデータだけを抽出できる機能を持つ関数がいくつか搭載されています。
以下の記事にて、データを抽出する際に役立つ関数をそれぞれ詳しくご紹介しています。
関数は数式を入力するだけで簡単に使用できますので、作業効率を上げたい方は、ぜひお試しください。