FILTER関数の使い方|条件一致のデータを表から全て抽出
ここでは、エクセルの「FILTER(フィルター)関数の基本~応用的な使い方」をページを分けて解説します。
このページではまず、FILER関数の基本的な使い方の説明です。
1.FILTER(フィルター)関数とは?動きを確認
まずは、FILTER関数とはどんな関数か、その基本的な動きを見てみます。
1-1.FILTER(フィルター)関数とは
FILTER関数とは、「条件に合うデータのみを選別(フィルタリング)してすべて抜き出す」ことができる関数です。
FILTER関数の特徴は、次の通りです。
- 数式を入れるのは「左上のセルの1ヶ所」だけ
- 使えるバージョンは「Office365」とExcel2021」のみ
- 引数の名称がわかりづらい
- 慣れるとすごく便利
FILTER関数を使えるのは、今のところ「Office365」と「Excel2021」のみです。
その他の特徴は、この後見ていきます。
1-2.FILTER関数はフィルター機能と似ている
FILTER関数を使った時のイメージは、エクセルの機能の一つ「フィルター機能」を思い出すと分かりやすいです。
フィルター機能とは、「入力データの中から特定の条件を満たすデータだけを抽出できる」機能のことです。
一つ例を見てみましょう。
上の表から、「部署名」が「総務部」のデータだけを表示させてみます。
フィルター機能で条件を指定すると…
上のように、「総務部」の行だけが表示されるようになります。
これと同じようなことができるのが、FILTER関数です。
フィルター機能とFILTER関数の違いは、「FILTER関数は元の票を残したまま別のセルに抽出できる」ことです。
1-3.FILTER関数の動きを確認
では、例で関数の動きを見てみましょう。
上の表は、ある企業の出張実績をまとめたものです。
例えばこの表から「総務部」のデータのみを抜き出したい時、FILTER関数を使うと次のようになります。
セルA12からG14までのように、条件に当てはまるデータが上の表から全て抜き出されました。
何度もですが、数式を入れたのは「セルA12」のみです。FILTER関数は、一つのセルに数式を入れるだけで、セルA12からG14までの表を自動で作ってくれます。
「条件に合うデータ全てを簡単に抜き出せる」、これがFILTER関数です。
2.フィルター関数が使えない時の代用方法
次に、「フィルター関数が使えない時の代用方法」についてです。
2-1.フィルター関数は使えないバージョンがある
FILTER関数は、今のところ「Excel2021」か「MicroSoft365」以外では使うことができません。
特に困るのは、「パソコンによってOfficeのバージョンが異なる時」です。
例えば、職場にあるExcel2021のパソコンでFILTER関数を使って数式を作っても、別のパソコンがExcel2019とかだとエラーになってしまいます。
2-2.フィルター関数の代わりになる数式がある
FILTER関数の代用になる数式は、他の関数を組み合わせることで作ることができます。
「ひとつのセルに数式を作る」→「他のセルにコピーする」という手順で、FILTER関数よりも面倒ですが、この方法だとFILTER関数と同じことができ、古いバージョンのエクセルでもエラーなく開くことができます。
数式の形や作り方は、次のページで解説しています。
3.FILTER関数の形と引数の役割
次に、FILTER関数の数式の形(構文)、引数の役割を見てみます。
3-1.FILTER関数の形(構文)
FILTER関数の数式の形は、次の通りです。
このように、FILTER関数は「元データの範囲(=配列)」、「条件式(=含む)」「空の場合(に何を表示するか?)」の3つを指定することで動きます。
ただし「空の場合」は省略可能で、その場合「空白」を指定したことになります。
3-2.数式の例から引数の役割を確認
数式の例と構文を見比べることで、引数の役割を確認します。
先ほどの例で、セルA12に入れた数式は次の通りです。
=FILTER(A4:G9,F4:F9="総務部")
そして、FILTER関数の構文は次の通りでした。
セルA13の数式を構文に当てはめると、引数ごとに指定した内容は次のものであることが分かります。
- 配列(元データの範囲):A4:G9
- 含む(条件式):F4:F9="総務部"
- 空の場合:(省略)
結果FILTER関数は、「部署名に『総務部』と入ったデータのみ」を「元データ」から抽出しています。
つまり、「配列」は「元データの範囲」を、「含む」は「条件式」を指定するところなのです。
4.FILTER関数の使い方
続いて、「FILTER関数の使い方」です。
FILTER関数を使って、実際に「条件に合うデータを抽出」してみましょう。
使う例は先ほど紹介した出張実績の一覧表で、部署名が総務部のみのデータを抜き出す数式を入れてみます。
なお、引数の指定の仕方はこの後解説するため、ここでは数式作りの流れだけを確認してください。
以下手順です。
(1)(表示させたい左上の)セルを選択する
(2)セルに「=FILTER(」と入力する
(3)「配列」を指定後「,」を入力する
※ 範囲指定はマウスで左ドラッグすると簡単です
(4)「条件を判定する範囲」を指定する
※ 範囲指定はマウスで左ドラッグすると簡単です
(5)「比較演算子」を入力する
※ 等しいは「=」、以外は「<>」、以上は「>=」、以下は「<=」です
(6)「条件値」を入力する
※ 文字列や日付、時刻は「"」で囲み、数値やセル番号はそのまま入力します
(7)Enterを押せば完了
結果、数式は次のようになります。
実際にやってみると分かりますが、セルA12に数式を入れただけで赤枠内のように表示されます。
本当に便利ですね。
【口コミ・評判のいいExcel本の紹介】
5.各引数の指定の仕方を詳しく
最後に、3つの引数の指定の仕方をもう少し見てみます。
5-1.「配列」には「元データの範囲」を入れる
「配列」には、「元データの範囲」を指定します。
例えば、元データの範囲が「A5からC10」だった場合、数式は、
=FILTER(A5:C10,~)
となります。
5-2.「含む」には「条件式」を入れる
「含む」には、「条件式」を指定します。
条件式は、
判定対象の範囲 → 比較演算子 → 条件値
の順で指定します。
それぞれの指定の仕方は、以下の通りです。
- 判定対象範囲:条件を指定したい範囲を1列指定
- 比較演算子:=,>,<,>=,<=,<>のどれかを指定
- 条件値:数値・セル番号はそのまま、文字列や日付、時刻は「"」で囲んで指定
結果数式は、条件値ごとに次のようになります。
- 数値の場合:=FILTER(A5:C10,B5:B10>=50)
- セル番号の場合:=FILTER(A5:C10,B5:B10>=A1)
- 文字列の場合:=FILTER(A5:C10,B5:B10="東京都")
- 日付の場合:=FILTER(A5:C10,B5:B10>="4/1")
- 時刻の場合:=FILTER(A5:C10,B5:B10>="9:00")
例えば、条件を「B5からB10が『50以上』か?」としたい場合、数式は、
=FILTER(A5:C10,B5:B10>=50)
です。
5-3.「空の場合」は省略する(何も入れない)
「空の場合」には、「条件に合うものが一つもない時に表示させたいもの」を指定しますが、基本的に「指定しないでOK」です。
指定しないと、条件に合うものが一つもない場合には「自動的に空白」になります。
ただし、「該当なし」など表示したいものがある場合には、「条件値」と同様の入れ方でいれます。
5-4.「配列」と「含む」の行番号は合わせること
一つ注意が必要なのが、「配列」と「含む」の「行番号を合わせる」ことです。
合わせないとエラーになります。
上の数式で言うと、「配列の5」と「含むの5」、「配列の10」と「含むの10」が一緒ということです。
行は「縦の範囲」です。FILTER関数は、特にこの点に注意しましょう。
以上、FILTER関数の基本的な使い方でした。参考になれば幸いです。
なお、FILTER関数で複数条件指定する方法は、次のページで解説しています。
⇒ FILTER関数で複数条件をAND(全て満たす)で指定する方法
FILTER関数に関連したページは、次の通りです。
- FILTER関数 使いこなすためのポイントはこちら
- ◎基本的な使い方
- ◎複数条件をANDで指定する方法
- ◎複数条件をORで指定する方法
- ◎条件に不一致のデータを抽出する方法
- ◎期間指定する方法
- ◎含む条件の指定の仕方
- ◎含まない条件にする方法
- ◎検索条件を「空白以外」とする方法
- ◎空白セルを0にしない方法
- ◎結果を別シートに表示させる方法
- ◎SORT関数との組み合わせ方
- ◎配列を複数条件にする方法
- ◎必要な列だけ抽出する方法