概要
オートフィルターで抽出された可視セルだけを集計したい場合には、WorksheetFunction.Subtotal が最適です。本記事では、抽出範囲の合計値とワークシート全体の合計値を同時に取得するサンプルコードを示し、Subtotal と Sum の違いを丁寧に解説いたします。
前提条件
| 項目 | 内容 |
|---|---|
| 対応 Excel | Microsoft 365 または 2016 以降 |
| データ列 | 列 E(売上金額など数値列を想定) |
| マクロ設置先 | 標準モジュール |
サンプルコード(VBA)
Sub CalculateFilteredTotals()
Dim visibleTotal As Double ' 抽出範囲の合計
Dim overallTotal As Double ' 全体範囲の合計
Dim tgtColumn As Range ' 対象列
' 列 E を対象列として設定
Set tgtColumn = ActiveSheet.Columns("E")
' 9 = SUM を意味する集計コード
visibleTotal = WorksheetFunction.Subtotal(9, tgtColumn)
' フィルター無視の合計
overallTotal = WorksheetFunction.Sum(tgtColumn)
MsgBox "抽出範囲の合計: " & visibleTotal & vbCrLf & _
"全体範囲の合計: " & overallTotal, _
vbInformation, "合計値の比較"
End Sub
コードのポイント
| 行 | 説明 |
|---|---|
| 9 | Subtotal(9, 対象範囲) でフィルター後に可視状態のセルのみ合計を取得しています。 |
| 12 | Sum 関数はフィルターの有無にかかわらず列全体を集計します。 |
| 14 | MsgBox で抽出範囲の合計と全体範囲の合計を並べて表示し、差異を一目で確認できます。 |
Subtotal と Sum の違い
| 項目 | Subtotal (9) | Sum |
|---|---|---|
| 非表示行(手動) | 無視 | 集計対象 |
| フィルターで非表示 | 無視 | 集計対象 |
| 数式サポート | あり | あり |
| 主な用途 | フィルター後の集計 | 全体集計 |
応用例
| 目的 | 実装のヒント |
|---|---|
| 行数を取得したい | 集計コード 3 (COUNTA) を使用します。 |
| 平均値を取得したい | 集計コード 1 (AVERAGE) を使用します。 |
| 結果をセルへ書き出す | Range("H2").Value = visibleTotal のようにセルへ直接転記します。 |
よくある質問
| 質問 | 回答 |
|---|---|
| 数値以外の列でも Subtotal は利用できますか。 | カウント系(COUNT、COUNTA など)の集計コードを指定すれば利用できます。 |
| テーブル(ListObject)でも同じコードを使えますか。 | ListObject.DataBodyRange.Columns("売上") のように対象範囲を指定すると同様に動作します。 |
まとめ
Subtotal はフィルターや手動の非表示行を自動で除外して集計できるため、抽出結果のみの合計値を取得する場面で非常に便利です。一方、Sum はシート全体を対象とします。両者を併用して差異を確認することで、レポートの精度向上に役立ててください。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
