Excelを使って表を作成し、合計や平均などの集計作業をすることは日常的によくある作業です。そんなときに便利なのが「SUBTOTAL(サブトータル)」関数です。通常のSUM関数では実現できない、フィルターに対応した集計や、表示中のデータだけを集計するなど、柔軟で実用的な関数として多くの場面で活用できます。本記事では、SUBTOTAL関数の基本的な使い方から、具体的な活用例、注意点までをわかりやすく解説します。Excel初心者から中級者まで、すぐに実践できる内容となっていますので、ぜひ最後までご覧ください。
SUBTOTAL関数とは、Excelでリスト(表)データを集計するための関数です。特に、フィルター機能と組み合わせて使うことで「表示されているデータのみ」の合計や平均などを簡単に求めることができます。
主な特徴:
SUBTOTAL関数の構文は以下のとおりです。
=SUBTOTAL(集計方法, 範囲1, [範囲2], ...)
引数の説明:
集計方法 | 非表示の行を含む | 非表示の行を除く |
---|---|---|
平均 | 1 | 101 |
数値の個数 | 2 | 102 |
最大値 | 4 | 104 |
最小値 | 5 | 105 |
積 | 6 | 106 |
合計 | 9 | 109 |
例:
=SUBTOTAL(9, B2:B100) → 通常の合計(非表示行含む)
=SUBTOTAL(109, B2:B100) → フィルターで非表示の行は無視
SUM関数は単純に範囲の数値をすべて合計しますが、SUBTOTAL関数はフィルターで非表示になった行を無視することが可能です。
=SUM(B2:B100)
=SUBTOTAL(109, B2:B100)
フィルターを使って一部の行を非表示にした場合、SUM関数はすべての行を計算しますが、SUBTOTAL関数(109)を使うと、表示されている行だけが集計されます。
SUBTOTAL関数の真価を発揮するのは、Excelの「オートフィルター」と組み合わせたときです。
=SUBTOTAL(109, 対象範囲)
を入力これで、表示されている行のみが自動で集計されます。
Excelには「データ」タブにある[集計]機能もあります。これは表に自動的にグループ単位の小計を挿入してくれますが、行の構造が変更されてしまうため注意が必要です。
一方、SUBTOTAL関数を使えば、自分で場所を決めて柔軟に集計できるため、データ構造を壊さずに集計可能です。
商品名 | 売上金額 |
---|---|
A | 1000 |
B | 1500 |
A | 2000 |
=SUBTOTAL(109, B2:B100)
と入力=SUBTOTAL(101, C2:C100)
を入力=SUBTOTAL(9, SUBTOTAL(9, B2:B10))
のような使い方は不可Excelの表機能([挿入]→[テーブル])を使うと、SUBTOTAL関数の対象範囲を自動で拡張してくれるため便利です。表の最下部にSUBTOTAL関数を置いておけば、新しいデータを追加しても自動的に反映されます。
SUBTOTAL関数は、Excelの集計作業を格段に効率化してくれる強力なツールです。特に、フィルターでデータを絞り込みながら合計・平均・件数などを確認したい場面で大活躍します。通常のSUM関数だけでは対応できない集計にも柔軟に対応できるため、日々の業務でExcelを使うすべての人におすすめしたい関数です。
まずは基本的な構文を覚え、フィルターと併用する形で実践してみてください。データ処理の精度とスピードが一段とアップするはずです。