たった1つの関数で、フィルター後のデータだけを集計

よくある課題:フィルター操作後に「値が合ってない」と言われる…
Excelでの集計には、SUM
や AVERAGE
、COUNT
などの 基本関数 を使うことが多いですよね。
目次
フィルターしても数値が変わらない
たとえば、部署ごとの月次売上を SUM
で集計していた場合、
フィルターで「特定の部署」や「月」だけに絞っても、非表示の行も含めた値が返ってきます。
SUM
:指定範囲の数値を合計しますが、フィルターで非表示にしても数値は変わりません。AVERAGE
:指定範囲の平均を計算しますが、非表示行も対象です。COUNT
:指定範囲のセル数をカウントしますが、フィルターで隠れたセルもカウントされます。
これは仕様上の正しい動作ですが、現場ではこうなります。
ありがちなやりとり
お偉いさん:「おいおい、フィルターかけたのに売上の数字が変わってないぞ?」
担当者:「それは関数が全体を見ているからで…」
お偉いさん:「そんな説明はいい。正しく出してくれ」

ではどうするか?
「フィルター後の売上」を確認したい場面では、SUBTOTAL
が便利です。
担当者は上司に進言すべきケース
しかし、すべて上司の言いなりでは、NGケースがあります。
それは、
「売上全体」として表示するのか、
「フィルター後の売上」を表示するのか、
の違いです。
「売上全体」を示したい場合は、SUM
など フィルターの影響を受けない関数 を使うべきです。 SUBTOTAL
はフィルターで表示中の行だけを集計し、フィルター条件で数値が変動するためです。
つまり、目的次第です。
そのケースでは、担当者は上司に進言すべきです。
解決策:SUBTOTAL
関数
を使えば、フィルターと連動!
SUBTOTAL
関数を使うと、フィルターで表示されている行だけを対象に集計できます。
つまり、
「いま見えているデータで、合計・平均・件数などを取りたい」というニーズにピッタリです。
たとえば、
以下のような月次売上データをもとに、
部署ごとのパフォーマンスを確認したいケースを考えます。
月 | 部署 | 売上(万円) |
---|---|---|
1月 | 営業部 | 1,200 |
1月 | 開発部 | 950 |
2月 | 営業部 | 1,100 |
2月 | 開発部 | 980 |
3月 | 営業部 | 1,250 |
3月 | 開発部 | 1,050 |
4月 | 営業部 | 1,300 |
4月 | 開発部 | 1,000 |
5月 | 営業部 | 1,150 |
5月 | 開発部 | 1,020 |
6月 | 営業部 | 1,280 |
6月 | 開発部 | 1,100 |
このようなデータで、部署別に売上の合計を出したい場合、
普通に SUM
を使ってしまうと、フィルターで非表示になったデータまで含まれてしまいます。
その結果、見えている数字と計算結果が食い違うことに。
SUBTOTAL関数で「表示中の行だけ」を正確に集計!
SUBTOTAL(9, C2:C13)
のように記述すれば、フィルターで表示中の行だけを対象に売上を合計できます。
この関数の強みは、フィルター操作に完全に連動することです。
以下のGIFでは、部署別にフィルターを切り替えながら SUBTOTAL
で集計結果が動的に変わる様子を確認できます。
📊 GIF:フィルター操作で合計金額がリアルタイムに変化する様子

合計以外の集計や、非表示行の扱いも制御できる関数
SUBTOTAL
関数の使い方や引数の詳しい解説は、
こちらの記事で紹介していますが、ざっくり言えばこうです👇

SUBTOTAL
関数では、合計だけでなく、平均・件数・最大値・最小値などの集計も可能です。
また、
引数の番号を変えることで、フィルターで非表示になった行や、
手動で非表示にした行を、集計の対象に含めるか除外するかを指定
できます。
✅ どんな集計をしたい?どの行を集計に含める?
以下のフローチャートで、使い分けのルールを確認できます。
① 集計方法は?
├─ 合計 → 引数 9 または 109
├─ 平均 → 引数 1 または 101
├─ 件数 → 引数 2 または 102
├─ 最大/最小 → 引数 4, 5 など
└─ その他の集計(標準偏差など)→ 対応番号へ
② 非表示行はどう扱う?
├─ フィルターも手動非表示も除外したい
│ └─ → 1〜11 番を使用(例:9 = 合計)
└─ 手動非表示の行は含めたい(フィルターだけ除外)
└─ → 101〜111 番を使用(例:109 = 合計)
💡 補足ポイント
1〜11
番台:フィルター・手動非表示の両方を除外101〜111
番台:フィルターのみ除外、手動非表示の行は含まれる- 集計方法と表示状態に応じて、対象範囲の調整が可能です
→ SUBTOTAL
関数の構文や使い方の詳細は、こちらの記事をご覧ください
まとめ
Excel
で集計を行う際、使用する関数によってフィルターや非表示行の扱いが異なるため、
見た目と数値が一致しないことがあります。
フィルター後に「数字が合わない」と指摘されるのは、関数の仕様と“見た目”のギャップが原因です。
こうした誤解を防ぐには、表示されているデータだけを集計できる関数(例:SUBTOTAL)を選ぶことが有効です。
なお、SUM
関数の構文はこちらで徹底解説しています。