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

よくある課題:フィルター操作後に「値が合ってない」と言われる…

Excelでの集計には、SUMAVERAGECOUNT などの 基本関数 を使うことが多いですよね。

フィルターしても数値が変わらない

たとえば、部署ごとの月次売上を 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 関数の使い方や引数の詳しい解説は、
こちらの記事で紹介していますが、ざっくり言えばこうです👇

フィルター後のデータだけで合計を算出したSUBTOTAL関数の構文解説


SUBTOTAL 関数では、合計だけでなく、平均・件数・最大値・最小値などの集計も可能です。

また、

引数の番号を変えることで、フィルターで非表示になった行や、
手動で非表示にした行を、集計の対象に含めるか除外するかを指定

できます。

✅ どんな集計をしたい?どの行を集計に含める?

以下のフローチャートで、使い分けのルールを確認できます。

① 集計方法は?
├─ 合計    → 引数 9 または 109
├─ 平均    → 引数 1 または 101
├─ 件数    → 引数 2 または 102
├─ 最大/最小  → 引数 4, 5 など
└─ その他の集計(標準偏差など)→ 対応番号へ

② 非表示行はどう扱う?
├─ フィルターも手動非表示も除外したい
│ └─ → 1〜11 番を使用(例:9 = 合計)
└─ 手動非表示の行は含めたい(フィルターだけ除外)
└─ → 101〜111 番を使用(例:109 = 合計)

💡 補足ポイント

  • 1〜11 番台:フィルター・手動非表示の両方を除外
  • 101〜111 番台:フィルターのみ除外、手動非表示の行は含まれる
  • 集計方法と表示状態に応じて、対象範囲の調整が可能です

SUBTOTAL 関数の構文や使い方の詳細は、こちらの記事をご覧ください

まとめ

Excelで集計を行う際、使用する関数によってフィルターや非表示行の扱いが異なるため、

見た目と数値が一致しないことがあります。

フィルター後に「数字が合わない」と指摘されるのは、関数の仕様と“見た目”のギャップが原因です。

こうした誤解を防ぐには、表示されているデータだけを集計できる関数(例:SUBTOTAL)を選ぶことが有効です。

なお、SUM関数の構文はこちらで徹底解説しています。