Googleフォームの回答を大量にCSVで渡すときは、「CSVが開けた」だけで受渡し成功としないでください。列見出し・回答件数・日時形式・欠損と、回答を重複なく追跡できる識別子を決め、送受信側で同じ検算を行います。
CSV出力前のフォーム回答件数を確認
Googleフォームでは回答画面のメニューからCSVをダウンロードできます。出力前にフォームの回答件数、取得日時、回答の受付状況を記録します。Google公式ヘルプは、大規模フォームでは回答の表示・シート同期・CSVの並び順に制限が生じ得ることを案内しています。したがって「最後の行の時刻が最新だから全件ある」とは決めず、エクスポートした行数を回答数と照合します。
列名変更や選択肢変更の影響を点検
質問文を変えたフォームではCSVの列見出しが変化することがあります。受取先が列の位置に依存した集計をしていれば、追加質問で列ずれが起きます。受け渡す列の一覧を別紙に固定し、例えば 回答日時/会員番号/回答区分/備考 のように意味と型を定義します。見出しに同名の質問が複数ある場合は識別できる名前へ整えてから連携方法を設計してください。CSVをExcelで直接開くと先頭0が消える問題にも注意します。
回答IDとタイムスタンプの扱いを決める
GoogleフォームのCSVに必ず「回答ID」列が存在するとは限りません。フォームの回答IDはApps Scriptの FormResponse.getId() などで取得できますが、標準CSV出力と同じ列構成で自動的に出ると断定しないでください。IDを別途用意する場合は、元回答と対応が追える方法・権限・同期時点を定義し、タイムスタンプや行番号だけを一意キーとしない設計にします。
受取側の行数・列数・欠損を照合
受取側で「回答数」「ヘッダー列数」「必須列の空欄」「重複キー」「引用符やセル内改行の解析」を検査します。CSVのレコードに改行が含まれると単純な行数カウントは一致しないため、CSVパーサーで数えます。個人情報がある場合は共有権限と必要なマスキングを確認し、エクスポート時の原本ZIP・件数・SHA256を残すと受渡し後の改変有無を調べやすくなります。
