dポイントプレゼントキャンペーン実施中!

ピボットテーブルで、時系列データを簡単に取り扱う方法について


手元に下記のような形式のデータがあります。
表頭:年月
表側:商品名・分類
データ:売上

具体的には下記のようなものです。
商品名 分類  2001.1 2001.2 2001.3 ... 2009.11 2009.12
商品A 分類あ
商品B 分類あ
商品C 分類い
商品D 分類い
...


これを「分類」ごとの月別売上データにしようとすると、

つまり

    2001.1 2001.2 2001.3 ...
分類あ
分類い
・・・

を作りたい場合は、ピボットテーブルを使って

行ラベル:分類
列ラベル:値
値:合計/2001.1, 合計/2001.2 合計/2001.3 ...
とすればできるのですが、

値の欄に、年月のフィールドを入れる作業の手間が大きくて大変です。
(しかも、データに空欄があるせいか、データの個数⇒合計に直す作業もあります)


これらの作業を、簡単にすることはできないでしょうか。

A 回答 (2件)

ピボットというよりも関数を使って別のシートに表示させるようにしてはどうでしょう。


例えばシート1にお示しのデータがあるとして、作業列として、例えばP列のP2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,MAX(P$1:P1)+1,""))

次に別のシートではA1セルに分類、B1セルから右横方向には2001.1,2001.2・・・が入力されているとします。
A2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。

=IF(COUNTIF(Sheet1!$P:$P,ROW(A2))=0,"",IF(COLUMN(A2)=1,INDEX(Sheet1!$B:$B,MATCH(ROW(A2),Sheet1!$P:$P,0)),SUMIF(Sheet1!$B:$B,$A3,Sheet1!B:B)))

これで分類別の月別売り上げデータが表示されます。
    • good
    • 1
この回答へのお礼

ありがとうございます。

関数を使って表示させるのは一つの手ですよね。
関数だと手打ちが多くなるので、ミスしないか心配・・・というのもあったのですが。

ただ、今回の場合はそのほうが良さそうですね。
試してみます。ありがとうございました。

お礼日時:2010/08/07 01:33

こんにちは。



> これらの作業を、簡単にすることはできないでしょうか。
ピボットテーブルに限らず、表形式のデータは、
データベース機能を利用するデータには向いていません。
今の形式でデータを管理していくなら、
これからも簡単にすることはできないと思います。

元のデータを「年月、商品名、分類、売上」として管理すれば、
データの抽出も集計も、ピボットテーブルの機能を使って
今ある表形式の集計表も作成することができますので、
まず、データの管理の仕方を検討されると良いと思います。
    • good
    • 0
この回答へのお礼

>まず、データの管理の仕方を検討されると良いと思います。
おっしゃる通りだと思います。
実は、他の方から頂いたデータだったので、そういうことが出来なかったのです(;^ω^)

元のデータはそのように管理されていると思います(エクセルで扱うにしても莫大なデータだと思いますが)。


ご返答ありがとうございました。

お礼日時:2010/08/07 01:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!