g740|【Excel動的配列の真骨頂】FILTER関数で条件に合うデータを一瞬で抜き出す方法

「この膨大なデータの中から、〇〇という条件に合うものだけを別の表として取り出したい」

これはExcelを使う上で最も一般的な要求の一つです。従来、多くの人がオートフィルタ機能や複雑な配列数式を使っていましたが、Microsoft 365の登場により、FILTER(フィルター)関数という革命的な解決策が生まれました。

FILTER関数を使えば、たった一つの数式で、条件に一致するデータをすべて動的に抽出し、結果を新しい表として表示できます。

目次

今回のゴール:会員名簿から「ランクA」の会員データだけを抽出する

以下の「会員名簿」の中から、F1セルで指定した条件(今回は「A」)に一致するランクの会員データを、F4セル以降にすべて抜き出すことが目標です。

サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。

Excel-g740-1.xlsx (ダウンロード)

以下のサンプルデータをExcelシートにコピーして、操作の準備をしてください。

ABCDEFG
1会員名簿Aを抽出
2
3No会員名ランク年齢No会員名
41成沢 卓也A45(数式はここに)
52日比野 健B29
63大崎 由香C53
74水戸 夏美B38
85木下 直樹A24

解決策:FILTER関数の使い方

データを抽出したい先頭のセル(例では F4)に、以下の数式を一度だけ入力します。

Excel

=FILTER(A4:D8, C4:C8=F1, "該当なし")

数式を入力してEnterキーを押すと、条件に一致するランク「A」の会員データがすべて自動的に展開(スピル)され、F4:I5の範囲に表示されます。

数式の解説

FILTER関数の構文は、3つの引数で構成されています(3つ目は省略可能)。

FILTER(配列,条件,[見つからない場合])

  1. 配列 (array): A4:D8
    • 抽出の対象となる、元のデータ範囲全体を指定します。この範囲から、条件に一致した行が丸ごと返されます。
  2. 条件 (include): C4:C8=F1
    • 【最重要ポイント】 どの行を抽出するかを決めるための条件式を指定します。この条件式は、結果がTRUEまたはFALSEになる論理式である必要があります。
    • C4:C8=F1は、「ランク列(C4:C8)の各セルが、F1セルの値(”A”)と等しいか?」を一行ずつ判定します。
    • この判定により、Excelの内部では {TRUE; FALSE; FALSE; FALSE; TRUE} のような TRUE/FALSE の配列が生成されます。
    • FILTER関数は、この配列の中でTRUEになっている行(この例では1行目と5行目)だけを、引数1の「配列」から抽出します。
  3. [見つからない場合] (if_empty): "該当なし"
    • 条件に一致するデータが一つもなかった場合に、何を表示するかを指定します(省略可能)。
    • ここで"該当なし"と指定しておくと、結果が0件だった場合にエラーではなく、指定した文字列が表示されるため、非常に親切な表示になります。省略した場合、該当データがないと#CALC!エラーが表示されます。

まとめ

FILTER関数は、動的配列機能の恩恵を最も実感できる関数の一つです。

  • 動的: F1セルの条件を「B」に変えれば、抽出結果も瞬時にランク「B」の会員リストに更新されます。元のデータが変更されても同様です。
  • 非破壊的: 元のデータリストには一切影響を与えません。
  • シンプル: たった一つの数式で、複数件のデータを抽出できます。

これまで手作業や複雑な数式で行っていた抽出作業を、FILTER関数で劇的に効率化しましょう。これからのExcelでのデータ分析に必須の関数です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次