Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2013)
ピボットテーブルで前年比の行を追加したい
投稿日時: 18/09/05 09:18:38
投稿者: hato

お世話になります。
 
2日前に質問させていただいた者です。何度もすいません。
ヒントをいただいて、月別と年別に分けることはできましたが、
どうやっても前年比の行を追加できません。
ピボットテーブルで前年比を行で求めることは可能でしょうか?
 
いろいろ調べても、列に前年比を追加するやり方はでてるのですが、
それを列に移動させると値が消えてしまいます。
 
データのない年月も表にできるように、年度テーブルに2017と2018を登録して、
元データは年度テーブル LEFT JOIN 実績テーブルとしています。
年と月の項目をもち、グループ化を使わずに現状まできました。
 
どうぞよろしくお願いします。
 
●現状
大分類  中分類   商品   年度  4月   5月   6月
大分類1 中分類A   商品A   2017  10   12   14
                2018  20   25
            商品B   2017   5    2
                 2018   4    6
 
●完成イメージ
大分類  中分類   商品   年度  4月   5月   6月
大分類1 中分類A   商品A   2017  10   12   14
                2018  20   25
                前年比 200% 208%
            商品B   2017   5    2
                2018   4    6
                前年比 80%  300%

回答
投稿日時: 18/09/05 12:22:38
投稿者: んなっと

前のスレッドで、ヒントだけでいいと書き込みませんでしたか?
計算の種類→基準値に対する比率→年 (前の値) 
が使いにくい特殊なレイアウトなので、それなりに苦労するのは当然だと思います。
 
 
以下、一つの例です。ほかにもあります。
 
「年」や「2017」「2018」のセルを選択した状態で
 
 フィールド/アイテム/セット
→集計フィールド
→名前:
前年比
 数式:
='2018'/'2017'
→OK
 
前年比の数値部分だけ(0.8とか2.5)の範囲を複数選択して、書式設定 パーセンテージ 
※この書式設定が、データの更新時に問題になる。

回答
投稿日時: 18/09/05 13:48:58
投稿者: んなっと

ちなみに、独自の(わがままな)レイアウトにしたいときの最終手段、GETPIVOTDATA関数を使う方法は...
 
    A    B   C     D   E    F   G    H   I    J
 3         日付    値                       
 4         4月       5月      6月      7月     
 5 名前   年   値  前年比  値  前年比  値  前年比  値  前年比
 6  あ 2017年   4  100.00%   5 100.00%   7 100.00%   9 100.00%
 7    2018年   21  525.00%  23 460.00%  52 742.86%  29 322.22%
 8  い 2017年   2  100.00%   4 100.00%   6 100.00%   8 100.00%
 9    2018年   22 1100.00%  24 600.00%  26 433.33%  28 350.00%
10                                      
11                                      
12                                      
13                                      
14                                      
15                                      
16                                      
17                                      
18                                      
19                                      
20 名前   年  4月    5月  6月   7月  8月   9月 10月   11月
21  あ 2017年   4     5   7    9  11    13  15    17
22    2018年   21    23  52    29  31    33  35    0
23    前年比  525%   460% 743%   322% 282%   254% 233%  #NULL!
24  い 2017年   2     4   6    8  10    26  16    18
25    2018年   22    24  26    28  30    32  34    0
26    前年比 1100%   600% 433%   350% 300%   123% 213%  #NULL!
 
C21
=GETPIVOTDATA(IF($B21="前年比",$D$5,$C$5)&"",$A$3,$A$5,LOOKUP("ー",$A$21:$A21),$C$3,C$20,$B$5,IF($B21="前年比",$B20,$B21))
右方向・→下方向・↓

投稿日時: 18/09/05 14:05:44
投稿者: hato

んなっとさん、私の知識不足のために何度も回答いただき申し訳ございません。
 
集計フィールドの追加をやってみたのですが、
「レコードが多すぎるため、この操作を完了できません」
というエラーがでてきました。
作成したピボットテーブルが1750行ほどです。
 
行を数えて改めて見てみると、そもそも行で前年比を持つこと自体が、
見づらいような気がしてきました。
やはり列で前年比をもったほうがいいのではと思い始めてきました。
 
試しに大分類のみを表示データにすると、前年比が出てきました!
 
後学のためにお伺いしたいのですが、行で前年比を求める場合、
行が多すぎると求めることは不可能でしょうか?
 
よろしくお願いします。

回答
投稿日時: 18/09/05 14:10:53
投稿者: んなっと

でしたらこのスレッドは無駄でしたね。
自分で検索して勉強するようにしてください。
閉じてください。

投稿日時: 18/09/05 14:19:00
投稿者: hato

追加でご回答いただき、ありがとうございます!
 
=GETPIVOTDATA() と集計アイテムを使い分けていけばいいということですよね。
詳細に式の内容まで教えていただき、ありがとうございました。
 
行の集計は、教えていただいた集計アイテムを追加して、大分類の前年比という形で
作成することにします。
とても助かりました。本当にありがとうございました。