Excelで求めたい条件に一致するデータを抽出したいときはフィルター機能を使いますよね。FILTER関数でも同様の処理が可能なのですが、「それなら関数でなくてもいいのでは?」と疑問に感じる方もいるでしょう。
それでは、作業中にフィルター機能で条件を変えながら絞り込みを繰り返したいとき、元の表を残しておくためにコピぺしてデータを残した経験はありませんか?
実は、FILTER関数を利用することで元の表はそのままで、絞り込んだ結果を別の表として確認できるのです。
このようにFILTER関数にはメリットもありますので、ぜひ本記事を参考に基本的な使い方をマスターしましょう。
なお、FILTER関数はMicrosoft 365のExcelとExcel 2021で利用可能です。ご自身のExcelで利用できるかバージョンを確認してくださいね。
目次
FILTER関数の使い方
FILTER関数とは、条件に基づいてデータの範囲をフィルター処理する関数です。
構文は次の通りです。
FILTER(範囲, 条件, 一致しない場合の値) |
範囲:対象のデータの範囲を指定します。
条件:範囲の中から抽出する条件を指定します。
一致しない場合の値:条件に一致する行がない場合に表示する値を指定します。
1.ひとつの条件に一致するデータを抽出する方法
それでは実際に使ってみましょう。
基本的な使い方として商品の評価結果をまとめたリストを使って、ひとつの条件を指定してデータを絞り込んでみたいと思います。
1つ目の引数[範囲]は、絞り込む対象のセル範囲を列見出しを含めずに指定します。
表全体を指定することが通常ですが、連続したセル範囲であれば表の一部を指定することも可能です。
2つ目の引数[条件]には、文字の比較や数値の大小など、データを絞り込む条件を指定します。例題では「総合評価がA」のデータを抽出します。
なお、3つ目の引数[一致しない場合の値]は省略しています。
あらかじめG1~K1にはFILTER関数の結果として得られる表の見出しを入力し、セルG2に「=FILTER(A2:E10,E2:E10=”A”)」と入力します。
すると、総合評価が「A」のデータが返されました。
FILTER関数はスピルに対応しているので、ほかのセルにも自動的に結果が表示されます。
スピルとは、2019年にOffice365のExcelに実装された機能です。数式を入力したセルから結果があふれて隣接したセルにも出力される画期的機能で、今までは数式を入れたセルにしか結果を出せませんでしたが、スピルでは隣接するセルにまで結果が表示されるようにになったのです。ここでも商品コード「AS-003B」や商品名「商品003B」が自動で表示されたのがお分かりいただけたと思います。
また、引数[一致しない場合の値]を省略したときに該当するデータが存在しない場合は、#CALC!エラーが表示されます。たとえば、「該当データなし」などの文字列を引数[一致しない場合の値]に指定しておくと、[条件]に一致していないときに表示できます。
上図ではG2セルに「=FILTER(A2:E10,E2:E10=”E”,”該当データなし”)」と入力しました。
すると、総合評価が「E」のデータはないので「該当データなし」と表示されたのが確認できましたね。
2.複数の条件に一致するデータを抽出する方法
FILTER関数では複数の条件を指定した絞り込みも可能です。
それぞれの条件を半角カッコ「()」で囲み、「AかつB」のAND条件は「*」、「AまたはB」のOR条件は「+」でつなげます。
FILTER関数「AND条件」で指定する場合の構文は次の通りです。
FILTER(配列,(条件式1)*(条件式2),[空の場合]) |
選択したセル範囲または配列から、指定した複数条件の全てとあうデータを抽出するという意味です。
配列:フィルター処理するセル範囲または配列を指定(入力必須)条件式1:抽出したい条件1を指定(入力必須)条件式2:抽出したい条件2を指定(入力必須)空の場合:指定した条件にあうデータが空のときに返す値を指定(省略可能)※省略すると「#CALC!」が指定されます。※条件式はAND関数を使用せず、「*」でつなぎます。 |
1.と同じ例題を使って、『「事前評価が70以上」かつ「満足度が70以上」』のAND条件を指定してみましょう。
入力する数式は「=FILTER(A2:E10,(C2:C10>=70)*(D2:D10>=70))」です。『「事前評価が70以上」かつ「満足度が70以上」』のAND条件という意味です。
すると、上図のように「数式がスピルされています」とメッセージが表示されるので、OKをクリックします。総合の列に結果が表示されましたね。
続いて、OR条件もみてみましょう。構文は次のように入力します。
FILTER(配列,(条件式1)+(条件式2),[空の場合]) |
選択したセル範囲または配列から、指定した複数条件のいずれかとあうデータを抽出するという意味です。
配列:フィルター処理するセル範囲または配列を指定(入力必須)条件式1:抽出したい条件1を指定(入力必須)条件式2:抽出したい条件2を指定(入力必須)空の場合:指定した条件にあうデータが空のときに返す値を指定(省略可能)※省略すると「#CALC!」が指定されます。※条件式はOR関数を使用せず、「+」でつなぎます。 |
例題では、『「満足度が80以上」または「総合評価がB」』をG2セルに指定します。
入力する数式は「=FILTER(A2:E10,(D2:D10>=80)+(E2:E10=”B”))」です。
上図のK列「総合評価」に結果が表示されましたね。
以上2パターンがFILTER関数の基本的な使い方です。
比較演算子
各数式のようにFILTER関数の条件には比較演算子を使います。
比較演算子とは、IF関数の条件式でよく使用する、不等号や等号と呼ばれたり、大なり、小なりと呼ばれる「<」「<=」のような記号のことです
演算子 | 意味 | 例 | 説明 |
= | 等しい | A=B | AとBは等しい |
<> | 等しくない | A<>B | AとBは等しくない |
> | 〇〇より大きい | A>B | AはBより大きい |
< | 〇〇より小さい | A<B | AはBより小さい |
>= | 以上 | A>=B | AはB以上 |
<= | 以下 | A<=B | AはB以下 |
FILTER関数とUNIQUE関数を組み合わせて使う方法
既存のフィルター機能は単独で使用するため、他の関数との組み合わせて使うことはできません。ここでは、FILTER関数と相性のよいUNIQUE関数を組み合わせて使用する方法をご紹介していきます。
まずはUNIQUE関数についておさらいしましょう。
UNIQUE関数とは
同じ値が複数入力されているリストから固有の値を取り出す際、重複の削除に手間がかかります。目視や手作業では抜け漏れが発生しミスを起こしやすいです。
そこで活躍するのがUNIQUE関数です。
UNIQUE関数とは、Microsoft365、Excel2021でのみ使用可能な新しい関数です。
UNIQUE関数ひとつで複数の値の中から重複を取り除いたユニークの値だけを取り出せるので、これまで時間と手間がかかっていた数式の作成やデータ抽出に時間がとられず、ほしい値をスムーズに抽出することが可能です。構文は次のように入力します。
UNIQUE(配列,[列の比較],[回数指定]) |
重複しない唯一の(ユニークの)データを抽出するという意味です。
配列:抽出する元データの範囲または配列を指定で入力は必須です。 列の比較:抽出する元データの範囲または配列からユニークの「列」を返したい場合は「TRUE」、ユニークの「行」を返したい場合は「FALSE」を指定します。この項目は省略可能なので、省略するときは「FALSE」が指定されます。 回数指定:抽出する元データの範囲または配列で1回だけ出現する値を返す場合は「TRUE」、範囲または配列の重複しないすべての値を返す場合は「FALSE」を指定します。この項目は省略可能なので、省略すると「FALSE」が指定されます。 |
それでは例題を使って使い方をみていきましょう。
次の製品購入リストからユニークな製品名のみを取り出してみましょう。
製品名を表示したいF4セルを選択し、次の数式を入力します。
=UNIQUE(B4:B12) |
この数式は「B4:B12」の範囲から重複を除いたユニークの商品名を返す、という意味です、Enterで決定すると引数に指定した範囲からユニークの商品名のみが表示されましたね。
また、抽出したいデータを複数指定することも可能です。
たとえば、製品名に加えて単価についてもユニークなデータを抽出したい場合、まずは先程と同じように結果を表示させたいセルF4を選択します。
入力する関数は以下の通りです。
=UNIQUE(B4:C12) |
この数式は、抽出したいデータが含まれている「B4:C12」の範囲から、重複した値を除いたユニークのデータを抽出する、という意味です。
簡単に選択した範囲からユニークの製品名と単価が表示されましたね。円マークになっていないので書式設定から変更すれば、よりキレイなリストになります。
また、第3引数である[回数指定]を入力すれば、元データに1回だけ出てくる値のみを抽出することができます。
F4セルに以下を入力します。
=UNIQUE(B4:B12,,TRUE) |
この数式はセル「B4:B12」の中から1回だけ出現する商品名のみを抽出する、という意味です。2つめの引数は省略しているため「,」のみを入力しています。
また、「TRUE」は1回だけ出現する値を返したい場合に使用します。
F4セルに1回だけ出現する「マウス」が表示されましたね。
FILTER関数×UNIQUE関数の使い方
それでは「FILTER関数×UNIQUE関数」を使ってみましょう。
次の例題は九州における支店担当表です。この表は、K2セルのドロップダウンリストで担当者を指定すれば、担当地域と支店数を抽出できる仕組みになっています。
そこで、リストを表示させたいM2セルを選択し、関数を次のように入力します。
=UNIQUE(C3:C9) |
選択した範囲からユニークの値のみが表示されましたね。
ここから、抽出結果を表示させたいF3セルに
=FILTER(B3:D9,C3:C9=K2,””) |
この数式は、「B3:D9」範囲にいる担当にあたる「C3:C9」範囲から、K2セルのドロップダウンリストで選択された条件を抽出する、ない場合は空白を表示する、という意味です。
続いては、K2を選択し、ドロップダウンリストを作成しましょう。
ドロップダウンリストは、ドロップダウンリストを作りたいセルK2をクリックし、ツールバーにある
- データタブ
- データの入力規則をクリック
- 設定タブ
- 入力値の種類(A)
- リストを選択
- 元の値(S)に「=M2#」を入力
この手順で作成ができます。
※データの入力規則は右上で見つけることができます。
担当者「佐藤」の担当地域と支店数を抽出したいので、K2セルで「佐藤」を選択します。
F列~H列には「佐藤」に項目だけが抽出されました。
このようにFILTER関数とUNIQUE関数を組み合わせることで瞬時にほしいデータを取り出すことができるようになります。
まとめ
いかがでしたでしょうか。
今回の記事では、FILTER関数の意味や例題を使った実践方法をご紹介しました。」あわせて、新しい機能であるUNIQUE関数との組み合わせ方も解説しましたので、ぜひ参考にして実務にお役立てください。
Excelの関数は大量に存在し、Microsoft Officeのアップデートに伴い、新たな関数も生まれてきます。そのため、一気にすべてを覚えることは難しいです。
まずは、基本的な関数を使いこなすことを目指しましょう。
VBAを組むほどではない作業の場合、基本的関数をマスターすることでExcel作業の幅が広がります。
また、Excel関数を使いこなすことで、日々の作業時間も短縮でき業務効率化も期待できます。本記事がお役に立てることを祈っています。