Googleフォームの回答を日付ごとに自動で集計したい
■ 先に結論
何の日付で数えるかで使う列が変わります。参加日など質問の答えならその列、送信日なら左端のタイムスタンプの列(中身は自分のシートで確認)です。
回答シートはそのままにして、追加したシートにQUERY関数を1つ入れます。
- 回答シートの列とシート名を確かめる
- 下部の「シートを追加」アイコンで集計用のシートを作る
- 参加日質問の列で件数と人数を出す
- 送信日タイムスタンプの日付部分で件数を出す
- A1セルにQUERY関数を貼る
- 回答が届くと集計も変わる
※2026年10月時点のGoogle公式ヘルプに基づく、パソコンのブラウザでの手順です。

1回答シートの列とシート名を確かめる
回答シートがまだ無い時は、フォーム上部の「回答」→「概要」→右上のその他アイコン→「回答の送信先を選択」→「新しいスプレッドシートを作成」→「作成」と押します(「概要」は回答が1件以上届くと表示されます)。データは自動的にテーブル形式になります。
回答シートの名前は画面下部のタブで確かめ、その名前を式に入れます(この記事の式では例として「フォームの回答 1」)。
この記事では「A列=タイムスタンプ・B列=お名前・C列=参加日・D列=参加人数」で進めます。並びが違えば、式の中の C と D をすべて自分の列の文字に置き換えます。
タイムスタンプ
- 左端の列(中身は自分で確認)
- 送信日で数える時に使う
参加日
- 日付の質問の答えの列
- 参加日で数える時に使う
出典: フォームの回答の保存先を選択する / フォームの質問の形式を選択する
2集計用のシートを追加する
回答シート集計シート
元データには書き込まず、別のシートの式で数える
スプレッドシートの下部にある「シートを追加」アイコンを押します。回答シートには新しい回答がリアルタイムで表示されるため、この記事では書き込みや並べ替えをしません。
出典: 初めてスプレッドシートを作成する / データの追加とインポートのヒント
3QUERY関数を貼る
集計シートのA1セルに、自分に合う式を1つ貼ってEnterキーを押します。
参加日ごとの件数と人数:
=QUERY('フォームの回答 1'!A:D, "select C, count(A), sum(D) where C is not null group by C label count(A) '件数', sum(D) '人数'", 1)
参加日ごとの件数だけ:
=QUERY('フォームの回答 1'!A:C, "select C, count(A) where C is not null group by C label count(A) '件数'", 1)
送信日ごとの件数:
=QUERY('フォームの回答 1'!A:A, "select toDate(A), count(A) where A is not null group by toDate(A) label toDate(A) '日付', count(A) '件数'", 1)
- スペースを含むシート名は引用符で囲みます
where … is not nullで、空の行を除きますgroup byで日付ごとに1行にまとめ、count(A)で件数、sum(D)で人数の合計。行は日付の順ですtoDate(A)は、日時から日付の部分を取り出します- 最後の
1は、見出しが1行あるという指定です
出典: QUERY 関数 / Query Language Reference (Version 0.7) / 他のシートのデータを参照する