エクセルで表から抽出して別表を作る!Filter関数&最新自動化術

エクセルで表から抽出して別表を作る!Filter関数&最新自動化術の特集記事をお届けします。役立つ情報が詰まっています。

条件に合致するデータだけを行ごと抜き出して別表を仕立てる際、現代の第一選択肢となるのがFILTER関数です。従来のVLOOKUP関数やXLOOKUP関数は基本的に「最初に見つかった1件」を取得する設計ですが、FILTER関数は「条件に当てはまる全レコード」を行・列ごと一括抽出します。

基本構文は極めてシンプルです。

=FILTER(配列, 含む, [空の場合])

例えば、元データが「売上一覧」シートのA2:E1000にあり、「東京支社」のデータだけを別シートに抽出して表を作りたい場合、別シートの先頭セル(A2など)に以下の数式を記述するだけで完了します。

=FILTER('売上一覧'!A2:E1000, '売上一覧'!C2:C1000="東京支社", "該当データなし")

第1引数に抜き出したい元の表範囲、第2引数に抽出条件(C列が東京支社)、第3引数に合致するデータが0件だった場合のメッセージを指定します。これだけで、ヘッダーを除く全対象データが別シートに一瞬で展開されます。ヘッダー(見出し行)は元データからコピーしておくか、数式上部に固定配置しておくだけで美しい別表が完成します。

複数条件(AND / OR)を組み合わせた高度な抽出テクニック

実務では「東京支社かつ売上100万円以上(AND条件)」や、「東京支社または大阪支社(OR条件)」といった複数条件の抽出が頻繁に求められます。FILTER関数では、条件式同士を「*(アスタリスク=AND)」や「+(プラス=OR)」で結合することで自在に制御可能です。

  • AND条件の例(東京支社 かつ 金額が1,000,000以上):
    =FILTER('売上一覧'!A2:E1000, ('売上一覧'!C2:C1000="東京支社") * ('売上一覧'!E2:E1000>=1000000), "該当なし")
  • OR条件の例(支社が 東京 または 大阪):
    =FILTER('売上一覧'!A2:E1000, ('売上一覧'!C2:C1000="東京支社") + ('売上一覧'!C2:C1000="大阪支社"), "該当なし")

条件式をカッコ () で囲むのが構文エラーを防ぐ鉄則です。この数式をマスターすれば、複雑な抽出条件でもマクロなしで一瞬で別表化できます。

UNIQUE関数・SORT関数と連携した重複排除・並び替え

抽出した表から重複を取り除いてユニークなマスター一覧を作りたいケースでは、UNIQUE関数を外側にネストします。

=UNIQUE(FILTER('売上一覧'!C2:C1000, '売上一覧'!E2:E1000>=500000))

さらに、抽出結果を五十音順や売上金額の高い順に並び替えて表示したいなら、SORT関数でラップします。複数の関数を組み合わせることで、手作業なら何十分もかかる「抽出・重複削除・並び替え」が、たった1行の数式でリアルタイム処理されます。

山本 拓海

山本 拓海

ヘルス&ウェルネスアドバイザー

デジタルガジェットとスマート家電の検証記事を多数執筆。失敗しないモノ選びを提案します。