「この膨大なデータの中から、〇〇という条件に合うものだけを別の表として取り出したい」
これはExcelを使う上で最も一般的な要求の一つです。従来、多くの人がオートフィルタ機能や複雑な配列数式を使っていましたが、Microsoft 365の登場により、FILTER(フィルター)関数という革命的な解決策が生まれました。
FILTER
関数を使えば、たった一つの数式で、条件に一致するデータをすべて動的に抽出し、結果を新しい表として表示できます。
目次
今回のゴール:会員名簿から「ランクA」の会員データだけを抽出する
以下の「会員名簿」の中から、F1
セルで指定した条件(今回は「A」)に一致するランクの会員データを、F4
セル以降にすべて抜き出すことが目標です。
サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。
Excel-g740-1.xlsx (ダウンロード)
以下のサンプルデータをExcelシートにコピーして、操作の準備をしてください。
A | B | C | D | E | F | G | |
1 | 会員名簿 | A | を抽出 | ||||
2 | |||||||
3 | No | 会員名 | ランク | 年齢 | No | 会員名 | |
4 | 1 | 成沢 卓也 | A | 45 | (数式はここに) | ||
5 | 2 | 日比野 健 | B | 29 | |||
6 | 3 | 大崎 由香 | C | 53 | |||
7 | 4 | 水戸 夏美 | B | 38 | |||
8 | 5 | 木下 直樹 | A | 24 |
解決策:FILTER関数の使い方
データを抽出したい先頭のセル(例では F4
)に、以下の数式を一度だけ入力します。
Excel
=FILTER(A4:D8, C4:C8=F1, "該当なし")
数式を入力してEnterキーを押すと、条件に一致するランク「A」の会員データがすべて自動的に展開(スピル)され、F4:I5
の範囲に表示されます。
数式の解説
FILTER
関数の構文は、3つの引数で構成されています(3つ目は省略可能)。
FILTER(配列,条件,[見つからない場合])
- 配列 (array):
A4:D8
- 抽出の対象となる、元のデータ範囲全体を指定します。この範囲から、条件に一致した行が丸ごと返されます。
- 条件 (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の「配列」から抽出します。
- 【最重要ポイント】 どの行を抽出するかを決めるための条件式を指定します。この条件式は、結果が
- [見つからない場合] (if_empty):
"該当なし"
- 条件に一致するデータが一つもなかった場合に、何を表示するかを指定します(省略可能)。
- ここで
"該当なし"
と指定しておくと、結果が0件だった場合にエラーではなく、指定した文字列が表示されるため、非常に親切な表示になります。省略した場合、該当データがないと#CALC!
エラーが表示されます。
まとめ
FILTER
関数は、動的配列機能の恩恵を最も実感できる関数の一つです。
- 動的:
F1
セルの条件を「B」に変えれば、抽出結果も瞬時にランク「B」の会員リストに更新されます。元のデータが変更されても同様です。 - 非破壊的: 元のデータリストには一切影響を与えません。
- シンプル: たった一つの数式で、複数件のデータを抽出できます。
これまで手作業や複雑な数式で行っていた抽出作業を、FILTER
関数で劇的に効率化しましょう。これからのExcelでのデータ分析に必須の関数です。
コメント