列ごとに回答が分かれている複数回答のアンケートを1つの列にまとめる方法

アンケートデータでは、「購入の決め手」「使用シーン」「改善要望」のように、あてはまるものをいくつでも選べる複数回答の設問がよくあります。

こうした設問の回答は、選択肢ごとに列が分かれていて、その選択肢を選んだ人には1、選んでいない人には0が入っている形式で届くことがあります。

これはリサーチ会社に依頼したデータでよく見かける形式で、機械学習や統計の予測モデルを作ったりするときには便利です。

一方で、選択肢ごとの回答件数を数えたり、回答の組み合わせを見たりといった集計をしたいときには、以下のように選ばれた選択肢名がカンマ区切りで1つの列に入っている方が扱いやすくなります。

「複数回答の列をまとめる」 機能を使うと、同じ設問に属する0/1の列をまとめて選ぶだけで、選ばれた選択肢名をカンマ区切りでつないだ1つの列に変換できます。

利用データ

今回は1行が1人のアンケート回答者を表す、家電製品のブランド調査のアンケートデータを利用します。

このデータには、選択肢ごとに0/1の列に分かれている設問の両方が含まれています。

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

0/1に分かれた列を1つの列にまとめる

テーブル・ビューで、1つの設問に属する0/1の列をまとめて選択します。ここでは「Q16_購入の決め手」に関する5つの列をまとめます。

Shiftキーを押しながら 「Q16_購入の決め手」の全ての選択肢の列ヘッダーをクリックして、いずれかの列ヘッダーメニューをクリックし、 「複数回答の列をまとめる」 を選択します。

「複数回答の列をまとめる」ダイアログでは、左右2つのエリアに分かれていて、左側で設定を行い、右側で加工後のデータをプレビューできます。

「対象の列」 には、ダイアログを開く前に選択しておいた列があらかじめセットされています。

列のプルダウンメニューをクリックすると列の一覧が表示されるので、対象の列を追加したり外したりすることもできます。

その上にあるドロップダウンは対象の列の指定方法で、初期設定は 「列名を選択」 です。

列名をリストから選ぶ方法のほかに、文字列の前方一致・後方一致や正規表現で指定する方法も選べるので、選択肢が多く列名に共通のパターンがある設問で便利です。

「選択されていることを表す値」 では、どの値が 「その回答者がその選択肢を選んだ」 ことを表すのかを指定します。

ドロップダウンをクリックすると、次の3つ選択肢が表示されます。

  • 1: 0/1のダミー列の場合に選びます。
  • TRUE: TRUE/FALSEの論理型の列の場合に選びます。
  • カスタム: 上記以外の値が入っている場合に選びます。「はい」 のように、自分のデータで使われている値を指定できます。

今回のデータはこの形式なので、初期設定の 「1」 のまま使います。

「選択肢名」 では、まとめた列の中に入れるテキストを、列名からどのように作るのかを指定します。

  • 共通部分を除いた列名: 選択した列名に共通して含まれる部分を除いた残りを、選択肢名として使います。
  • 列名全体: 列名をそのまま選択肢名として使います。

今回の列名は 「Q16_使用シーン_寝室」 のように 「設問名_選択肢名」 の形になっていて、設問名にあたる部分が共通しています。

この共通部分を除いて 「寝室」 を選択肢名にしたいので、初期設定の 「共通部分を除いた列名」 を利用します。

これで、選択肢名の作り方を指定できました。

「除外する共通部分」 には、各列名から除かれる共通の先頭部分が表示されます。

今回は 「Q16_使用シーン_」 が自動で検出されています。自動検出された内容はあくまで提案なので、別の結果にしたいときはこの欄を編集できます。

これで、列名から除かれる共通部分を確認できました。

「新しい列名」 には、1つにまとめたあとの列に付けたい名前を指定します。初期設定では、自動検出された共通部分と同じ名前が入っています。

今回は「Q16_使用シーン」に変更します。

「区切り文字」 では、選ばれた選択肢名をどの文字でつなぐかを指定します。初期設定は 「コンマ (,)」 です。

その下の 「出力オプション」 では、加工後のデータの形を設定します。

  • 元の列を削除: 初期設定でオンになっていて、元の0/1の列が新しくまとめた列に置き換わります。元の列を残しておきたい場合はオフにします。
  • どの項目も選択されていない場合: 何も選ばれていない行に何を入れるかを、「欠損値 (NA)」 と 「除く」 から選びます。

今回は初期設定のまま進めます。

設定が完了したら、右側のエリアの 「プレビュー」 ボタンをクリックして、変換後のデータを確認します。

5つの0/1の列が 「Q16_使用シーン」 という1つの列にまとまり、選ばれた選択肢名がカンマ区切りで入っていることを確認したら、 「実行」 ボタンをクリックします。

これで、5つの列を1つの列にまとめることができました。

まとめた列は、対象にした列のうち一番左にあった列の位置に挿入されるので、テーブルの右端まで探しにいかなくても、もとの列があった場所でそのまま確認できます。

同じように、「Q17_改善要望」も同じ手順で1つの列にまとめます。

まとめた列を集計する

まとめた列は、そのまま設問ごとの集計に使えます。チャート・ビューに移動し、チャートの タイプ に 「ピボットテーブル」 を選択し、設問ごとに集計表を並べたいので、 「繰り返し」 に 「(複数の変数)」 を選択します。

「変数の選択」 のダイアログが開くので、1つにまとめた複数回答の列である 「Q16_使用シーン」と「Q17_改善要望」を選択し、 「OK」 をクリックします。

これで、集計する設問を指定できました。

次に「行」 に 「変数の値」を選択します。

この状態では、カンマ区切りの回答がそのまま1つの値として扱われるため、回答の組み合わせごとに集計がされてしまいます。

そこで、「行」のメニューから 「複数の値」 を選択します。

すると、カンマ区切りの値が分割され、選択肢ごとに何人が選んだのかを集計できます。

コンマ以外の区切り文字でまとめた場合は、分割の設定を変更します。

「複数の値」 の緑色のテキスト、または三本線のメニューの 「複数の値」 をクリックすると、 「複数の値の設定」 のダイアログが開き、以下を設定できます。

  • 区切り文字: 値を分割するための区切り文字を指定します。初期設定は 「コンマ (,)」 です。
  • 前後の空白を除去する: 値の前後に入っている空白を取り除きます。
  • 空の値を除外する: 空文字になっている値を集計から除きます。
  • 行内の重複した値を除去する: 同じ行の中に同じ値が複数回出てきた場合に1つとして扱います。
Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio