• 締切済み

ピボットテーブルをいくつも作らなくてよい方法は…?

セミナーの来客者に関する集計データを作成しようとしています。 元となるデータには、A列に性別(男性or女性)、B列に年齢(年齢が入力されていないデータは「未記入」)を表す数値があります。C列以降には各列ごとに異なるセミナー名が項目名として書かれていて(約50列)、それらの列に値がついている場合は「出席」「契約済」「登録済」のいずれかで、値のないセルは空白になっています。 これらの各列のセミナーごとに、「出席」+「契約済」の合計値、および「登録済」も含めた3つの値のデータの合計を、性別、年齢別(年代ではなく、「20~25」「26~30」といった年齢の分類で)に集計したいと考えています。 思いついた方法は、各セミナーごとにピボットテーブルをかけていく方法ですが(セミナーごとの集計のほか、集計対象の全セミナーの合計値も出すため)、セミナーの数が多く、ピボットテーブルを大量に作らなければならないという難点があります。毎月のように発生する作業なので、もっと効率のよい方法はあるでしょうか。ちなみに、関数などは使えますが、マクロは知識がなく使っていません。 状況があまりうまく伝えられていないかもしれませんが、不明点があれば補足します。皆さんのよきアドバイスをお待ちしています。m(__)m

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 質問の解釈を間違えていたらごめんなさい・・・ ↓の画像のように表を作ってみました。 A列を作業列として利用させてもらっています。 とりあえず、女性の場合で、「出席」と「契約済」の数を合計するようにしています。 A13~A20は単純に1~8までの数値を入れています。 A2セルに =MATCH(D2,$C$13:$C$20,1) としてオートフィルで下へコピー そしてE13セルに =SUMPRODUCT(($A$2:$A$10=$A13)*($C$2:$C$10="女")*(E$2:E$10="出席"))+SUMPRODUCT(($A$2:$A$10=$A13)*($C$2:$C$10="女")*(E$2:E$10="契約済")) という数式をいれて 行方向と列方向へオートフィルでコピーすると 下のような表になります。 尚、「登録済」もデータに入れたい場合は 数式をアレンジすれば出来ると思います。 以上、参考になれば幸いですが まったく的外れの可能性もありますので その場合は無視してくださいね。m(__)m

amary
質問者

お礼

有難うございます。m(__)m そのまま当てはまる方法というわけではなかったのですが、かなり近いので、これを参考にさせていただきます。

回答No.1

セミナーをページフィールドにドラッグ これで足りなければピボットテーブルツールバーの ピボットテーブル - ページの表示 でどうでしょうか >毎月のように発生する作業なので、 データの範囲が増えるのでしょうか?

amary
質問者

お礼

回答有難うございます。m(__)m データの範囲は、セミナーの数の分だけ列が増えていきます。 (50列→次月は60列、といった具合) ピボットテーブルは、1つのシートの中で、セミナーごとにいくつもテーブルを作っています(現在、約50のピボットテーブルがあります)。新しく追加するセミナーがあると、既存のピボットテーブルをコピーし、集計する対象のセミナーの項目だけ入れ替えています。しかし、このやり方だと際限なくピボットテーブルが増え続けていくので、1つのピボットテーブルの中で集計する方法はないか(あるいは、もっと簡単な方法)と考えています。