見出し画像

アンケートデータを、Tableau Prepで分析しやすく整形しよう!

ナツエです。

アンケートデータをそのままTableau DeskTopに接続して、絶望した方。。
大丈夫、私もですよ~!

アンケートデータはちょっと癖モノですね。
アンケートの設計によって、事前のデータ整形方法も様々。
前回習ったやり方を踏襲しても、今回の処理がマッチするとは限らない。。
何なら、Prepじゃなくて、Excelでやっていくケースもあったりして。。
これも触ってなんぼ。の世界だなぁ。
と、毎回思ってしまいます。

今日のテーマは、【アンケートデータを、Tableau Prepで分析しやすく整形しよう!】です。
今回も備忘録的にアウトプットしていこうと思っています。
ちょっと説明に自信がないので、都度作文の修正をかけていく予定です。
また、冒頭でも触れましたが、今からお伝えする内容は、実践に基づいた事例なので、全てのアンケートデータにマッチするものでは無いことをご認識おき下さいませ☺

用意するものとサンプルデータの説明を行ったのち、
具体な手順へ進みます。
早速やっていきましょう。

手順に際して


【用意するもの】
 ①アンケート集計表(アンサーシート)
 ②アンケートレイアウト表
 ③Tableau Prep

【ざっくりした方向性】
 ①アンケート集計表を縦持ち
 ②アンケートレイアウト表のマルチアンサーを整理
 ③ ①と②を結合
こんなイメージです。

【データの確認】
 ①アンケート集計表(アンサーシート)
 ・横1行に回答者1人のデータ
  ・質問1~6(ここではq1、q2…q6)に対応する回答番号と、回答番号に対応する内容(ここではq1_Label、q2_Label…q6_Label)がそれぞれ右列に配置
 ・マルチアンサーの場合は、対応する回答番号ではなく、回答(ここではq5_1、q5_2...q5_6)と一致しているものに対して1または0で判別

アンケート集計表(アンサーシート)の詳細(サンプルデータ)

 ②アンケートレイアウト表
  ・質問とに対して、それぞれ番号と文字で整理しています。
   6つのクエリで構成された表です。  
Question ID(質問ID)、Variable ID(質問の小区分ID)、Type(質問区分)、Answer Code(質問に対応する回答番号)、Question Label(質問内容)、Answer Label(回答の内容)

アンケートレイアウト表の詳細(サンプルデータ)

アンケート集計表を、Tableau Prepに接続してスタート!

【手順①】不要なクエリを削除。


 クリーニングステップを使います。
 アンケート集計表の各Question Label(q1_Label~q6_Label)を削除
 →これは、アンケートレイアウト表の、Anser Labelと内容が重複しているためです。

【手順②】
 アンケート集計表のデータ型を縦持ちに変換します。


 ピボットステップを使います。
 Ctrlキーまたは、Shitキーを使って、q1~q4,q5_1~q5_5,q6全てを選択し、”ピボットされたフィールド”へ持っていきます。

データ縦持ちのイメージ図。左側のフィールドから選びますよ。
(サンプルデータにないクエリは無視してくださいね。)

これで、アンケート集計表は、各質問(ピボット1の名前)と、それに対応した回答番号(ピボット1の値)だけを持ったデータになりました。
また、これは【手順④】で2つのデータを結合するキーとなりますよ!

【手順③】アンケートレイアウト表を追加接続しましょう。
 アンケートレイアウト表のマルチアンサーを、「1」へ修正します。


 →性別などの区分、熱意の度合いなどを集計する時、シングルアンサーではそれぞれ番号を与えますが、マルチアンサーではすべて並列ですので、1とします。

ここではq5を修正します★ Type(質問区分)が"multi"で、Answer Codeが1~5までありますね。

クリーニングステップを使います。
計算フィールドの作成から、IF文を使って以下のように書きます。
if [Type] = "multi" then 1
else [Answer Code]
end

計算式に名前をつけましょう(←大事)
「Answer Code_調整」としておきます。

Typeはこれにてお役御免なので、削除します。


【手順④】
 アンケート集計表と、アンケートレイアウト表を結合します。


 結合ステップを使います。
 【手順②】でピボットしたデータをそれぞれ、アンケートレイアウト表と紐づけるイメージです。
  「ピボット1の名前」=Variable ID(質問の小区分ID)
  「ピボット1の値」 =Answer Code_調整
それぞれが一致したフィールドですね。


結合イメージ図。(最初は二つのデータをなんども行き来して確認しました・・・汗)

【手順⑤】もう一息!


 クリーニングステップを使います。
 ■1. アンケートレイアウト表からやってきたQuestion ID(質問ID)を削除しましょう。
 →これは、アンケートレイアウト表のVariable ID(質問の小区分ID)で十分代替えが効きますし、結合するキーでもないので不要かなと思います。
 ■2. Anser_labelに大文字が含まれているので、きれいにしましょう。

【手順⑥】フローを回しましょう!


 出力ステップを使います。
 任意の出力場所、ファイル形式(hyper、csv、Excel)を選んで、
 ファイルに名前をつけましょう(←大事!)
 は~やれやれ、どうにかクリーニング作業終了です!
 お疲れ様でした!

完成したフローのイメージ図
(画面では、サンプルデータに含まれないクエリが存在するため、説明した手順以外の処理も入っています。)


ここまで、読み進めてくださった(忍耐づよい)あなた、
どうでしたか?
一部分でもお役に立てばとっても嬉しいです!

ほいじゃぁ、またね👋


この記事が気に入ったらサポートをしてみませんか?