たまった「自由記述」を、AIでテーマ別に分類・集計|一つずつ読まなくても全体像が分かる【基礎編】

声の山が、表1枚に。白い丸ロボがたくさんの声をテーマ別の表に整理するパステル調イラスト つまずき帳

アンケートの「その他ご意見」欄を前に、小さくため息が出る

アンケートやイベントの感想で、いちばん大事なのは「自由記述」だと思っています。その他ご意見、感想、ひとことコーナー。数字では出てこない、生の声がそこにある。だから——開く前から、もう、小さくため息が出る。だって、全部読まなきゃ、と思うんです。でも、列をスクロールすると、数十件、ときには数百件。上から一つずつ開いて読んでいくと、途中で心が折れる。「あとでまとめて読もう」とタブを閉じて、そのまま何週間も経つ。

白状すると、これを何週間も放置していたのは、ほかでもないわたしです。せっかく寄せてもらった声を、活かしきれていない。その小さな罪悪感だけが、ずっと胸に残っていました。この「読めてないな」という感じ、心当たりがある人もいると思います。

結果から言います。アンケートの自由記述が、テーマ別に分類・集計されて表1枚にまとまる

やることは、もう、ほとんどありません。自由記述がずらりと並んだ列を読み込ませると、新しいシートが1枚できあがります。中身は——AIが声を5〜7個のテーマに勝手に仕分けてくれて、テーマごとに「だいたい何件あったか」「代表的な声が2〜3件」、そして最後に「全体の要約」。

たとえば、こんな表が向こうから出てきます(中身はぜんぶ架空のダミーです)。

テーマ件数(目安)代表的な声
会場・設備への要望18「席が少し狭かった」「空調が寒かった」
内容がよかった14「具体例が多くて分かりやすかった」「明日から使えそう」
時間配分への意見9「後半が駆け足だった」「もう少し質疑の時間がほしい」
受付・案内について7「入口が分かりにくかった」
次回への期待6「ぜひ続編をやってほしい」
資料の改善希望4「配布資料の字が小さかった」

表の下には、こんな「全体の要約」も付いてきます。

全体としては内容への満足度が高い一方、会場の広さ・空調や時間配分への要望が目立ちました。次回は設備面の見直しと、質疑時間の確保を検討すると、より満足度が上がりそうです。

一つずつ読まなくても、「どんな意見が、だいたいどれくらいあったのか」が、ひと目で分かる。元の回答シートは消えません。動かしもしません。1文字も書き換えません。読むだけです。

ひとつだけ正直に。この「件数」は、AIがざっと数えた目安です。きっちり1件ずつ集計した正確な数ではないので、「会場の話は多めだったな」くらいの温度感で受け取ってください。正確な数が必要なときは、気になったテーマだけ元のシートで数え直せば大丈夫です。

AIが自由記述を分類した「分類結果」シート(架空サンプル)
実際に架空データで動かすと、こんな「分類結果」シートが自動でできました。テーマの切り方が上の例と少し違うのも、それ自体が「AIのざっくり分類」の味です(データはすべて架空のサンプル)。

今日の一点:新しいのは「要約」じゃなく「分類・集計」だけ

前回までは「要約」でした。長いメールを3行+やることリストにたくさんの未読を、毎朝1通に。——どれも「まとめる」話です。今日の新しいことは、そこから一歩だけ進んで「分類・集計する」。たくさんの声を、テーマごとの山に分けて、それぞれ何件あるかまで整理する。やることはこの一点だけです。要約に慣れたら、次はこれ。順番どおりに進めば、ちゃんとたどり着けます。

分類まで一歩進んだ今回も、わたしはコードを一行も書いていません。書いたのはAIで、わたしは「貼って、許可しただけ」。それが、このブログのいつものやり方です。

同じものを作る:AIに渡すプロンプト(中身は読まなくて大丈夫)

仕組みは自分で作りません。対話AI(ChatGPTなどのチャット相手)に、次の文章をそのままコピペして頼むだけです。——中身は読めなくて大丈夫。「こういうものが欲しい」と書いてあるだけです。

Google Apps Script で、次のことを自動でする仕組みを作ってください。コードは全部あなたが書いてください。わたしはコードが読めない前提でお願いします。

1. スプレッドシートの、指定した1列(自由記述の回答)を、1行目の見出しを除いて全部読み取る。どのシートのどの列かは、コードの分かりやすい場所で変えられるようにする。
2. 集めた自由記述をまとめて Gemini(無料で使えるAPI。モデルは gemini-2.5-flash を指定)に渡し、「これらの意見を5〜7個のテーマに分類し、各テーマの『件数』と『代表的な声を2〜3件』、最後に全体の要約を出してください」と頼む。GeminiのAPIキーは、コードに直接書かず、スクリプトプロパティに保存して読み込む。
3. その結果を、新しいシート(例:「分類結果」)に、テーマ・件数・代表的な声の表として書き出す。
4. 自由記述が多すぎる場合は、最新200件までにする(無料枠を一気に使わないため)。
5. 元の回答シートは絶対に変更しないでください。やるのは「読む」と「新しいシートに書く」だけ。
6. Geminiの呼び出しが混雑(503)や割り当て超過(429)で失敗したら、数秒待って2〜3回やり直す処理も入れてください。

あわせて、APIキーをスクリプトプロパティに入れる手順と、初回の許可・実行の手順も、コードが読めない人向けに一つずつ教えてください。

入力になるのは「自由記述が入った1列」です。Googleフォームの回答シートの「その他ご意見」列が代表例ですが、自分で手で作った任意のシートの1列でも、まったく同じように動きます。指定した1列を読むだけだからです。あとは出てきたものを貼り付けて、初回だけ許可して、1回実行するだけ。「貼って、許可しただけ」——これが、このブログのいつものやり方です。

つまずき先回り

①「スプレッドシートを見る」許可が、初回だけ出ます

初めて実行するとき、一度だけ許可の画面が出ます。やっていることは「自分のシートを、自分のAIが読んで、新しいシートに書く」だけ。怖くありません。出てくる画面とボタンを押す順番は、第3回にぜんぶ写真つきでまとめました。一度通れば、次からは出ません。

②自由記述には、思わぬ「個人情報」が紛れています

ここは今日のいちばん大事なところです。自由記述って、書く人が自由に書ける欄なので、本人の名前や連絡先、ときには社外秘っぽい話まで、ぽろっと混ざっていることがあります。AIに渡すのは「自由記述のテキストだけ」ですが、渡す前にひと呼吸おいて、「これは外のAIに見せていい内容だろうか」と一度だけ考える。心配な列や回答があるなら、外す。その線引きは、自分の手で持っておく。「なんとなく不安かも」と感じたら、その感覚のほうが正しいです。

③「順番待ち」や「混雑」で止まっても、壊れていません

たまに、AIがすぐに答えを返してくれないことがあります。でも、ほとんどの場合、壊れたわけではありません。無料で使わせてもらっている順番待ちか、向こうが少し混んでいるだけです。

ひとつは「割り当て」の順番待ち。作りたてのキーは、最初は無料の枠がまだ用意されていないことがあって、一拍おくと使えるようになります。このとき、プロンプトで指定した無料のAIのまま、少し待つのがコツです。もうひとつは、ただの「混雑」。アクセスが集中していると一時的に返事が遅れるので、数秒おいて2〜3回やり直せば、たいてい通ります。プロンプトには、この「数秒待ってやり直す」を最初から仕込んであるので、多くは自動で乗り越えてくれます。

件数が多いほど呼び出しも増えるので、上限(例:最新200件)を決めておくのが、無料枠の保険になります。これは「200件までしか分類できない」という意味ではなくて、一気に使いすぎないためのブレーキ。件数が増えれば、この数字はあとから調整できます。

もう一つだけ、安心のために。作りたてのアカウントは、使い始めた直後にGoogle側の自動チェックでアクセスが止まることがあります。これは不正ではなく、ただの様子見(誤検知)。設定画面から再審査をお願いすれば戻せます。あわてなくて大丈夫です。

数字と、正直な気持ち

これまで、200件の自由記述に目を通すのは、まとまった時間を覚悟して半日仕事でした。それが、仕分けられた1枚の表をながめる数分に変わりました。消えたのは時間だけじゃなくて、「あの声、ちゃんと読めてないな」という、ずっと胸にあった負債感のほうでした。

正直に言うと、AIの仕分けは完璧ではありません。テーマの切り方はそのときどきで少し変わるし、件数もきっちり数えた数ではなく、あくまでAIがざっと出した目安です。「会場への要望」と「次回への期待」のどっちにも入りそうな、際どい1件もあります。きっちり統計的に正確、というものではない。あくまで「ざっくりの地図」です。でも、それでいいと思っています。一つずつ読む前に、全体の地図を1枚もらう。気になったテーマだけ、元のシートで原文を開けばいい。半日かけて迷子になっていたところに、入口の看板が立った。それだけで、ずいぶん楽になりました。

次回予告:登録したキーワードのニュースを、毎朝LINEに

今日は「たまった自由記述を、AIでテーマ別に分類・集計する」でした。次回は、毎朝の話に戻ります。気になるキーワードを登録しておくと、それに関するニュースが、毎朝LINEに届く。情報を「取りに行く」のをやめて、向こうから来てもらう仕組みです。コードが書けなくても、AIに任せて、同じところへたどり着けます。

→ その回を公開しました:登録キーワードのニュースを、毎朝LINEに


このシリーズのこれまで:創刊号(入口)記事01:フォーム回答をメールで受け取る記事02:フォーム回答をLINEに即時通知記事03:フォーム回答を毎朝自動集計してLINEに通知記事04:名簿から差し込みメールを一斉送信記事05:長いGmailをAIで3行+やることリストに記事06:毎朝、未読メールを自動で要約して1通に記事07:たまった自由記述を、AIでテーマ別に分類・集計(この記事)記事08:登録キーワードのニュースを、毎朝LINEに応用編その1:AI秘書「ぽけっと手帳」(全体像)応用編その2:リサーチ秘書(追いたい分野のニュースが毎朝1通)育てる編①:ためた見出しに"質問"できる(台帳Q&A)育てる編②:「医療も追って」で集める分野を増減(設定変更)育てる編③:「今週どうだった?」でためた台帳を週次まとめ育てる編④:「地図にして」でためた見出しを放射状の地図に(見出しマップ)育てる編⑤:「再エネ政策を追いたい」で検索語まで含む設定をAIが設計(設定アシスタント・完結)応用編その3:受発注・請求 秘書(受注が来たら、選ぶだけで見積書・請求書のPDFに)受発注 育てる編①:入金消込・督促・領収書PDF受発注 育てる編②:受注した瞬間に在庫を押さえる受発注 育てる編③:発注点アラートと発注書PDF受発注 育てる編④:月次集計・売上グラフ・会計CSV(最終回)基礎編:URLひとつで“自分の申込ページ”を作る(Webアプリ)基礎編:申し込まれた瞬間に、確認メールが自動で返る基礎編:申し込んだら、控えのPDFが自動で届く基礎編:申込の控えが、勝手にドライブへ積み上がっていく基礎編:申込のひとことを、届いた瞬間にAIが仕分ける基礎編:誰も画面を開いていないのに、毎朝まとめが届く基礎編:申込が来た瞬間、ポケットのLINEが鳴る(最終回)応用編その4:申込・予約 秘書(満席の瞬間、ページが自分から閉まる)申込・予約 育てる編①:キャンセル待ちと自動繰り上げ申込・予約 育てる編②:承認制とお断り下書き申込・予約 育てる編③:前日リマインダーと毎朝まとめ申込・予約 育てる編④:管理ページ(最終回)

#GAS #スプレッドシート #アンケート集計 #コピペOK

コメント

タイトルとURLをコピーしました