- 締切済み
GETPIVOTDATAの使い方
添付図のピボットを作成しました。 行ラベルには順番に 「売上年度」 「売上月」 「区分」 が入ってます。(ケースA) このピボットに対して次のGETPIVOTDATA関数を作成しました。 (1)「売上年度」が「2017年度」 =GETPIVOTDATA("金額",$A$3,"売上年度","2017年度") (2)「売上月」が「2017年04月」 =GETPIVOTDATA("金額",$A$3,"売上月","2017年04月") (3)「区分」が「区分2」 =GETPIVOTDATA("金額",$A$3,"区分","区分2") (4)「売上年度」が「2017年度」かつ「売上月」が「2017年04月」 =GETPIVOTDATA("金額",$A$3,"売上年度","2017年度","売上月","2017年04月") その結果 (1)12126、(2)3018、(3)#REF!、(4)3018 となり(3)が取得できまませんでした。 なぜでしょうか? また、行ラベルの順番を 「売上年度」 「区分」 「売上月」 としたところ(ケースB) (1)12126、(2)#REF!、(3)#REF!、(4)#REF!、となってしまいます。 さらに、行ラベルの順番を 「区分」 「売上年度」 「売上月」 としたところ(ケースC) (1)~(4)すべて#REF!となってしまいます。 エラーにならずに集計するにはどうしたらいいでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tsubu-yuki
- ベストアンサー率46% (179/386)
> どんな組み合わせが必要になるか、実際のデータを見ないと判断できない のであれば、なおさらマクロ向きではないですよ。 マクロはいわゆる「定型処理」ですから。 使うたびにマクロを書き換えるのは本末転倒。 それならいちいち「判断して」関数を書き換えたり ピボットテーブルを作り変えても手間はおそらく一緒です。 そのあたりをファジーに組みたいのであれば、 おそらくQAサイトでは事足りないでしょう。 それを商売にしている会社や個人に相談することをお奨めします。
- tsubu-yuki
- ベストアンサー率46% (179/386)
なかなか回答がつかないようですので、 事象の解説・・というかヒントだけ出しておきますね。 とりあえず長いんで端折りますが、 > その結果(中略)何故でしょうか (3)ピボットテーブル中に行見出し「区分」が 「区分2」である行は何回出現しますか? 複数あっても合計してくれません。 ・・・ヒントではないな、コレ(笑)。 で、 > また、行ラベルの順番を(以下全部省略) GETPIVOTDATA関数は行ラベルの順に処理を進めていきますから、 「区分」でエラーが出ると、それ以降も同様にエラーを返します。 なので、上のケースは「月」がエラー、 下のケースは「年度」「月」ともにエラーが返ります。 ・・・コレもヒントではないかな(笑)。 > エラーにならずに集計するにはどうしたら 何をどうしたいのか?私には測りかねますが、 当然 「エラーが出ないように複数のピボットテーブルを作って、 エラーが出ないようにGETPIVOTDATAしてみては?」 という回答しかできないのもまた事実だと思いますよ。 「ピボットテーブルの勉強中」なら話は別として、 正直なところ「あるデータの合計」を求めるのであれば、 SUMIFS関数などで基のデータから抜き出す方が 簡単で応用も利かせやすいような気がしますよ。 日付の扱いに若干悩むかもしれませんが(笑)。
お礼
回答ありがとうございます。 お礼が遅れてすみません。 >(3)ピボットテーブル中に行見出し「区分」が > 「区分2」である行は何回出現しますか? > 複数あっても合計してくれません。 「区分2」である行は(添付図のピボットにもあるように)1つではありません。売上月ごとに複数あります。 複数あったら合計して欲しかったのですが、期待通りになりませんね。 >GETPIVOTDATA関数は行ラベルの順に処理を進めていきますから、 やはりそういう仕様なのですね。 おっしゃる通り あるデータの合計の求め方が1通りであればSUMIFSで事足りるのですが、 実際は区分が複数(商品区分、売上地域、売上店、・・・)、時間軸も複数(四半期、週、日)あり、 多角的な分析をするために 「年度ごとの商品区分の合計」、「週ごとの売上地域の合計」、「1日あたり売上店の合計」など色んな組み合わせで合計したいのです。 どんな組み合わせが必要になるか、実際のデータを見ないと判断できないため、 その場でGETPIVOTDATAをマクロで組み立てれないか、と思ってました。 本格的なBIツールでないと難しいかもしれませんね。