サラリーマン戦士が語る、Excelで“正しい集計”を作るための必須テクニック

サラリーマンとして日々Excelと向き合っていると、 「フィルターで絞った結果だけ合計したい」 「非表示行を除外して平均を出したい」 「集計表が壊れないようにしたい」 「SUMでは正しい値にならない…」 といった場面が必ず出てきます。

そんな“実務で壊れない集計”を作るために欠かせないのが SUBTOTAL(サブトータル)関数 です。

SUBTOTALは、 フィルター後のデータだけ集計できる、Excel標準の集計関数 で、 SUM・AVERAGE・COUNT などを一つの関数で実行できます。

AGGREGATEほど高機能ではありませんが、 フィルター集計の標準解として最も使われる関数 です。

この記事では、SUBTOTAL関数の基本から応用まで、 サラリーマン戦士としての実務経験を交えながら 徹底解説します。

🔍 SUBTOTAL関数 の書式

コード

=SUBTOTAL(関数番号, 範囲)

✔ 引数の意味

  • 関数番号:どの集計をするか(1〜11 / 101〜111)
  • 範囲:集計対象

📘 SUBTOTALの「関数番号」一覧(実務で使うものだけ)

関数番号内容
1 / 101AVERAGE(平均)
2 / 102COUNT(件数)
3 / 103COUNTA(空白以外の件数)
9 / 109SUM(合計)
4 / 104MAX
5 / 105MIN

✔ 1〜11 と 101〜111 の違い

番号非表示行フィルター行
1〜11手動で非表示にした行も無視するフィルターで非表示も無視
101〜111手動非表示は無視しないフィルターで非表示は無視

実務では 101〜111 を使うことが多い です。

🎯 基本例:フィルター後の合計(最も使う)

コード

=SUBTOTAL(109, B2:B100)
  • 109 → SUM(フィルター行を無視)
  • B2:B100 → 集計範囲

フィルターで絞った結果だけ合計できます。

🎯 基本例:フィルター後の平均

コード

=SUBTOTAL(101, C2:C100)

→ フィルターで絞ったデータだけ平均できます。

🔥 手動で非表示にした行も除外したい場合

コード

=SUBTOTAL(1, C2:C100)

1〜11 の番号を使うと、 手動で非表示にした行も無視できます。

🔥 フィルター × SUBTOTAL で“壊れない集計表”

例:売上表で、部署ごとにフィルターして合計を表示したい

コード

=SUBTOTAL(109, D2:D100)

→ 部署を絞るたびに自動で合計が変わります。

🧩 SUBTOTAL × OFFSET で“動的集計”

例:最新10件だけ合計

コード

=SUBTOTAL(109, OFFSET(A1, COUNTA(A:A)-10, 0, 10, 1))

OFFSETについては OFFSET関数 を参照ください。

🧩 SUBTOTAL × FILTER で柔軟な集計

例:営業部だけ抽出して合計

コード

=SUBTOTAL(109, FILTER(C2:C100, B2:B100="営業"))

FILTERについては FILTER関数 を参照ください。

📅 月次レポートで“フィルター後の平均”を出す

コード

=SUBTOTAL(101, E2:E100)

→ 月別にフィルターしても壊れない平均が作れます。

🧠 SUBTOTALが強い理由

✔ フィルター後の集計が正確

SUMではフィルター行も含まれてしまいますが、 SUBTOTALなら 表示されている行だけ 集計できます。

✔ SUM・AVERAGE・COUNT を1つの関数で実行

関数番号を変えるだけで集計方法を切り替えられます。

✔ ピボットテーブルより軽い

簡単な集計ならSUBTOTALのほうが速いです。

✔ AGGREGATEよりシンプル

AGGREGATEは高機能ですが、 SUBTOTALは フィルター集計に特化していて使いやすい です。

🛠 よくあるミスと注意点

❗ 1. 関数番号を間違える

SUM → 9 or 109 AVERAGE → 1 or 101

❗ 2. 手動非表示を無視したいのに 101〜111 を使ってしまう

→ 手動非表示も無視したいなら 1〜11 を使います。

❗ 3. 配列数式では使えない

SUBTOTALは配列計算に弱いです。

❗ 4. FILTER後の配列に使うと挙動が変わる

FILTERは「非表示」ではなく「削除」扱いになるため、 SUBTOTALの“非表示無視”は効きません。

📊 SUBTOTAL と AGGREGATE の違い

項目SUBTOTALAGGREGATE
エラー無視×
上位・下位の取得×
フィルター後の集計
手動非表示の扱い番号で変わる番号で変わる
集計種類11種類19種類
実務向き中級最強

AGGREGATEについては AGGREGATE関数 を参照ください。

🧑‍💼 サラリーマン戦士が実際に使ってみた感想

サラリーマン戦士がSUBTOTALを使い始めたとき、 「フィルターで絞った結果だけ集計できるって、こんなに便利なのか…」 と本気で驚きました。

特にメリットは次のとおりです。

✔ フィルター後の集計が正確

SUMでは絶対にできない“表示行だけ集計”ができます。

✔ 集計方法を番号で切り替えられる

SUM・AVERAGE・COUNT を1つの関数で扱えるのは便利です。

✔ ピボットテーブルより軽い

簡単な集計ならSUBTOTALのほうが速く、資料もスッキリします。

✔ AGGREGATEよりシンプルで覚えやすい

エラー無視が不要ならSUBTOTALで十分です。

サラリーマン戦士として、 「フィルター集計の標準はSUBTOTAL」 と自信を持って言えます。

📝 まとめ:SUBTOTALは“フィルター集計の標準ツール”

  • フィルター後のデータだけ集計できます
  • SUM・AVERAGE・COUNT を1つの関数で実行できます
  • 手動非表示を無視するかどうか選べます
  • ピボットテーブルより軽くて便利です
  • AGGREGATEよりシンプルで覚えやすいです

Excelで正確な集計を作るなら、 SUBTOTAL関数は必ず覚えておきたい関数です。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です