グループごとに集計表を作成し、それぞれを個別にエクスポートする方法

アンケートの集計では、「Q1からQ10までの設問それぞれについて、年代ごとの回答の内訳を見たい」といった場面がよくあります。

Exploratory v16からは、ピボットテーブルと集計テーブルで「繰り返し」が使えるようになり、繰り返しに列を割り当てると、その列の値ごとに独立した集計表が作られ、1つのチャートの中に縦に並べて表示できます。

繰り返しに設問を割り当てれば、設問の数だけチャートを作る必要がなく、1つのピボットテーブルを設定するだけで、設問ごとに分かれた属性別のクロス集計表も一度に用意できます。

さらに、繰り返しを設定したピボットテーブルは、Excelファイルや Google スプレッドシートに書き出すときに、グループごとに別々のシート(タブ)として出力されます。画面上で見た表を、そのままシートが分かれた状態のファイルとして配布できるため、報告書やレポートの作成がスムーズになります。

利用データ

今回は1行が1人のアンケート回答者を表し、列には職種・性別・年代・年収といった回答者の属性と、Q1からQ18までの設問への回答の情報を持つ家電製品のアンケートデータを利用します。

データはこちらからダウンロードいただけます。

データを加工して設問ごとのピボットテーブルを繰り返す

今回のデータは、1行が1人の回答者を表し、「Q1_総合満足度」から「Q10_サイト使いやすさ」までの設問が、それぞれ独立した列として横に並んでいます。これは「ワイド型」と呼ばれる形式です。

一方、繰り返しに割り当てられるのは1つの列です。ワイド型のままだと設問の名前がどこにも値として入っていないため、「設問」という単位で表を分けることができません。

そこで、設問の名前を入れる列と、その回答を入れる列の2つにまとめた「ロング型」に変換しておきます。

ロング型にすると設問が増えても列は増えず行が増えていく形になるので、集計や可視化がしやすくなります。

テーブル・ビューでShiftキーを押しながら「Q1_総合満足度」から「Q10_サイト使いやすさ」までの列を選択し、列ヘッダーメニューから「ワイド型からロング型へ」、「選択された範囲」を選択します。

ダイアログでは、開始に「Q1_総合満足度」、終了に「Q10_サイト使いやすさ」が選択されていることを確認します。

続いて、ロング型にまとめる列の総称を「キー列」に設定します。ここでは設問の名前をまとめたいので、キー列に「質問」とタイプします。値は回答に該当するため、「回答」と入力して実行します。

すると、ワイド型のデータをロング型に変換するステップが追加され、1行が「1人の回答者 × 1つの設問」を表す形になります。

どの設問かを表す「質問」列と、その5段階評価の数値が入る「回答」列ができ、年代・性別・職種といった回答者の属性の列は、そのまま各行に残ります。

これで、繰り返しに「質問」を割り当てられる状態になりました。

ピボットテーブルでクロス集計表を作る

次にチャートのビューに移動し、タイプから「ピボットテーブル」を選択し、行に「年代」を選択します。

続いて列には「回答」を選択します。

回答は1から5の5段階評価なので、列には1から5の値が並びます。年代 × 5段階の回答のクロス集計表の形になりました。

続いて、各セルに表示する値を設定します。

2つ目の値にも「(行数)」を選択し、集計関数を「割合」に変更します。

すると、各回答における年代の割合が計算されます。

今回は年代ごとに回答の内訳を見たいので、この緑色の文字をクリックして「割合の設定」のダイアログを開き、「方向」で「行 (左から右)」を選んで「適用」をクリックします。

これで、年代ごとに回答率と回答数を集計したクロス集計表ができました。

ここからが今回の新しい機能です。設問ごとに同じ形のクロス集計表を並べたいので、繰り返しを使います。

チャートの設定画面の繰り返しに「質問」を選択します。

すると、「質問」の値ごとにピボットテーブルが分割され、それぞれの表の上に設問の名前が見出しとして表示された状態で、縦に並んで表示されます。

行や列の構成、値の集計方法は、どの表でも同じです。回答率は表ごとに計算されるため、それぞれの設問の中で、年代ごとの内訳として読めます。

最後に結果のばらつきを分かりやすくするために、回答率の値に色を割り当てます。「回答率」の値のメニューから「色の割り当て」の「バー」を選択します。

すると「値のフォーマットの設定」のダイアログが開くので、各行(年代)の中で回答割合に応じて色を割り当てるために、色の割り当ての方向を「行(左から右)」に変更し、適用します。

これで、年代ごとの回答の割合を色付きで確認できるようになりました。

加工をせずに「(複数の変数)」で同じ表を作る

ここまでは、「ワイド型からロング型へ」でQ1からQ10までの設問をあらかじめ「質問」「回答」の2つの列にまとめてから、繰り返しに「質問」を割り当てていました。

しかし実は、この事前のデータ加工をしなくても、「(複数の変数)」を使えば同じように設問ごとの表を並べられます。

新しいチャートを作成する

「Q1_総合満足度」から「Q10_サイト使いやすさ」までが、それぞれ独立した列のままの元のデータに戻ります。新規チャートの追加ボタンをクリックしてチャートを追加し、「タイプ」に「ピボットテーブル」を選択します。

行に「年代」を配置する

「行」のエリアに「年代」を選択します。

繰り返しに「(複数の変数)」を選択する

続いて「繰り返し」のドロップダウンをクリックし、「(複数の変数)」を選択します。

すると「変数の選択」のダイアログが開きます。

「列を選択」のリストから、集計したい列をクリックして選びます。ここでは、Q1_総合満足度からQ10_サイト使いやすさまでの10個の列を選択し、「OK」ボタンをクリックします。

なお、ここで選択できるのは同じデータ型の列だけです。今回のQ1からQ10のように数値の列を選んだ場合は数値の列だけ、性別や職種のようなカテゴリーの列を選んだ場合はカテゴリーの列だけが対象になります。また、2列以上を選択する必要があります。

すると、設問ごとに年代別の回答者数(行数)が表示されます。

選択したあとで設問を選び直したいときは、「(複数の変数)」の下に表示される緑色の「変数の選択」のリンクをクリックすると、いつでも「列の選択」のダイアログを開き直せます。

列に「(変数の値)」を配置する

続いて、列に「(変数の値)」を選択します。「(変数の値)」は、「(複数の変数)」で選んだ10個の設問への回答そのものを表す項目で、ワイド型からロング型に変換したときの「回答」列にあたります。

列にはQ1からQ10までの設問の回答の選択肢である1から5の値が並びます。

値に回答率と回答数を設定する

人数だけでは、年代によって回答者数が違うため比較しづらいので、割合も並べて表示します。2つ目の値として「(行数)」を追加し、集計関数から「割合」を選択します。

すると、各設問の列ごとの回答者の割合が表示されます。

ただし、この状態では列(回答の値)ごとに年代の構成比が計算されているので、各年代の中でどの回答が多いのかを見たい場合は方向を変える必要があります。値の下に緑色の文字で表示されている「割合(列)」をクリックします。

「割合の設定」のダイアログが開くので、「方向」に「行 (左から右)」を選んで「適用」をクリックします。

緑色の文字の表示が「表計算: 割合 (行)」に変わり、年代ごとの回答の割合が計算できました。

そうすると、Q1_総合満足度からQ10_サイト使いやすさまでの設問ごとに表が分かれ、それぞれが年代別のクロス集計表になります。

「質問」列を作ったときと同じ考え方の表が、データ加工のステップを1つ挟まずにできあがりました。

割合に色を割り当てる

結果のばらつきを分かりやすくするために、割合の値に色を割り当てることもできます。2つ目の値の「(行数)」の値のメニューから、「色の割り当て」の「バー」を選択します。

「値のフォーマットの設定」のダイアログが開くので、各行(年代)の中で回答割合に応じて色を割り当てたいので、色の割り当ての方向を「行(左から右)」に変更し、適用します。

これで設問ごとに、各年代の回答の割合を色付きで確認できるようになりました。

これで、事前の加工なしで、設問ごとに分かれたクロス集計表を作成できました。

2つの作り方の違い

どちらの方法でもほぼ同じ表になりますが、使いどころに違いがあります。

ポイントは描画のスピードです。「(複数の変数)」はワイド型のデータから内部的に値を組み立てるため、データの行数が多い場合は、あらかじめロング型に変換しておいたデータを使う方が、チャートの描画が速くなるケースがあります。

データ量が少なく、チャートビューの操作だけでその場で手早く比較したいときは「(複数の変数)」を、データ量が多いときや、同じ集計を何度も繰り返し使うときは、ワイド型からロング型への変換を、それぞれの場面に合わせて使い分けるとよいかと思います。

グループごとにシートを分けてエクスポートする

繰り返しを設定したピボットテーブルは、Excelファイルに書き出すときに、グループごとに別々のシートとして出力されます。

チャートを右クリックして 「エクスポート」 を選び、「Excel」 を選択します。保存先とファイル名を指定してファイルを書き出します。

書き出したファイルを開くと、1つのブックの中に、繰り返しのグループごとのシートが作られています。シートの名前には、そのグループの値がそのまま使われ、シートの中のデータからは繰り返しに使った列が取り除かれます。合計や小計は、画面上で表示していたとおりに書き出されます。

Google スプレッドシートに書き出す場合も同じように、グループごとにタブが分かれた状態で出力されます。

なお、グループごとにタブを分けて書き出せるのは、新規のスプレッドシートとして書き出すときです。既存のスプレッドシートに上書きしたり追記したりする場合は、これまでどおり1つの表として書き出されます。

Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio