- ベストアンサー
ピボットテーブルで何番目のデータかを取得する
添付図のようなピボットテーブルを作りました。 行系列1が売上月、行系列2が売上日 列系列1が商品グループ、列系列2が商品コード となってます。 ここでE19セルに入っているデータは行系列1の何番目か、列系列1の何番目かを求めることはできますか? 添付図を例にするとE19に入っているデータは 行系列1(売上月)が2017年4月なので4番目、 列系列1(商品グループ)がKなので2番目、を取得したいです。 ちなみに最終的にやりたいことは このピボットを元データにしたグラフで E19に相当する場所のデータラベルを変更したいのですが、 グラフの中で該当データの場所を指定するのに Chart.SeriesCollection(行番号).Points(列番号)と指定するために、行番号、列番号が求めたいです。 エクセル2010
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
んー、、、。 ソーステーブルの[売上月]のデータ型は[文字列]ですよね? ' ' // ' Set Target = ActiveCell Set Target = Range("E19") ' 必ず単一セルを指定 With Target.PivotItem If Not Intersect(Target, .DataRange) Is Nothing Then ' 指定したセルがピボットデータ範囲にあれば 売上月Index = WorksheetFunction.CountIf(Range(.LabelRange, Target).Resize(, 1), "*月") 商品グループIndex = WorksheetFunction.CountA(Range(.LabelRange, Target).Offset(1).Resize(1)) MsgBox "売上月Index = " & 売上月Index & vbLf & "商品グループIndex = " & 商品グループIndex End If End With ' ' // [売上月]、[商品グループ]それぞれ何番目か、という答えです。 対象セルの指定が正しければ、ピボットテーブルが置かれた位置や、 各フィールドの[展開/折りたたみ]の如何には影響されずに求められます。 ラベル範囲それぞれを、指定したセルの「行」「列」迄の範囲に限定して、 「"月"で終る文字列の数」「文字列の数」を数えて、何番目かを求めます。 デザイン変更で[アイテムのラベルを繰り返す]設定した場合には機能しません。 "行番号"、"列番号"というのは、どのようなグラフか直接知らないと 答えられないので、相関はそちらで工夫してみてください。 以上です。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
http://www.excel-jiten.net/database/pivot_table_data_field_detail.html 「ピボットフィールドのデータフィールドのセルの元データを表示する」 では解決しないか?
お礼
ありがとうございます。 取得した情報をさらに2次利用したいので、できればVBAで取得したいです・・・質問に明示してなかったですね。すみません。
お礼
いつも答えて頂きありがとうございます。 COUNTIFを使うとは意外でしたが解決しました。 ありがとうございました。