次の方法で共有

【VBA/ピボットテーブル】最左列の項目の1個目のアイテムのデータの数を取得する方法

Anonymous
2018-06-06T01:10:53+00:00

お世話になります。

VBAによるピボットテーブルの操作で悩んでおります。

20万件強×5項目程度のデータを扱っており、一旦ピボットテーブル化後、

ピボットテーブル上の項目に対し、ユーザが入力する、検索条件に対し、

高速に抽出する方法を探しています。

5年以上前の古いQ&Aコミュニティから、これはという手順を見つけたものの、

標題の件の問題を解決できず、しばらく悩んでおります。

サンプルで問題を再現します。

下図のピボットテーブルで、項目「メーカー」のアイテム「A」のみを

抽出する為に、下記のVBAがあります。

【上図左:ピボットテーブル(テーブル名:数量予測)】

(レポートのレイアウトで、”表形式で表示”にし、”アイテムのラベルを

すべて繰り返す”設定に変更しております)

【VBAソースコード】

Sub try_7()

    Dim pf As PivotField

    Dim r   As Range

    Dim n   As Long

    Set pf = ActiveSheet.PivotTables("数量予測").PivotFields("メーカー")

    Set r = pf.DataRange

    n = r.Cells.Count - 5

    If n > 0 Then

        r.Resize(n).Offset(5).Delete

    End If

End Sub

【上図右:VBA処理後のピボットテーブル】

問題というのは、データは変動し、メーカーのAの数も変動する中で、

項目「メーカー」のアイテム「A」の数を取得する方法が不明です。

(問題未解決のため、上記VBAコードは、Aの数(=5)は定数になっております。。。)

尚、VBAのバージョンは以下の通りです。

Microsoft Visual Basic for Applications 7.0

Version 1643 VBA: Retail 7.0.1643 Forms3: 14.0.7153.5001

解決できる手段をご存知の方がいらっしゃいましたら、

ご教授頂ければ幸いです。

どうぞ宜しくお願い致します。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2018-06-07T10:36:00+00:00

>20万件強×5項目程度のデータを扱っており、

>一旦ピボットテーブル化後、

>ピボットテーブル上の項目に対し、

>ユーザが入力する、検索条件に対し、

>高速に抽出する方法を探しています。

どこかのブック、あるはシートに

20万件強×5項目程度のリストがあるところまでは理解できるんですが

そこから、どのようなデータの集計結果?、抽出結果?を得たいのかを

読み取ることができません。

せっかくVBAを使うのであれば

ピボットテーブルを利用せずとも得られるのではないかと思います。

ですので、現方法の延長上に解を求めるのではなく

むしろストレートに

>20万件強×5項目程度のデータ

のサンプルと得たい結果を示すことで

識者からコメントが得られると思います。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2018-06-11T04:08:37+00:00

    ご返信有難う御座います。

    本件は自分で解決することができました。

    質問の仕方は以後注意して参りたいと思います。

    有難う御座いました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません