この記事では以下の疑問を解決することを目的に作成しています。
- 【Excel】の【FILTER関数】をどう使えばよいのか?
- MEDIAN関数などの「IF」が無い関数で疑似的に条件付けして関数を実施させる方法を知りたい。
FILTER関数で出来ること
一言で言うと、「大きな表の中から、欲しいデータだけを別の場所に『自動で』書き出してくれる魔法」です。
- 昔のExcel: 手作業で「コピー&ペースト」をしたり、フィルターボタンで隠したりしていました。
- 今のExcel: 数式を1つ書くだけで、条件に合うものだけがシュパッと一瞬で並びます。
FILTER関数の基本の書き方
基本の形はとてもシンプルです。
=FILTER( どこを? , どうなれば? , ない時は? )
- どこを?:調べたい表全体を選びます。
- どうなれば?:探したい条件(例:種類が「くだもの」)を書きます。
- ない時は?:もし見つからなかった時に出す言葉(「なし」など)を決めます。
具体的な例題(FILTER関数・単独)
例えば、下のような「お買い物リスト」があるとします。ここから「くだもの」だけを取り出してみましょう。
| A列(名前) | B列(種類) | |
| 2行目 | リンゴ | くだもの |
| 3行目 | キャベツ | やさい |
| 4行目 | バナナ | くだもの |
空いているセルにこう書きます。
=FILTER(A2:B4, B2:B4="くだもの")
すると、Excelが勝手に判断して、「リンゴ」と「バナナ」の行だけをそこに表示してくれます。

上記の場合だと関数が記入されているのは「C2(黄色)」のみです。
【応用】計算用の関数(MEDIANなど)と組み合わせる
ここがFILTER関数の「本領発揮」ポイントです。
SUMIF(もし〜なら足す)はありますが、MEDIANIF(もし〜なら中央値を出す)という関数はExcelに存在しません。
そこで、「FILTERで絞り込んだ結果を、そのまま他の関数に食べさせる」という技を使います。
書き方のルール
=関数名( FILTER( どこを? , どうなれば? ) )
このように、計算したい関数の「中」にFILTERを入れ込みます。
具体的な例題
「クラス全員のテスト結果」から、「野球部の人のみの真ん中の点数(中央値)」を出したい場合
| 出席番号 | 名前 | 部活 | 点数 |
| 1 | 佐藤 | 野球部 | 80 |
| 2 | 鈴木 | サッカー部 | 90 |
| 3 | 高橋 | 野球部 | 70 |
| 4 | 田中 | 野球部 | 60 |
使う数式:
=MEDIAN( FILTER(D2:D5, C2:C5="野球部") )
- 中身のFILTER: 「野球部」の人の点数(80, 70, 60)だけを抜き出します。
- 外側のMEDIAN: 抜き出された(80, 70, 60)の中から、真ん中の「70」を答えます。
このように、「もし〜なら」という機能がない関数にも、FILTERを組み合わせることで無理やり条件を付けることができるのです。
必要環境
- 必要なExcelバージョン:Excel 2021 以降、または Microsoft 365。
- 前提知識:IF関数の「もし〜なら」という考え方を少し知っていると、条件作りがスムーズになります。


コメント