[[20220928112513]] 『ピボットテーブル inputboxでフィール追加方法』(ちゃりできてない) ページの最後に飛ぶ

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

 

『ピボットテーブル inputboxでフィール追加方法』(ちゃりできてない)

別件でピボットテーブルで悪戦苦闘しているため
ご教示ください。

フィールドを追加する際、チェックをいれるかと思いますが
日付が半年分ありレイアウトがみにくいため
検索ボックスに該当の日付を入力してそれだけを追加したいと考え下記考えてみたのですがうまくいかず・・・

Sub Macro1()

Dim sr As String '
sr = InputBox("日付を入力して下さい。")

    Range("A2").Select
    ActiveSheet.PivotTables("ピボットテーブル7").AddDataField ActiveSheet.PivotTables( _
        "ピボットテーブル7").PivotFields(sr), "sr", xlSum
End Sub

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


フィールドでなくアイテムでは?

(マナ) 2022/09/28(水) 13:34


マナ様

コメントありがとうございます。
これアイテムっていうんですね。
失礼しました。
(ちゃりできてない) 2022/09/28(水) 13:36


まずは、↓を提示できませんか。

・元データのレイアウト
・ピボットのレイアウト

(マナ) 2022/09/28(水) 13:44


[[20110209184943]]
別件の時もご案内いたしましたが
↑ とても、便利ですよ。。。^^;
よろしければ。。。お試しを。。m(_ _)m
(隠居Z) 2022/09/28(水) 14:29

それと、今回も

>クセルのバージョンはが部署によりちがっておりまして

ということであれば、一番古いバージョンを教えてください。

(マナ) 2022/09/28(水) 14:38


マナ様 隠居Z様
度々のご教示ありがとうございます。

隠居Z様
クリップボードコピーすごいですねこれ。
便利ーーー!!。
以前にも解決案頂きありがとうございます。

マナ様
データ量が多いためデータの一部になります。

<元データ>

    |[B]                   |[C] |[D]                       |[E]    |[F]    |[G]    |[H]      〜
 [1] |製品名                |適正|カテゴリ                  |9月30日|10月1日|10月2日|10月3日
 [2] |製品A          |    |予測数量                  |       |       |       |       
 [3] |               |    |生産量                    |   292 |       |  100  |       
 [4] |               |    |自社出庫-デポA            |   112 |       |       |       
 [5] |                      |    |自社出庫-デポB      |       |       |       |       
 [6] |                      |    |直送                      |       |       |       |       
 [7] |                      |    |                          |       |       |       |
 [8] |                      |    |自社在庫                  |    180|    180|    280|    280
 [9] |                      |    |デポA入庫                 |       |       |       |       
 [10]|                      |    |デポA出庫                 |       |       |       |       
 [11]|                      |    |デポA在庫                 |    112|       |       |       
 [12]|                      |    |デポB入庫                 |       |       |       |       
 [13]|                      |    |デポB出庫                 |       |       |       |       
 [14]|                      |    |デポB在庫                 |       |       |       |       
    
・実際には3〜14行まで製品Aがはいってます、見た目とピボット用で白文字でみえないようになってます。
・また、製品自体は300種類あり製品毎に関係する預け倉庫の箇所により行数がかわります。
・日付は9/30〜3/31迄あります。
<ピボットテーブル>

ピボットテーブル内訳
  A        B
顧客名      合計 9/30



  製品A   
  製品B
  製品C
  製品D
  製品E
  製品F


  製品A
  製品O
  製品D
  製品Q


  製品G
  製品H

・B列に本日時点のみデポ在庫を表示したい。
※現在はアイテム?にチェックをいれているが
顧客毎にテーブルがあるためこまっている。

<備考>
一番古いエクセルのver.は2010になります。

(ちゃりできてない) 2022/09/29(木) 10:00


元データの日付の表示形式は、9月30日 で。ピボットでは、9/30 
これで間違いないですか?

(マナ) 2022/09/29(木) 13:40


マナ様

はい、前に合計がついて 9/30です。

(ちゃりできてない) 2022/09/29(木) 13:44


まず、アイテムでなく、フィールドでよかったです。
(元データがそういうレイアウトだとは想定外でした)

 Sub test()
    Dim pvt As PivotTable
    Dim d As String

    d = Format(Date, "m/d")

    Set pvt = ActiveSheet.PivotTables(1)
    On Error Resume Next
    pvt.DataFields(1).Orientation = xlHidden
    pvt.AddDataField pvt.PivotFields(d), "合計 " & d, xlSum
    On Error GoTo 0

 End Sub

>顧客毎にテーブルがあるためこまっている。

この意味がわかりません。

(マナ) 2022/09/29(木) 14:13


マナ様

ご教示ありがとうございます。

>顧客毎にテーブルがあるためこまっている。
わかりにくくて申し訳ございません。
ピボットテーブル用のシート(デポ在庫)があり
そこにジャンル毎にピボットテーブルを作成しています。

A列B列で冷凍食品関連、
D列E列でチルド食品関連等、

各2列ずつしか使用しない予定であるため
一枚のSheetに作成をしております。

(ちゃりできてない) 2022/09/29(木) 14:21


マナ様

先程頂いたコードでフィールドの減ができました。
ありがとうございます。

いただいたコードで他テーブル一括でできるように勉強してみます。

(ちゃりできてない) 2022/09/29(木) 14:56


    On Error Resume Next
    For Each pvt In ActiveSheet.PivotTables
        pvt.DataFields(1).Orientation = xlHidden
        pvt.AddDataField pvt.PivotFields(d), "合計 " & d, xlSum
    Next
    On Error GoTo 0

(マナ) 2022/09/29(木) 15:09


マナ様

遅くなり申し訳ございません。
考えたんですができずにのぞいたらコード書いててくださり助かりました!!
ありがとうございます!!

無事に動作しております。
(ちゃりできてない) 2022/09/30(金) 08:45


コメント返信:

[ 一覧(最新更新順) ]


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