• ベストアンサー

ピボットテーブルで何番目のデータかを取得する

添付図のようなピボットテーブルを作りました。 行系列1が売上月、行系列2が売上日 列系列1が商品グループ、列系列2が商品コード となってます。 ここでE19セルに入っているデータは行系列1の何番目か、列系列1の何番目かを求めることはできますか? 添付図を例にするとE19に入っているデータは 行系列1(売上月)が2017年4月なので4番目、 列系列1(商品グループ)がKなので2番目、を取得したいです。 ちなみに最終的にやりたいことは このピボットを元データにしたグラフで E19に相当する場所のデータラベルを変更したいのですが、 グラフの中で該当データの場所を指定するのに Chart.SeriesCollection(行番号).Points(列番号)と指定するために、行番号、列番号が求めたいです。 エクセル2010

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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 ' ' // [売上月]、[商品グループ]それぞれ何番目か、という答えです。 対象セルの指定が正しければ、ピボットテーブルが置かれた位置や、 各フィールドの[展開/折りたたみ]の如何には影響されずに求められます。 ラベル範囲それぞれを、指定したセルの「行」「列」迄の範囲に限定して、 「"月"で終る文字列の数」「文字列の数」を数えて、何番目かを求めます。 デザイン変更で[アイテムのラベルを繰り返す]設定した場合には機能しません。 "行番号"、"列番号"というのは、どのようなグラフか直接知らないと 答えられないので、相関はそちらで工夫してみてください。 以上です。

fxgame1224
質問者

お礼

いつも答えて頂きありがとうございます。 COUNTIFを使うとは意外でしたが解決しました。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

http://www.excel-jiten.net/database/pivot_table_data_field_detail.html 「ピボットフィールドのデータフィールドのセルの元データを表示する」 では解決しないか?

fxgame1224
質問者

お礼

ありがとうございます。 取得した情報をさらに2次利用したいので、できればVBAで取得したいです・・・質問に明示してなかったですね。すみません。

関連するQ&A

専門家に質問してみよう