こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

Windows7とExcel 2010です。
Pivotテーブルで作成されている表に対して、合計で集計されている複数のセルを選択して、一括して、平均へ変更するVBAを教えていただけないでしょうか。
異なるPIVOTテーブルでも使いたいので、Pivotテーブルの名称やフィールドの名称はマウスで選択した際に自動で取得したいです。

例:
下記の集計があります。(一時間毎の発電量を集計)

     合計 / 電力  合計 / 日射量
4月2日  1000     3000
4月3日   500     2000

操作
1) 「合計 / 電力」「合計 / 日射量」をマウスで選択
2) マクロを実行すると
 「平均 / 電力」「平均 / 日射量」となる。

よろしくお願いします。

投稿日時 - 2018-04-17 12:17:43

QNo.9489479

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

平均を求めたいとのことですが、
どの数値たちの平均なのかが読み取れません。

1時間ごとのデータを羅列した一覧が別にあって、
それをPIVOTで集計したものが提示された一覧表ですね?

更に、日ごとの平均を求めるのであれば
少なくとも、PIVOTで集計した結果からは算出できませんね?

PIVOTの集計元データのサンプル
(シートの行番号、列番号もわかる画像)と
平均の求め方を掲示してほしいのです。

どうやら合計を求めるPIVOTは作成でされているようですので、
更に、平均を集計するPIVOTを用意するという対応も
考えられるんじゃないかと思いますがいかがでしょうか?

更に、VBAでとのことであれば、
SQL文で集計する選択肢もあるものと思います。

投稿日時 - 2018-04-17 20:40:40

補足

下記で自己解決できました。

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

投稿日時 - 2018-05-06 22:45:08

あなたにオススメの質問