[[20210520152641]] 『ピボットテーブルのVBA』(しのみや) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ピボットテーブルのVBA』(しのみや)

 教えてください 

 【Sheet1の元データ】

   A  B    C
 1 NO 商品名 個数
 2 1  あ   10
 3 2  い   20
 4 3  う   30
 5 4  あ   5

 【Sheet2に出力したいピボット】
 行ラベル データの個数/商品名
 あ         2
 い         1
 う         1
 総計        4

 こちらをマクロの記録にすると以下のコードになりました

 Sub Macro1()

     Range("A1:C5").Select
     Sheets.Add
     ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Sheet1!R1C1:R5C3", Version:=xlPivotTableVersion10).CreatePivotTable _
        TableDestination:="Sheet4!R3C1", TableName:="ピボットテーブル3", DefaultVersion _
        :=xlPivotTableVersion10
     Sheets("Sheet4").Select
     Cells(3, 1).Select
     With ActiveSheet.PivotTables("ピボットテーブル3").PivotFields("商品名")
         .Orientation = xlRowField
         .Position = 1
     End With
     ActiveSheet.PivotTables("ピボットテーブル3").AddDataField ActiveSheet.PivotTables( _
         "ピボットテーブル3").PivotFields("商品名"), "データの個数 / 商品名", xlCount
 End Sub

 こちらをVBEの画面から実行すると結果が以下のようになります

 【Sheet4に作成されるピボット】
 データの個数/商品名 集計
 集計         4

 行ラベルに指定している商品名が抜けてしまうようなのです…

 ステップインで確認していくと、
 .PivotFields("商品名").Orientation = xlRowFieldの部分でたしかに行ラベルに指定できているのですが、
 最後の "データの個数 / 商品名", xlCountのところで値のみの指定になってしまっている様子

 こちらはどうすれば対応できるでしょうか

< 使用 Excel:Excel2010、使用 OS:Windows10 >


 フィールドが同じ"商品名"なので、なんかうまくいかないみたいです。
 理由は分かりません
 順番を逆にしてみてください。

     With ActiveSheet.PivotTables("ピボットテーブル3")
        .AddDataField .PivotFields("商品名"), "データの個数 / 商品名", xlCount
         With .PivotFields("商品名")
            .Orientation = xlRowField
            .Position = 1
         End With
     End With
(´・ω・`) 2021/05/20(木) 16:31

 (´・ω・`)さん ありがとうございます
 順番を逆にするとたしかにうまくいきました
 逆にしてみるという発想が出てくる柔らか頭がスゴイです

(しのみや) 2021/05/20(木) 16:38


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.