|
集計処理はプロシジャ帳票編集の並び替えの後に続けて書きます。追加した部分を分かりやすくするために、既に作成してある部分は灰色にしています。
Sub 帳票編集()
'CSVデータの並べ替え(キーはB列/店舗コード)
Workbooks("uriage.csv").Activate
Workbooks("uriage.csv").Worksheets("uriage").Range("A1:M10000").Sort _
Key1:=Range("B1") _
, Order1:=xlAscending _
, Header:=xlGuess _
, MatchCase:=False _
, Orientation:=xlTopToBottom _
, SortMethod:=xlPinYin
'データの集計(件数の集計)
Workbooks("uriage.csv").Worksheets("uriage").Range("E1").Subtotal _
GroupBy:=2 _
, Function:=xlCount _
, TotalList:=Array(2) _
, Replace:=True
'データの集計(売上げ金額などの集計)
Workbooks("uriage.csv").Worksheets("uriage").Range("E1").Subtotal _
GroupBy:=2 _
, Function:=xlSum _
, TotalList:=Array(9, 10, 11, 12) _
, Replace:=False
End Sub
|
データを集計するには、Subtotalというメソッドで行います。基準となる場所はRangeで指定しますが、見出し行であればどのセルに基準を合わせても良いです。というわけで、あえてE1を指定してみました。また、2回集計を行っていますが、1コ目は金額の集計、2コ目は件数の集計です。
もっとも気になる集計処理のパラメタは次の通り。
GroupBy:=2 (この列の情報を元に集計してくれや!)
集計の基準となる列を指定します。2としたのは、店舗コードが左から2番目にあるからです。それだけです(笑)
Function:=xlSum (合計してくれや!/1回目の集計)
Function:=xlCount (件数を出してくれや!!/2回目の集計)
集計の方法を指定します。xlSumは合計です。他に、平均(xlAverage)、最大値(xlMax)、最小値(xlMin)などがあります。
TotalList:=Array(9, 10, 11, 12) (この列を集計してくれや!/1回目)
TotalList:=Array(2) (この列を集計してくれや!/2回目)
集計する列を指定します。複数ある時は、カンマ(,)で区切って指定します。
1回目の集計では価格、ポイント売上げ額、現金売上額、原価を集計しているのでArray(9, 10, 11, 12)を指定しています。数字は列の番号です。
2回目の集計では店舗コードごとに件数を集計しているので、Array(2)を指定しています。
Replace:=True (新しく集計するんだぜ!/1回目)
Replace:=False (集計を追加するんだぜ!/2回目)
集計結果を新たに作成するのか、既にある集計結果に追加するのかを指定します。trueは新たに作成です。
Falseにすると、既にある集計結果に追加されます。
|
|
|