見出し画像

マウス操作だけでTableau & Prepを使ってGoogle フォームのアンケートデータを全問一気に集計する方法

はじめに

皆様、初めまして。金沢にある北陸大学で教員をしている田尻慎太郎と申します。大学では学長補佐として情報環境や情報教育とIRを担当しています。

IR(Institutional Research)とは学内の情報を集約・分析することで、大学の意思決定や教育の質の改善に貢献する業務のことです。そのため、IR室が主管するものだけでも1年間に以下のアンケート調査をしています。北陸大学で各調査のツールとして利用しているのはGoogle フォームです。

1. 入学時アンケート(対象:新入生、調査時期:4月)
2. 学生調査アンケート(対象:全学生、調査時期:10月)
3. 卒業時アンケート(対象:卒業学生、調査時期:3月)
4. 卒業生アンケート(対象:卒業後3, 5, 10年の卒業生、調査時期:2月)
5. 企業アンケート(対象:採用企業、調査時期:2月)

実はこの数年でこうしたWEBアンケートデータの集計方法が先人達の創意工夫により非常に洗練され、現在ではとても効率的な処理が可能になっています。ところが、それらの方法はどの書籍にもまだ載っていませんし、ネットの情報も有益なものはたくさんあるものの、整理されたものは見つけにくい状況です。

そこでTableau Tips * Tabjo Advent Calendar 2023に手を挙げたのを良い機会として、この記事では現時点で私なりのおすすめの集計方法を紹介したいと思います。


アンケートフォームの設計

Google フォームやMicrosoft Formsの登場により、調査票を紙で作成していた時代に比べてアンケート調査の作成、実施、集計にかかる時間と費用は大幅に低減しました。反面、調査法の基礎を踏まえない大量のゴミアンケートが出回ることになったのは皆さんも感じていることでしょう。

Garbage In, Garbage Outという言葉の通り、不適切なフォームに回答してもらっても、得られるのは使えないデータとなります。回答結果のデータを効率的に集計するには、まずフォームを正しく設計することが重要なのです。

そのためにはWEB調査の時代であっても、社会調査法や質的調査法といった大学の授業で教えられてきた調査票の設計や調査実施の正しい手続きを学ぶことが欠かせません。ここではアンケートフォーム設計に非常に役立つ参考書を挙げておきます。業務や研究でアンケート調査をする必要がある方にとっては、常に手元に置いておくべき一冊です。

Google フォームの質問形式

本記事のための「サンプルスーパー」に来店した顧客に対するアンケートフォームを作成してみました。

Q01.あなたの性別は?
Q02.あなたの居住している都道府県は?
Q03.あなたが当スーパーに来店された理由について、以下の項目がどれだけ重要だったかをそれぞれ選んでください。
Q04.あなたは当スーパーの以下の項目について、どれだけ満足しているかをそれぞれ選んでください。
Q05.あなたの好きな野菜はどれですか?あてはまるものすべてににチェックをつけてください。
Q06.野菜を買うときどのような点を重視しますか。とくに重視することを3つまで選んでチェックをつけてください。

アンケートで良く使われるラジオボタン形式に加えて、集計時に問題となるチェックボックス形式と選択式(グリッド)形式の質問を加えた構成となっています。

このGoogle フォームの質問形式を、鈴木(2016)『質問紙デザインの技法[第2版]』p.187を参考にして整理したのが以下の表です。

選択回答法による主な回答形式とGoogle フォームの質問形式の対応

したがって「Q01.性別」は二項選択法のSAでラジオボタン、「Q02.居住地」は多項選択法択一式のSAでラジオボタン、「Q03.重要度」と「Q04.満足度」も択一式のSAだけれども選択式(グリッド)となります。また「Q05.好きな野菜」は択多式のMAでチェックボックス、「Q06.野菜重視項目」は択多式のLAでチェックボックスの「回答の検証」をオンにして「選択する最多個数」を有効にしたものになります。実務ではここまで厳密に整理せずLAをMAに含めることが多いですが、これらの関係をしっかり理解しておくことがフォームの設計では重要です。

LAの設定方法

質問項目、選択肢項目の番号を必ずつける

サンプルスーパー来店客アンケートを確認して気がつくのは、すべての質問にQ01.のように質問番号が、選択肢には1.、2.のように選択肢番号(回答番号)が振られています。Q03とQ04の選択式(グリッド)の質問の行項目には、A.、B.といった記号を付与しています。

選択式(グリッド)質問の場合の質問番号、項目記号、回答番号の付け方の例

この番号を付与しておかないとTableauでの可視化において、質問や回答の順番をいちいち設定しなおす手間が発生し、数問のアンケートであっても選択肢の並び替えも含めるとそれはかなりの作業を要することになってしまいます。そうならないようにアンケートフォームの作成段階で、必ず質問番号、選択肢番号をつけるようにしましょう。

鈴木(2016)p.133「4  質問項目番号のつけかた」では「質問紙全体で統一して連続的に表示する」としています。これはデータ処理を意図したものではありませんが、標準的な手法に従うことが、結局データ処理の手間を省くことに繋がるのです。

また質問番号と質問文、選択肢番号と選択肢は「1埼玉県」ではなく「1.埼玉県」のように.などの区切り文字を入れておきましょう。こうすることでフィールドの分割が簡単になります。Q03やQ04のような選択式(グリッド)質問では選択肢に「4.とても重要だった」「3.やや重要だった」というリッカート尺度を使う場合が多いのですが、選択肢を分割して数値のみのフィールドを作ることで、後で回答の平均値を求めるなどの計算することができるようになります(ここ大事)。

サンプルアンケートデータの読み込み

サンプルアンケートに230名が回答した(これをn=230と書きます)として、練習用のダミーデータも作成してみました。本記事用に作成したものですが、教育や学習用にどなたでもご自由にお使いください。

それではこのGoogle スプレッドシートからMicrosoft Excel (.xlsx)形式で回答データをダウンロードしてみましょう。

カンマ区切り形式 (.csv)でダウンロードすると文字化けする場合がある

ダウンロードしたExcelファイルをTableauのデータソースとして接続します。そして2列目の「Q01.あなたの性別は?」から最後の列の「Q06.野菜を買うときどの…」までの範囲を複数選択し、まずピボットをしてデータを縦持ちに変換します。

そして「ピボットのフィールド名」を「質問」に、「ピボットのフィールド値」を「回答」に、列の名前を変更します。

シート1に移ったら計算式のフィールドで「回答数」という新しいメジャーを作成しておきます。

Google フォームの回答データではタイムスタンプがユニークIDとなる

その集計をしたのが以下の状態です。Q01やQ02のラジオボタンを使った質問では問題なく集計できています。しかしQ04の選択式(グリッド)の質問では、A.品揃え、B.価格といった各項目が表示しきれていません。またQ05のチェックボックスの質問では、回答された選択肢すべての組み合わせが並んでしまい、単純に1.大根を選んだ人が何人、2.ほうれん草を選んだ人が何人ということが分かりません。

前処理せず縦持ちにしただけでの単純集計

これはGoogle フォームのチェックボックス形式質問の回答では、1つのセルに半角カンマ区切りで複数の値が記録されることが原因です。

これは良く知られた問題で、その対応策としてExcelで関数を利用して前処理する方法、Tableau Prepを使う方法、Tableauで各項目を計算式でフィールドに分割する方法といったものが、ネットを検索するとすぐに出てきます。

今回、本記事では関数やExcelアドイン、計算式を一切使わずに、Tableau Prepで前処理をし、Tableauで集計、可視化する方法を紹介します。

マウス操作だけでTableau Prepで前処理

前置きが非常に長くなりましたが😅、いよいよ選択式(グリッド)形式とチェックボックス形式の質問を含むGoogle フォームの回答結果データを一気に集計する方法を説明していきます。

本当はTableau Desktopだけで完結させたいと思ったのですが、この場合、Tableauだけではできず、どうしてもデータの前処理が必要になるため、今回はExcelではなくPrepを使います。

Tableau Prep Builderの画面名称

それでは同じくGoogle スプレッドシートからダウンロードしたダミー回答結果のExcelファイルを、Tableau Prepのデータソースとして接続して開きます。

まず最初にQ05.好きな野菜、Q06.野菜重視項目のMAの回答の処理をします。クリーニングステップを追加して右側にあるQ05のフィールド列の…メニューから、値の分割>カスタム分割をクリックします。そして区切り文字に「,」、分割方法を「すべて」にして分割します。同様にQ06も分割してください。

MAのフィールドを半角カンマでカスタム分割する

そうすると,区切りで分割された新たなフィールドがプロファイルペインの左側に、Q06で3列、Q05で4列新たに追加されます。

この複数の列を1フィールドに戻すためにQ06の3列を複数選択してメニューからマージをします。同様にQ05の4列もマージします。

カスタム分割後にできたフィールドをマージして1列にする

 そしてフィールド名を変更して「Q05.あなたの好きな野菜はどれですか?」「Q06.野菜を買うときどのような点を重視しますか。」にします。プロファイルペインの右側にあった元のQ05とQ06のフィールドは不要になるので、ここで削除しておきます。その後、タイムスタンプのフィールドをドラッグして一番左に移動しておきます。

続いて、タイムスタンプを除くすべてのフィールドを選択して、…メニューから「列を行にピボットする」をクリックします。

そのままフローペインでクリーニングステップを追加します。まずピボット後に生成された「ピボット1の値」のフィールド名を「回答」に変更します。

ピボット後にクリーニングステップを追加して、ピボット1の値を回答に名前変更する

次に「ピボット1の名前」フィールドのメニューから値の分割、カスタム分割を選び、区切り文字に「(」を指定し、分割方法を「すべて」にして分割します。(Google スプレッドシートでは、選択式(グリッド)質問の行項目は半角[]で囲まれているのですが、Tableauでは半角()に置換されていました。)生成された「ピボット1 の名前 - 分割済み 1」のフィールド名を「質問」に変更します。

フィールドのカスタム分割(1回目)

続いて生成された「ピボット1 の名前 - 分割済み 2」フィールドでもメニューから値の分割、カスタム分割を選び、区切り文字に「)」を指定し、分割方法を「最初の1フィールド」にして分割します。

フィールドのカスタム分割(2回目)

そして生成された「ピボット1 の名前 - 分割済み 2 - 分割済み 1」フィールドの名前を「項目」に変更します。

フィールド名の変更

ピボット後にできた「ピボット1 の名前」フィールドと、2回目のカスタム分割後にできた「ピボット1 の名前 - 分割済み 2」フィールドはもう不要なので削除します。そして左から「タイムスタンプ」「質問」「項目」「回答」の順に4つのフィールドをドラッグで並べたらPrepでの前処理は終了です!

前処理のフロー

最後にフローパネルで「出力」を追加し、「参照」から前処理済みの回答データを出力したいフォルダを選び、出力タイプをTableauデータ抽出 (.hyper)形式にして「フローの実行」をクリックします。Prepでもファイルメニューの「名前を付けて保存」からフローの工程を保存しておきましょう。

.hyperファイルの出力

Tableau Desktopでの集計

ではいよいよ出力したアンケート回答データのhyperファイルをダブルクリックして、Tableauで開きましょう。先ほどと同様に、計算式のフィールドで「回答数」というメジャーを作成しておきます。アンケート全体の単純集計結果が以下となります。フォームの段階で質問番号、項目記号、選択肢番号を付与していたおかげで、何もせずとも各ディメンジョンがフォーム通りの順番で並んでいることが分かります。

先ほどとは違い選択式(グリッド)形式のQ03とQ04の質問と回答のディメンジョンの間に、項目というディメンジョンが加わり、分かりやすく集計できています。またMAのQ05とQ06も、各選択肢を何人の人が選んだかの単純集計ができました。Vizはツールバーの「マークラベルを表示」をクリックした状態です。

Prepで前処理後の単純集計

最後に有効回答230のうち各回答が何%であるかを把握するため、列の集計(回答数)のフィールドをControl/Commandキーを押しながら右にドラッグしてコピーします。そしてコピーしたフィールドのメニューから「簡易表計算>合計に対する割合」を選び、すべてのマークカードの色に質問をドロップしたのが以下の状態です。

単純集計の完成!

データは縦持ちになっているので、以下のようなVizを作成することで全ての質問と項目の回答割合を100%積み上げ横棒グラフで示すことも簡単にできます。Q03とQ04の質問文は別名の編集で、それぞれ重要度と満足度に変更しました。また色の編集で「薄い緑 - オレンジ」のカラーパレットを選んでいます。

全質問・項目の回答割合を縦に並べて一気に表示する

記事にすると非常に長いステップのように感じられますが、慣れれば他のどのやり方よりも速いのと、アンケートの質問や選択肢がいくつあろうとも、この方法で一気に集計結果を可視化できるのは大きなメリットです。後は、集計結果をスクロールしながら、特徴的な質問、項目、選択肢を探索していくことになります。今回のダミー回答結果では、顧客はQ03.重要度では「品揃え」と「価格」を重要視していること、Q04.満足度では「価格」と「交通アクセス」については満足しているものの「接客」や「清潔感」で満足度が低く急いで改善する必要があることが見て取れます。Q05.好きな野菜では「大根」を選んだ顧客が他の野菜に比べて圧倒的に多かったことが分かりました。

おわりに

このようなアンケートデータの処理方法で、非常に参考になるのが第5回 Tableau Prepユーザー会 ~経験から語るPrep活用のベストプラクティス~でTableau Ambassador兼日本人初のPrep Starであるもりたひろあきさんがされた「アンケートデータ加工のベストプラクティス」のご講演です。アンケートデータの集計をするすべての人にとって必見の動画です!本記事は、この講演の内容をGoogleフォーム向けに操作を簡素化し、分かりやすくまとめたものです。

データは縦持ちですが、もりたさんが動画内で説明されているようにパラメータとLOD関数による計算フィールドを作成することで、全ての質問同士のクロス集計も可能となります。ここまで作成しておくことが、現在すべての担当者に求められるアンケートデータ分析における必須の準備ステップだと言えます。

もりたさんの動画と内容は同じですが、短時間でより簡潔に説明しているのが、大学のIR担当者(IRer)向けに各種のTableau便利情報をYouTubeで配信しているIRI Lab.(イリラボ)さんの以下の動画です。

IRI Lab.の和嶋雄一郎 先生(名古屋大学 教育基盤連携本部高等教育システム開発部門 特任准教授)が作成する動画は、どれも現場の困ったを便利に解決するTableau Tipsが満載で、大学IRに限らずTableauを使うすべての初中級の実務者の方に非常におすすめです。

最後に、これも大学教職員が対象なのですが、2016年12月の第1回から現在まで13回も続いて開催されているTableau大学ユーザー会で学校法人上智学院 IR推進室の相生芳晴さんが不定期にされているアンケートデータ可視化のハンズオンセミナーも、Tableau初心者にとっては非常に役に立ちます。

特に第10回の大学ユーザー会で相生さんが発表された「Tableauでのアンケート集計のコツとツボ 縦持ち?or横持ち? MAの扱い方など」の活用事例発表では、上述のPrepを使うのではなく、Excelを使って同様のことを実現する方法を説明されており、非常に参考になりました。実際、Tableau Prepを使うことができない環境にいる方もたくさんいらっしゃるので、Tableau Desktop Public EditionやTableau Public Web版とExcelを組み合わせたアンケートデータの集計処理の手法にはより大きなニーズがあるかもしれません。相生さんの発表の内容は、以下の記事にまとめられています。

実は、今回の回答データのQ03.重要度とQ04.満足度を使って、Tableauで重要度-満足度分析(CSポートフォリオ分析)ができるようになっています。上記の情報を参考にして、是非、チャレンジしてみてください。


長い記事を最後まで読んでいただき、ありがとうございました。もし少しでも反応があれば、またアンケート処理にまつわる別な記事を書いてみようと思います。

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