プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。

VBAにて、シート内の範囲から、指定した列を元に、集計しようとしています。
ここまでは、何の変哲もない、集計を求めるだけのことなのですが、
集計の結果を見てみると、同じ項目なのに、別に集計されています。
たとえば、(1604)というデータで集計を取ると、シートの中に
『1604 計』という集計結果が二つ以上できてしまうのです。

どうして、一つに集計されて出てこないのでしょうか。
ソース部分は、こんな感じです。
  rngList.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(3), _
  Replace:=True, PageBreaks:=False, SummaryBelowData:=True


原因と対策をお教えください。

よろしくお願い致します。

「VBA SubTotalで集計を出そうと」の質問画像

A 回答 (1件)

こんばんは。



>ソース部分は、こんな感じです。
>  rngList.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(3), _
>  Replace:=True, PageBreaks:=False, SummaryBelowData:=True

その前のrngList は、単に、範囲を取るだけですよね。その次に、並べ替え(Sort)はしていますか?そうしないと、おっしゃっているように、下に、別の集計が出てきてしまいます。

なお、このようなリストの場合は、元のデータを書き換えることもない、ピボットテーブルのほうが優れているように思います。
    • good
    • 0
この回答へのお礼

回答、ありがとうございました。

うまくできました。

しかし、ソートをかけないとできないとは、なんと言うか、
不便な気もしなくもないのですが、どうなのでしょうか…。

今後とも、宜しくお願いいたします。

ありがとうございました。

お礼日時:2010/01/26 13:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!