いまさら聞けないExcelの使い方講座
【Excel】特定項目別に表を分割するならコピペじゃ非効率 ~簡単&効率的にするには?
2025年7月16日 06:55
目視で確認? フィルター&コピペはもう卒業
作成済みの表から一部の情報を取り出す作業がありますよね。例えば、カテゴリごとに別々の表に振り分けたいようなケースです。フィルターで絞り込んでコピー&ペーストといった操作を思いつきますが、カテゴリの数だけ同じ作業を繰り返すのは非効率です。
このような作業は「FILTER関数」を使うのが簡単です。名前の通りフィルターをかける関数なので、あまり注目されませんが、いろいろなシーンで活用できる優れものです。実際に使ってサッと必要なデータを取り出してみましょう。
見出しを条件にして取り出す
FILTER関数の構文は以下の通りです。取り出したいセル範囲を引数[配列]に指定します。ここでは[氏名]列だけを取り出したいので、セルB2~B31となります。[含む](条件)の指定方法がポイントです。例えば、[システム名]列の中から、「営業支援ツール」を検索したい場合は「$D$2:$D$31=G1」のように指定します。

複数列を取り出す
例えば、氏名と利用権限のように離れたセル範囲を同時に取り出したい場合は「HSTACK関数」を利用します。構文は以下の通り。指定した[配列](セル範囲)を横方向に並べます。

数式は以下のように、FILTER関数の[配列]にHSTACK関数を組み合わせます。
=FILTER(HSTACK($B$2:$B$31,E2:E31),$D$2:$D$31=G1)
条件を追加する
FILTER関数は、複数の条件を指定することもできます。[含む](条件)を「*」でつなげるだけで、AND条件となります。例えば、システム名と利用権限を条件にする場合は、以下のように指定します。
=FILTER($B$2:$B$31,($D$2:$D$31=$G$1)*($E$2:$E$31=G2))
ちなみに、OR条件の場合は「+」でつなげて、引数[含む]に指定します。フィルターボタンを使った絞り込みよりも、FILTER関数のほうが便利なこともあるので、ぜひ活用してください。