• 締切済み

VBA Pivot複数セルを合計から平均へ

Windows7とExcel 2010です。 Pivotテーブルで作成されている表に対して、合計で集計されている複数のセルを選択して、一括して、平均へ変更するVBAを教えていただけないでしょうか。 異なるPIVOTテーブルでも使いたいので、Pivotテーブルの名称やフィールドの名称はマウスで選択した際に自動で取得したいです。 例: 下記の集計があります。(一時間毎の発電量を集計) 元      合計 / 電力  合計 / 日射量 4月2日  1000     3000 4月3日   500     2000 操作 1) 「合計 / 電力」「合計 / 日射量」をマウスで選択 2) マクロを実行すると  「平均 / 電力」「平均 / 日射量」となる。 よろしくお願いします。

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

平均を求めたいとのことですが、 どの数値たちの平均なのかが読み取れません。 1時間ごとのデータを羅列した一覧が別にあって、 それをPIVOTで集計したものが提示された一覧表ですね? 更に、日ごとの平均を求めるのであれば 少なくとも、PIVOTで集計した結果からは算出できませんね? PIVOTの集計元データのサンプル (シートの行番号、列番号もわかる画像)と 平均の求め方を掲示してほしいのです。 どうやら合計を求めるPIVOTは作成でされているようですので、 更に、平均を集計するPIVOTを用意するという対応も 考えられるんじゃないかと思いますがいかがでしょうか? 更に、VBAでとのことであれば、 SQL文で集計する選択肢もあるものと思います。

yamamoto2000
質問者

補足

下記で自己解決できました。 For i = 1 To Selection.Count PvName = Selection(i).PivotTable.Name PvField = Selection(i).PivotField.Name With ActiveSheet.PivotTables(PvName).PivotFields(PvField) .Function =xlAverage End With Next

関連するQ&A