Googleフォームでは,複数回答の質問を作成することができます。
例えばこんな感じですね。
アンケートフォームを自由に作成できるGoogleフォームは非常に便利なのですが,出力されるスプレッドシートの内容は1セル内に回答がまとめられており,集計がしづらいものになっています。
そこで今回はGoogleフォームの複数回答を楽に集計する方法についてまとめます。
結論としては,REGEXMATCH()を使うと大半の場合解決できると思います。
Googleフォームでの複数回答はカンマ区切りで出力される
Googleフォームの回答を出力すると,複数回答について,カンマ区切りで出力されてしまいます。
回答者が何個あげても1つのセルにまとめられるため,このままでは集計が難しいです。
また,「その他」を回答に用意していると,「その他」が出力されるのではなく,その他を選択後に記述する内容(野菜炒め,さくらんぼ,など)が出力されてしまいます。
複数回答の集計は各項目において”0”,”1”でまとめる
複数回答の場合,回答者によって「あてはまる」と選択する数は異なります。
例えば,先ほどの例であれば,好きな食べ物として,「なめろう」だけを挙げた人もいれば,「なめろう」と「かつおのたたき」を挙げるひともいると思います。
そのため,複数回答の項目については,項目ごとに列を作り,その各列に対して好きな物として「当てはまる」か「当てはまらない」かを”0,1”で入力すると集計がしやすくなります。
回答が少なければ目視でやってもいいですが,大量に回答があると整理するだけで時間がかかりますし,人の手でやるとどうしてもミスが出てきてしまいます。
そのため,スプレッドシート上で,関数を使って解決したいものです。
解決するためには,セル内に特定の文字列を含んでいるか否かを考えていけば良さそうです。
スプレッドシートでセル内に特定の文字列を探す方法
いよいよ本題ですが,スプレッドシートでセル内の特定の文字列を探すためにはいくつか方法がありますが,個人的に最も簡単だと思うのは,REGEXMATCH()を使う方法です。
REGEXMATCH()は正規表現に一致するテキストの一部を検索する関数ですが,セル内に特定の文字列が含まれるかどうかを調べることができます。
Googleフォームの複数回答を1件ずつカウントするために,まずは,Googleフォームの複数回答の列の隣に,以下のようにカテゴリごとに列を作成していきます。
「その他」がある場合は,「その他」の列と「その他_記述」という列を用意しておくとよいと思います。
REGEXMATCH()では,2つの要素を指定します。
1つ目は検索する対象のセル,2つ目は検索内容を選択します。
検索対象のセルは回答者の回答を選択し,検索内容は作成した各列名を含めれば良いです。
もし,対象のセルに検索内容を含んでいる場合は,TRUEが返され,含まれていなければFALSEが返されます。
このままでもかなりわかりやすいのですが,”0,1”で表現した方がカウントがしやすくなりますので,if文を組合せて”0,1”にします。
例えば,1番上の人であれば,=if(regexmatch(A2,B$1),1,0) というようにすれば,TRUEが1に,FALSEが0になります。
その他の項目は直接抽出できない
「その他」の項目については,回答者によって無限の可能性があるため,残念ながら簡単に抽出することは難しいです。
苦肉の策としてはsp
it関数を使って,カンマ区切りの項目を分割する方法があります。
split関数は,対象のセルの内容に対して,特定の文字を区切りとして,セルを分割する関数です。
カンマで分割を指定すると,以下のようにセルが分割されます。
その他の回答があった場合は一番右側のセルに出てくるはずなので,一番左側に設定したもの以外があるかどうかを確認すると良いと思います。
ただし,その場合はどうしても目視が必要になるので,少し面倒です。
そのため,Googleフォームで提案される「「その他」を追加」は使わず,他の選択肢と同様に,「その他」を自分で追加して,自由記述欄を次の質問として用意した方が良いかもしれません。
まとめ
Googleフォームでの複数回答の集計方法をメモしました。
- 複数回答は選択肢の列を作成して「0,1」で入力
- REGEXMATCH()を使って特定の文字列を検索する
- Googleフォームで提案される「その他」は少し面倒。苦肉の策としてsplit関数を使うと良いかも
もっと良い方法見つけたら更新したいと思います。
(2022.10.23 追記)
「その他」を抽出する方法に気づいたので、以下の記事でまとめました。