Excel関数

FILTER

条件に一致する行だけ抽出します。

FILTER(array, include, [if_empty])

FILTER関数のメリット

FILTER関数を使えば、元の表はそのままの状態を保ちつつ、絞り込んだ結果を別の場所に表として表示できます。 元データを直接並べ替えたりフィルターをかけたりする必要がないため、複数の条件で同時に結果を比較したい場合に特に便利です。

第2引数(含む)の書き方

第2引数の「含む(include)」では、全体のデータからどのようなデータを抽出したいかを比較演算子などを使って指定します。 たとえば G4:G9>=180 と指定すると、G4からG9の範囲で180以上の値を持つ行だけを抽出します。 TRUE/FALSE の配列を返す式であれば何でも使えるため、等号(=)や不等号(>、<、>=、<=)のほか、複数条件の組み合わせも可能です。

「文字列を含む」で絞り込む場合は、ワイルドカードではなく ISNUMBER(SEARCH("文字", 範囲)) を使うのが定番です。

文字を含む行を抽出

=FILTER(A2:D8, ISNUMBER(SEARCH("東京", C2:C8)), "該当なし")

C列に「東京」を含む行だけを返します。SEARCHは見つかった位置を数値で返し、見つからない場合はエラーになります。

複数条件と組み合わせる

=FILTER(A2:D8, (B2:B8="食品")*ISNUMBER(SEARCH("りんご", A2:A8)), "該当なし")

FILTERでは条件同士を掛け算するとAND条件になります。「カテゴリが食品」かつ「商品名にりんごを含む」のように絞り込めます。

大文字小文字を区別したい場合は SEARCH の代わりに FIND を使います。

引数の意味

array

必須

参照範囲を指定します。ドラッグまたは開始/終了セルの順クリックで入力できます。

include

必須

比較式や計算式などの式を入力します。

if_empty

任意

文字列を入力します(必要に応じて " " で囲みます)。

使い方の例

FILTERを使い、B列のカテゴリ(B2:B7)が食品行だけをA〜D列(A2:D7)から抽出し、該当がなければ「該当なし」を返してください。

表

#
A商品ID
Bカテゴリ
C商品名
D売上
2P001食品リンゴ1200
3P002食品バナナ980
4P003文具ノート450
5P004文具ペン300
6P005食品ぶどう1500
7P006文具定規250
8

関数の使い方(式)

=FILTER(A2:D7, B2:B7="食品", "該当なし")

結果

F2に入力すると、以下のセルに展開します(スピル)。出力先は空けておきます。

#FGHI
2P001食品リンゴ1200
3P002食品バナナ980
4P005食品ぶどう1500

この式になる理由

抽出範囲と条件範囲の行を対応させ、条件がTRUEの行を返します。結果は入力セルから複数セルへ展開します。

  1. 1. 対象範囲: A2:D7

    参照範囲を指定します。ドラッグまたは開始/終了セルの順クリックで入力できます。

  2. 2. 抽出条件: B2:B7="食品"

    比較式や計算式などの式を入力します。

  3. 3. 空の場合の値: "該当なし"

    文字列を入力します(必要に応じて " " で囲みます)。

用途から関数を選ぶ

次の使い方に最も直接的に当てはまる関数はどれですか?

取り出す表の中の列番号を第2引数に指定して並べ替える。

この関数を練習する

FILTER のよくある質問

FILTER の使い方は?

抽出元の範囲、残す行の条件、該当なしの場合の表示を順に指定します。「文字列を含む」で抽出する場合は、ワイルドカードではなく ISNUMBER(SEARCH("東京", C2:C8)) のように TRUE/FALSE 配列を作り、FILTER(A2:D8, ISNUMBER(SEARCH("東京", C2:C8)), "該当なし") の形で使います。

FILTER の練習はどこでできますか?

「この関数を練習」ボタンから、FILTER の練習モードをすぐ開始できます。

FILTER の引数は何ですか?

基本の引数は 対象範囲、抽出条件、空の場合の値 です。 必須引数を入れたあと、必要に応じて任意引数を追加します。