[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ピボットテーブルの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.