関数・メソッド

セル範囲を集計する【Subtotalメソッド】【ExcelVBA】

Subtotalメソッド

指定したセル範囲をグループ化し集計します。
日付ごとに売上集計をしたり商品ごとに注文数を集計したいときに使えます。

構文
Object.Subtotal(GroupBy,Function,TotalList,Replace,PageBreaks,SummaryBelowData)

Object Rangeオブジェクトを表す変数です。
GroupBy グループ化の基準となるフィールドの番号を整数で指定します。
Function XlConsolidationFunction 小計関数です。
TotalList 集計を追加するフィールドを指定します。
Replace 既存の集計表と置き換えるには、True を指定します。 既定値は True です。
PageBreaks グループごとに改ページを挿入するには、 True を指定します。
既定値は False で改ページが挿入されません。
SummaryBelowData 集計データを小計に対して相対的に配置します。
Functionの小計関数
xlAverage -4106 平均
xlCount -4112 カウント
xlCountNums -4113 カウント数値のみ
xlDistinctCount 11 Distinct Count分析を使ったカウント
xlMax -4136 最大
xlMin -4139 最小
xlProduct -4149
xlStDev -4155 標本に基づく標準偏差
xlStDevP -4156 母集団に基づく標準偏差
xlSum -4157 合計
xlUnknown 1000 集計に関数を指定しない
xlVar -4164 標本に基づく変動
xlVarP -4165 母集団に基づく変動

日付毎にデータを集計するサンプルコード

Public Sub Sample()
  '簡易的にデータを入力しておく
  Range("A1") = "集計表"
  Range("A2:A3") = "1月1日"
  Range("A4") = "1月2日"
  Range("B2:B4") = 3
  
  '■A2:B4のデータを日付毎に集計する
  'GroupByに1(A列)を指定し、日付毎にグループ化
  'TotalListに2(B列)を指定し、集計範囲を設定
  Range("A2:B4").CurrentRegion.Subtotal GroupBy:=1, _
  Function:=xlSum, TotalList:=2
  
End Sub


 

注意点

  • グループ化は日付や名称を自動で判断します。

 

コメント