Introduction
Ver. 2021 365
エクセルでオートフィルター機能を使用せずに、関数でデータを抽出する方法です。最近登場したFILTER関数を使用することで、簡単に行データを抽出することができるようになりました。
※最近のバージョン限定の関数です
最初に基本的な使い方を説明して、その後に文字列や日付を対象とした検索条件の作成法について説明します。
FILTER関数・・・指定した条件で行データを抽出する。
=FILTER(配列 , 含む , 空の場合)
- 配列・・・対象となる表のデータ部分全体を指定
- 含む・・・抽出条件を指定
- 空の場合・・・抽出結果が存在しないときに表示する文字列を指定[省略可能]
※省略した場合、抽出結果が存在しないときは「#CALC!」エラーが表示されます
バージョン2021以降か365でしか使えない関数だにゃ
FILTER関数の使い方
今回は、下の表から様々な条件でデータを抽出してみます。
まずは、一番右にある「単価」が「1000以上」のデータを抽出してみましょう。
抽出後を表示したいセルを選択して、[関数の挿入]ボタンをクリック。
[関数の種類]を[検索/行列]か[すべて表示]に切り替えて「FILTER」を選んで[OK]をクリック。
FILTER関数・・・指定した条件で行データを抽出する。
=FILTER(配列 , 含む , 空の場合)
- 配列・・・対象となる表のデータ部分全体を指定
- 含む・・・抽出条件を指定
- 空の場合・・・抽出結果が存在しないときに表示する文字列を指定[省略可能]
※省略した場合、抽出結果が存在しないときは「#CALC!」エラーが表示されます
引数の最初[配列]の場所には抽出するデータ部分全体を指定します。
次の[含む]の部分が条件の指定場所です。
今回は「単価」が「1000以上」のデータを抽出したいので、
E2:E11>=1000
と指定します。
条件には比較演算子を使用します。下を参考にしてください。
演算子 | 意味 | 使用例 | 説明 |
= | 等しい | A=B | AとBは等しい |
<> | 等しくない | A<>B | AとBは等しくない |
> | より大きい | A>B | AはBより大きい |
< | より小さい | A<B | AはBより小さい |
>= | 以上 | A>=B | AはB以上 |
<= | 以下 | A<=B | AはB以下 |
※記号の入力は全角ではなく半角で。
最後の[空の場合]は今回省略します。
必ず1件以上のデータが一致する場合は省略しても問題ありません。
※一致するデータが無かった場合は「#CALC!」エラーが表示されます。
もし、エラー表示ではなく「一致するデータがありません」のように表示したい場合は、最後の「空の場合」に「””」で囲んで表示したい文字列を入力します。
今回完成する関数は下のようになります。
=FILTER(A2:E11,E2:E11>=1000)
[OK]を押すと結果が表示されます。
今回条件に一致したデータは4件だったようです。
※データに「日付」がある場合はシリアル値で表示されてしまうので「日付」表示になおしてあげましょう。
[ホーム]タブ → [数値の書式] → [短い日付形式]
結果は青枠で囲まれてスピルして表示されます。スピルに関しては下のリンク先をご覧ください。
では、続いて条件の作成に関して説明していきます。
文字列を条件で使用する場合
では、下の「受注営業所」が「東京本店」のデータを抽出してみます。
[含む]の抽出条件は、
E2:E11=”東京本店”
となります。
結果は下のようになりました。
日付を条件として使用する場合
日付を条件として指定するには一工夫必要です。
下の「受注日」から「2023/9/24以降」のデータだけを抽出してみます。
Excelの関数の中で日付を使用する際は文字列と同じように「””」で囲みたくなるのですが、それだと抽出できません。
抽出条件はシリアル値として指定する必要があるのでDATE関数を使用しましょう。
DATE関数・・・指定された日付を返す関数(シリアル値を返す)
=DATE(年,月,日)
- 年・・・年を指定
- 月・・・月を指定
- 日・・・日を指定
「年」「月」「日」とそれぞれ指定するだけなので分かりやすい関数です。
今回の例では、下のように設定します。
B2:B11>=DATE(2023,9,26)
3件抽出されました。
DATE関数についての詳しい説明は下のリンク先からご覧ください。
複数の条件を使用する場合
では、下の「受注営業所」が「町田営業所」と「渋谷営業所」のデータを抽出してみます。
複数データを抽出するときのポイントは以下のようになります。
- それぞれの条件は括弧で括る
- 全ての条件を同時に含めたものを抽出したいときは「*」で繋ぐ・・・AND条件
- どれかを1つでも含めばよいときは「+」で繋ぐ・・・OR条件
AND条件・・・複数の条件全てを満たしものだけを抽出する
OR条件・・・複数の条件どれかを満たしていれば抽出する
今回は「町田営業所」と「渋谷営業所」両方抽出したいのでOR条件になります。
「+」で2つの条件を繋ぎます。
(C1:C11=”町田営業所”)+(C1:C11=”渋谷営業所”)
結果は3件抽出されました。
まとめ
今回のポイントを簡単にまとめておきます。
- [配列]と[含む]のデータ範囲は最初と最後の行番地が一致するように正確に指定する
- 文字列を条件にするときは「””」で囲む
- 日付を条件にするときはDATE関数を使用する
- 複数条件を使用する際はそれぞれの条件を括弧で括る
- 複数条件を同時に満たした物を抽出したいときは「*」で繋ぐ
- 複数条件どれかを満たしたものを抽出したいときは「+」で繋ぐ
- [空の場合]の文字列の指定は「””」で囲む
このFILTER関数の登場で、関数での抽出がとても楽になりました。
ただ、他のPCでも使用することがあるファイルの場合は後方互換を考える必要がありますね。
過去バージョンとの互換に注意だにゃ