今回は、複数選択肢でアンケート回答されてきた場合の処理について、解説します。
アンケートの設問として、複数回答を許可している場合がよくあると思います。
1列に複数の値が入ったままでは、それぞれの値に何人回答者がいるかをカウントしたくても、そのままではグラフ化できません。
目標としては、以下のようなグラフを得ます。
英語:50人
数学:35人
国語:40人
理科:24人
社会:30人
複数回答が可能な設問アンケートのデータから、科目ごとの回答人数がわかるグラフを作成していきます。
1.データセット
その回答データは、以下のようなものですので、今回はこのデータを使用します。
【好きな科目】
回答者ID | 好きな科目 | 好きな科目名 |
s5m5pkr | 1,2,3,4 | 英語,数学,国語,理科 |
q1j9bkx | 2,4,5 | 数学,理科,社会 |
c3y4eid | 1,3,4 | 英語,国語,理科 |
u5r7qfo | 1,4,5 | 英語,理科,社会 |
p2v2jdw | 1,5 | 英語,社会 |
e2r3vvf | 4,5 | 理科,社会 |
また、数値での科目と科目名の対応テーブルも作成します。
【科目マスター】
order | subject |
1 | 英語 |
2 | 数学 |
3 | 国語 |
4 | 理科 |
5 | 社会 |
2.データの変換(Power Query)
まずは、ステップの全容です。
「ソース」~「変更された型」までは自動で挿入されているものです。
「削除された列」では、科目名は不要なので削除します。
次のステップ「区切り記号による列の分割」が今回の肝になります。
複数の値が入っている分割したい列(今回の場合は「好きな科目」)を選択し、メニューから「列の分割」>「区切り記号による分割」を選択します。
すると、以下のポップアップが出ます。
「詳細設定オプション」はデフォルトでは「列」が選択されているので、「行」に変更します。
「OK」を押すと、以下のようにデータが分割されます。
「好きな科目」でカンマで区切られた値の分だけ、行ができます。
3.凡例テーブルとリレーションシップの作成
このままグラフを作成すると、こうなります。
ほしいデータとしては、既にできていますね。
ただ、Y軸の値が1,2,3,4,5となっていて、どの科目なのかがパッと見てわかりません。
そこで使うのが、こちらの記事でも解説した凡例順の並び替えテクニックです。
データセットでインポートした2つ目のテーブル【科目マスター】を使用していきます。
まずは、リレーションシップの作成をします。
続いて、データビューに移り、順序の設定をします。
4.ビジュアルの編集
それでは、最後のステップです。
先ほど作成したグラフの「Y軸」を「好きな科目」から「subject」に変更します。
おわりに
いかがだったでしょうか?
アンケートにおいて、複数選択を許可する設問設定はあるあるですね。
そんなときは、「列を分割する」ことが肝となりますので、使ってみてください!