こんにちは😃愛西スタッフです!
先日、アンケートの入力作業がありました。
中にはWebサイトのフォームを使って回答されたものもあり、それも集計作業の対象となりました。
ここで、今回集計の際に工夫したことをダミーアンケート「あなたが一番好きな日本の伝統料理は何ですか?」を使って説明します。
2. 天ぷら
3. すき焼き
4. おでん
5. 味噌汁
6. うな重
7. そば
8. その他(自由記述)
回答の形式と集計上の課題
Web回答はCSV形式で保存されていて、内容は次のように1セルに複数の回答が「番号 項目名」という形式でセミコロン(「;」)区切りで入っています:
例: 1 寿司;2 天ぷら;5 味噌汁
この形式、人が読むには分かりやすいのですが、番号だけを集計するには一工夫が必要です。というのも、回答番号がテキストと一緒に入っており、そのままでは集計や分析に使えないからです。
今回のアンケートの、納品データの形式として1つのセルに「番号だけ」を入れなければなりませんでした。そこで、どうやって番号を抽出したかを説明します。
🛠 SpreadSheetで番号を抽出する工夫
ステップ①:番号だけを抜き出す
まず、**「1 寿司;2 天ぷら;5 味噌汁」**のような文字列から、番号だけ(1,2,5)を抜き出す処理を行います。
使った関数はこちら:
=SPLIT(REGEXREPLACE($A2,"[^0-90-9;]",""),";")
✅ 解説:
- REGEXREPLACE($A2,”[^0-90-9;]”,””)
→ 数字とセミコロン以外の文字をすべて削除します。実際のデータでは1桁の番号が全角で入っていました。
→ 結果:1;2;5 - SPLIT(…,”;”)
→ セミコロンで分割し、それぞれの番号を別のセルに展開します。
この処理だけで、番号「1」「2」「5」をそれぞれのセルに取り出せます!
ステップ②:昇順に並べて、カンマ区切りにする
納品データではカンマ区切りの1セルにまとめる処理をそのまま行ったのですが、Web回答では選択肢を選んだ順がそのまま保存されますので、先に昇順に並べ替える処理を行った方がより丁寧でした。
並べ替え処理を行えば、順序違いを同じ組み合わせとして処理できて、より集計しやすい形になっていたでしょう。
並べ替えとデータのまとめを行う関数が以下のようになります:
=TEXTJOIN(",", TRUE, SORT(TRANSPOSE(FILTER(C2:J2, TRUE))))
✅ 解説:
- FILTER(C2:J2, TRUE)
→ セル範囲 C2:J2 からすべての値を取得(空欄は無視) - TRANSPOSE(…)
→ 横並びのデータを縦に変換(SORT関数で並べ替えやすくする) - SORT(…)
→ 昇順に並び替え - TEXTJOIN(“,”, TRUE, …)
→ カンマでつなげて1つのセルにまとめる
この一連の処理で、「1,2,5」のような番号リストを簡単に作成できます。
✅ 実際の出力例(ダミーデータ)
回答 | 番号 | 番号(タブ区切り) | ||
---|---|---|---|---|
1 寿司;2 天ぷら;5 味噌汁 | 1,2,5 | 1 | 2 | 5 |
3 すき焼き;6 うな重 | 3,6 | 3 | 6 | |
4 おでん;1 寿司;8 納豆ご飯 | 1,4,8 | 4 | 1 | 8 |
2 天ぷら;5 味噌汁;7 そば | 2,5,7 | 2 | 5 | 7 |
7 そば;1 寿司;6 うな重 | 1,6,7 | 7 | 1 | 6 |
3 すき焼き;4 おでん;2 天ぷら | 2,3,4 | 3 | 4 | 2 |
5 味噌汁;8 肉じゃが | 5,8 | 5 | 8 | |
6 うな重;1 寿司 | 1,6 | 6 | 1 | |
2 天ぷら;3 すき焼き;5 味噌汁 | 2,3,5 | 2 | 3 | 5 |
7 そば;4 おでん;8 焼き魚 | 4,7,8 | 7 | 4 | 8 |
✨ SpreadSheet活用で作業がぐっと楽に!
このように、Google SpreadSheetの関数の組み合わせを活用することで、
- 複雑なテキストからの番号抽出
- 昇順ソート
- カンマ区切りでまとめる
といった処理が、マクロやプログラムを書かずに実現できます。
一件面倒そうに見える作業も、
SpreadSheetの正規表現・テキスト処理系関数をうまく使えば、かなりの時短と効率化につながります。
「番号と選択肢が一緒に入っているデータ」に悩んでいる方は、
ぜひこの方法を試してみてください!