• 締切済み

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

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

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (454/692)
回答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

  • ピボットテーブルの集計値をVBAでカンマ区切りにしたい

    ・excelのシートにあるピボットテーブルの集計値の書式をカンマ区切りにするVBAを作成したいのです。どうすればよいでしょうか。 ・汎用的なVBAにしたいので、ピボットテーブル名やフィールド名もVBAで取得するようにしたいです。 ・VBAを実行する前に、その集計値の1つを選択しておきます。 よろしくお願いいたします。

  • Access2003 空白セルの平均集計について

    Access2003 空白セルの平均集計について こんにちは。 Access初級者ですが質問させていただきます。 空白セルを含む平均集計の扱いについて質問がございます。 毎日の交通量を、以下の手順で 月々の平均値を求めようとしていますが、 テーブル(交通量はテキスト型で設定) ↓ Val関数で数値化 ↓ クロス集計クエリで月ごとに平均化 ここで、欠測の日はテーブルでは空白セルとしていますが、 Val関数で数値化するとエラーになってしまいます。 また、Null値=ゼロ に設定すると、適切な平均値が得られません。 ※平均値の分母は、(月の日数)-(欠測日数)としたい。 ※欠測日数はつきにより異なる。 なにか良い方法がありましたらご教示お願いできますでしょうか。 よろしくお願いいたします。

  • 風力発電データの平均値の求め方

    風力発電電力は風速3乗則で求められます。 以下、例で示すと、 定格 風速10m/sに於いて、発電電力1kWの場合、 これを計算すると次のようになります。 風速  発電力(量) m/s  W(Wh) 2.0   8.0 3.0  27.0 4.0  64.0 5.0  125.0 6.0  216.0 風速が1時間続いた場合は発電量Whになります。 これを実測データに置き換えて質問します。 上記区間についてそれぞれ平均(合計の平均)を求めると、 平均風速は、  4.0 m/s 発電力は、合計440.0、平均88.0 W この結果による、88.0 W/平均風速4.0 m/sは、 計算(定格)上の 64.0 W/風速4.0 m/s より効率が良い評価となってしまいます。 全般的にこの方式(平均発電量対平均風速)の値は、定格(1点値)を上回る結果となります。 定格(1点値)と比較できるところの、前記の6点の発電力対風速の結果のまとめ方(風速○○値に対する発電力○○値)の手段があったら教えてください。 #### 3乗合計3乗根の平均や3乗合計平均の3乗根では無理でした。他の風速も含めて乖離が多きぎですす。

  • Access2003 クロス集計クエリでの合計

    ☆以下のようなテーブルで、フィールド[ID]~[C]があり、文字および数字のデータが混在しています。   ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓ =========================================== (テーブル(1)) [ID]  [A]      [B]    [C]     1    111     英語    10    2    222     英語    20    3    333     数学    30    4    111     国語    40   5    222     数学    50    6    333     国語    60    7    222     国語    70   8    333     英語    80     9    111     数学    90     =========================================== [課題] クロス集計クエリを作成する (1) フィールド[A]を行見出しに設定、    フィールド[B]を列見出しに設定、    フィールド[C]を集計する項目に設定する。   (2) フィールド[C]の値を列ごとに平均を計算し、    行ごとに合計を計算する。   ※ 列と行で、それぞれ集計した値を表示する   ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓ =========================================== [クロス集計結果]     合計  英語  国語  数学     111  140   10    40    90        222  140   20    70    50     333  170   80    60    30  --------------- 平均  150   36     56   56 ===========================================   ↑  ↑  ↑  ↑  ↑  ↑  ↑  ↑    上記のようなクロス集計クエリの結果を表示させたいのですが、 どうすればよろしいでしょうか? また、クエリだけでは出来ない場合は、SQLで教えていただければ幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。

  • (ACCESS)合計を求めたいのですが…

    赤、青、白の3色のサイコロを同時に振って 出た目を色ごとに記録していく データベースを作成しようとしています。 サイコロの目ごとに色別の出現回数を カウントしたクエリを さらに1まとめに合計したいと思い 色々いじくってみたのですが うまく出来ません。 集計して合計を出すには どうすればよいのでしょうか? ---------------------------------------------- テーブル サイコロテーブル      フィールド(回数、白色、青色、赤色)      目テーブル       レコード(サイコロの目=1,2,3,4,5,6) クエリ 選択クエリ(白、青、赤) 選択クエリ(まとめ)

  • ピボットテーブルで値の集計方法の初期設定を変えたい

    中を見ていただき、ありがとうございます。 Excel2010で、ピボットテーブルを使って以下のようなデータを集計すると、値フィールドの集計方法は「合計」がデフォルトで採用されます。 科目 得点 数学 100 英語 20 数学 90 音楽 80 数学 30 英語 70 そのうえで、集計方法を「平均」にしたければ、値フィールドの設定を変更すればよいのですが、複数のピボットテーブルを使ったり、値フィールドを複数並べたい場合に、いちいち設定を変更するのは面倒ですし、設定し忘れるというミスも起こります。 そこで、以下のいずれかの方法をご存じの方がおられましたら、その方法をご教授ください。  ・最初から「合計」ではなく「平均」が集計方法として選択されるようにする  ・複数の値フィールドの集計方法を一括で変更する

  • ピボットの集計方法「合計」初期設定、他

    エクセルのピボットテーブルを作成するとき、 データアイテムの集計方法がいちいち「個数」になってしまうのですが、最初から「合計」に設定する方法はないでしょうか? (2)また列フィールドの選択肢が沢山ある時、まとめて列フィールドに表示させる事はできないでしょうか?一つ一つリストから移動しないといけないでしょうか? (3)さらに行フィールドに項目を選ぶと、全てに「集計」行が出来て、一つ一つ「表示しない」にしないと消せないのですが、最初からあるいはまとめて「集計」行を表示させない方法はないでしょうか? よろしくお願い致します。

  • ACCESS2010 テキストボックスに合計値を

    どなたかお助け願います。 私のPC環境は Windows7 64bit ACCESS2010  でございます。 ACCESSは苦手ながら簡単な環境を作成いたしております。 テーブル名 T_入出金    フィールド1 入出金月    フィールド2 入金業者名    フィールド3 入金額    フィールド4 出金業者名    フィールド5 出金額 クエリ Q_入金クエリ    フィールド1 入金額の合計: 入金額    集計:合計    フィールド2 入金業者名 集計:Where条件 抽出条件:Like "業者名" フィールド3 入出金日  集計:Where条件 抽出条件:Like 201401  ←日付です。 としたものを作成いたしました。 このフィールド1の合計結果をテキストボックスに表示したく、 メイン帳票フォームのヘッダー部分にテキストボックスを設置し、  コントロールソースに =[Q_クエリ]![入金額の合計] としましたが、#Name? と出てしまいます。 関数が間違っているのでしょうか・・・?

  • Microsoft Access 2003について

    複数のテーブルまたはクエリを使いレポートを作成したいのですが 「選択したフィールドのレコードソースにアクセスできません。テーブルとそのテーブルを基にしたクエリのフィールドを選択した可能性があります。もしそうであれば、テーブルかクエリのどちらかのフィールドだけを選択してください。」と出て作れません。 詳細は以下のとおりです。 支出テーブル ID   月   科目  金額   1    1   交際費  10     2    1   雑 費  20  3    2   交際費  30          (以下12月まで) 収入テーブル ID   月   科目   金額   1    1   仮払    10     2    1   雑収    20  3    2   仮払    20          (以下12月まで) 支出クエリ(クロス集計) 科目 1  2  3  4  5  6  7(以右12月まで) 交際 10 20  30  40  50  60  70 雑費 20  30  40  50  60  70  80 合計 30  50 70  90  110  130  150 収入クエリ(クロス集計) 科目 1  2  3  4  5  6  7(以右12月まで) 仮払 10 20  30  40  50  60  70 雑収 20  30  40  50  60  70  80 合計 30  50  70  90  110  130  150 収支レポート(作成したいレポート) 科目 1  2  3  4  5  6  7(以右12月まで) 仮払 10 20  30  40  50  60  70 雑収 20  30  40  50  60  70  80 合計 30  50  70  90  110  130  150 -------------------------------------- 交際 10 20  30  40  50  60  70 雑費 20  30  40  50  60  70  80 合計 30  50  70  90  110  130  150 ------------------------------------- 残高  0  0   0   0   0   0   0

  • アクセス クロス集計クエリ 縦の合計

    テーブル1には 会社名 取引日 金額 A社 2014/01/01 ¥100 B社 2014/01/02 ¥200 A社 2015/01/01 ¥500 というデータがあります。 このテーブル1を基にクロス集計クエリで TRANSFORM Sum([テーブル1].[金額]) AS 金額の合計 SELECT [テーブル1].[会社名], Sum([テーブル1].[金額]) AS [合計 金額] FROM テーブル1 GROUP BY [テーブル1].[会社名] PIVOT Format([取引日],"yyyy"); というクエリを自動生成しました。 この時、横の合計ではなく縦の合計(年ごとの合計)を表示するには良いでしょうか? サブクエリというのを使うようですが、どうすればいいかわかりませn。 よろしくお願いします。