PR

ExcelのFILTER関数とは?複数条件の設定方法やエラーメッセージ対応まで徹底解説!

Eyecatch_Excel_FILTER Excel
Eyecatch_Excel_FILTER
記事内に広告が含まれています。

Excelで、こんなお悩みを持ったことはないでしょうか?

・特定の条件に合うデータだけを自動で抽出したい
・毎回フィルターを手動で設定するのが面倒。。。

そんなときに便利なのが、Excelの「FILTER関数」です。

FILTER関数を使えば、条件に合うデータをリアルタイムで抽出でき、作業の効率がグッと上がります。

この記事では、初心者の方でも使いこなせるよう、次のポイントを分かりやすく解説していきます。

・FILTER関数の基本構文と使い方
・単一条件/複数条件での抽出方法

・あいまい検索での抽出方法
・抽出対象がない場合のエラーメッセージ表示
・SORT関数と組み合わせて並び替える方法

ぜひ最後まで読んでいただけると幸いです。

FILTER関数って何?

FILTER関数は、指定した範囲の中から特定の条件に一致するデータを抽出します。
従来のフィルター操作より柔軟で、リアルタイムにデータが更新されるのが特長です。

例えば、
 ・営業部の社員だけを別シートに表示したい
 ・勤続年数が5年以上、かつ正社員だけのデータを抽出したい

といった場面で活用できます。

オートーフィルターのように手動で操作する必要がなく、関数だけで動的に抽出されるため、月次レポートや人事一覧の自動更新にも最適です!

FILTER関数は、以下のように記述します。

=FILTER(array,include,[if_empty]

それぞれの説明は以下の通りです。

引数説明
array抽出したいデータの範囲
include抽出条件を指定する論理式
if_empty条件に一致するデータがなかった場合に表示する値
※省略可能

実際に使ってみないと分かりにくいですよね。。。
そこで、これからパターン別の活用方法を図解付きで紹介していきます。

【実践編】FILTER関数の使い方

ではさっそく、FILTER関数を活用していきましょう!
こちらでは、実際にFILTER関数を実行する方法をいくつか紹介していきます!

今回は、
 ・一つの条件でフィルターをかける場合
 ・複数の条件でフィルターをかける場合(2つ、3つ)
 ・あいまい条件でフィルターをかける場合
 ・フィルター条件に合致するものがない場合にメッセージを出す場合
 ・SORT関数との組み合わせ方

と分けて紹介していきますね。

■今回使用する表はこちら↓↓
こちらの表をもとに、FILTER関数を使っていきたいと思います。

一つの条件でフィルターをかける場合

まずは、この条件の場合フィルターをかけたい!とうケースを紹介します。

今回は、
 ・「部署」が「営業部」
を条件として、データを抽出しました。記載方法は以下の通りです。

=FILTER(FILTER_データ!A2:E13,FILTER_データ!C2:C13="営業部")
image_excel-formula_filter_one-condition_No1

しっかり、「営業部」のデータだけ抽出することができましたね!

複数の条件でフィルターをかける場合(2つ)

複数の条件でフィルターをかけたいな~

というときもありますよね。もちろん、設定可能です!
条件を2つ設定する場合、乗算演算子「*」を使用します。

今回は、
 ・「部署」が「総務部」
 ・「勤続年数」が5年以上

を条件として、データを抽出しました。記載方法は以下の通りです。

=FILTER(FILTER_データ!A2:E13,(FILTER_データ!C2:C13="総務部")*(FILTER_データ!D2:D13>=5))
image_excel-formula_filter_multiple-conditions_No1

複数の条件でフィルターをかける場合(3つ)

条件を3つ設定することも可能です。

今回は、
 ・「部署」が「営業部」
 ・「勤続年数」が5年以上
 ・「雇用形態」が「正社員」

を条件として、データを抽出しました。記載方法は以下の通りです。

=FILTER(FILTER_データ!A2:E13,(FILTER_データ!C2:C13="営業部")*(FILTER_データ!D2:D13>=5)*(FILTER_データ!E2:E13="正社員"))
image_excel-formula_filter_multiple-conditions_No2

あいまい条件でフィルターをかける場合

このワードが入っていたら、データを抽出したいな~

というとき、結構あると思います。
しかしFILTER関数の場合、どうやらワイルドカード(*)が使えないようで、、

あいまい条件でフィルターをかけたい場合は、FIND関数を使うと解決できます。

=FILTER(FILTER_データ!A2:E13,IFERROR(FIND("務",FILTER_データ!C2:C13),0))
image_excel-formula_filter_fuzzy-search_No1

※FIND関数って何?

→対象の範囲から、特定の文字列があるかどうかを調べることができる関数です。
(対象の文字列がある場合、対象文字列の開始位置を返します)

=FIND(検索文字列,対象,[開始位置])

それぞれの説明は以下の通りです。

引数説明
検索文字列検索したい文字列を指定
対象検索したい文字列がある範囲を指定
開始位置「対象」の文字列で、何文字目から検索するかを決めたい場合に指定
※省略可能

例)「営業部」という文字列で「業」は2番目にある文字列のため、「2」が結果として返ってきます。

フィルター条件に合致するものがないときにメッセージを出す場合

条件に合致するデータがないとエラーが発生しますが、エラーメッセージを表示することもできます。

以下の場合は、
 ・「勤続年数」が11年以上
を抽出しようとしていますが、対象データがないため、エラーが発生します。

そのため、[IF_EMPTY]欄に表示したいメッセージを入力すると、エラー発生時にメッセージを表示することができます。
※[IF_EMPTY]欄に記述がないと、「#CALC!」というエラーが表示されます。

=FILTER(FILTER_データ!A2:E13,FILTER_データ!D2:D13>=11,"対象データがありません")
image_excel-formula_filter_error-message_No1

SORT関数と組み合わせ、並び替えて抽出することも可能

フィルターをかけることはできたけど、データの並び替えをしたいな~

もちろん可能です!
SORT関数と組み合わせることで、抽出したデータを並び替えることも可能です。

今回は、
 「雇用形態」が「正社員」
 ・「勤続年数」が長い順に並び替える

を条件として、データを抽出しました。記載方法は以下の通りです。

=SORT(FILTER(FILTER_データ!A2:E13,FILTER_データ!E2:E13="正社員"),4,-1)

SORT関数については補足で詳細を記載していますが、今回は
 ・「4」→4列目(=勤続年数)
 ・「-1」→降順(上から数が大きい順番に並び替える) 
※昇順(上から数が小さい順番に並び替える)の場合、「1」もしくは引数自体を省略
で並び替えをしています。

image_excel-formula_filter_sort-combination_No1

しっかり勤続年数が長い順番でフィルターをかけることができました!

※SORT関数って何?

SORT関数とは、指定した範囲または配列の順番を並び替えします。

=SORT(array,[sort_index],[sort_order],[by_col])

それぞれの説明は以下の通りです。

引数説明
array並び替えしたいデータの範囲
sort_index並び替えの基準となる行または列を示す数値 ※省略可能
sort_order目的の並び替え順序を示す数値 ※省略可能
・昇順の場合は1(規定値)
・降順の場合は-1
by_col目的の並び替え方向を示す論理値 ※省略可能
・FALSEの場合は「行」で並び替え(規定値)
・TRUEの場合は「列」で並び替え

まとめ:FILTER関数で、Excel業務をもっとスマートに!

FILTER関数は、Excel業務を効率化する強力な関数です。

オートフィルターとの違いは、
・元データには影響しないこと(新しい範囲に数式で表示)
・条件を数式などで設定しておくと、自動的に条件が反映される

など様々あります。

SORT関数との連携までマスターすればさらに便利に!
使いこなして、作業効率をグングン上げていきましょう!

最後まで読んでいただき、ありがとうございました!

コメント

タイトルとURLをコピーしました