答えてもらったアンケートをGメールで集計する方法

Gメールを使用している環境ではGoogle Workspace(旧 G Suite)からグーグルドライブやスプレッドシート(エクセルのような表計算ソフト)を使用することができると思います。
自動返信メールはひな型に沿って送られてくるため、集計がしやすいと思います。

そこで今回は、GoogleスプレッドシートとApps Scriptを使って自動集計をためしてみましたのでご紹介です。

【手順概要】

  • Googleスプレッドシートを作成
  • Apps Scriptを登録し実行

Googleスプレッドシートを作成

右上のパネルからスプレッドシートを選択

空白のスプレッドシートを作成

CSVから項目をコピー(任意)

A1 にペースト

=TEXTJOIN(",", TRUE, SPLIT(A1, CHAR(10)))

これで文字が「,」で区切られたようになると思います

上部のデータ→テキストを列に分割 で列の項目が準備されます

ご利用について 性別 年齢 ご利用いただいた理由 サービスの満足度 回答された理由 品質についての評価 対応についての評価 価格についての評価 過去の利用 点数評価 後日連絡 comment お名前 email sns 受信日時

受信日時も追加しています

Apps Scriptの設定

拡張機能→Apps Script

最初はプロジェクトの許可などをしないといけないので自己責任でお願いします。
https://developers.google.com/apps-script/guides/projects?hl=ja

下記のコードを登録

function importLatestAutoReply() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
  
  const pastDays = 7; // ← ここを変えるだけで「◯日以内」が切り替えられる
  const now = new Date();
  const cutoff = new Date(now);
  cutoff.setDate(now.getDate() - pastDays); // ◯日前

  // Gmail 検索条件にも適用(効率化)
  const threads = GmailApp.search(
    `subject:"【自動返信】お問い合わせありがとうございます" newer_than:${pastDays}d`,
    0,
    50
  );

  threads.forEach(thread => {
    const messages = thread.getMessages();
    messages.forEach(message => {
      const date = message.getDate();
      if (date < cutoff) return; // 念のため再確認

      const body = message.getPlainBody();
      if (thread.getLabels().some(label => label.getName() === '登録済')) return;

      const get = (label) => {
        const match = body.match(new RegExp(`【${label}】(.*)`));
        return match ? match[1].trim() : '';
      };

      const row = [
        get("ご利用について"),
        get("性別"),
        get("年齢"),
        get("ご利用いただいた理由"),
        get("サービスの満足度"),
        get("回答された理由"),
        get("品質についての評価"),
        get("対応についての評価"),
        get("価格についての評価"),
        get("過去の利用"),
        get("点数評価"),
        get("後日連絡"),
        get("comment"),
        get("お名前"),
        get("email"),
        get("sns"),
        date
      ];

      sheet.appendRow(row);
      message.markRead();
      thread.addLabel(GmailApp.createLabel('登録済'));
    });
  });
}

▶実行 を押すと実行され、「【自動返信】お問い合わせありがとうございます」で判別されたメールがスプレッドシートの対応した列に挿入されれば成功です。
一度実行されると「登録済み」タグが付くようになっているのでご注意ください。
「登録済み」タグが付いているともう一度実行しても書き込みがされません。

スプレッドシートに登録しあとはグラフ化などデータの加工が容易ですし、エクセルにもっていくこともできます。

BCC(有料版機能)で別にメールアドレスを設定してそちらに送って集計なども考えられますね。