前回はCOUNTIFで正しくカウントされない原因として表記ゆれの問題を解説しました。今回は「フォームに入力したのにスプレッドシートに反映されない」というトラブルです。
試合後にメンバー全員がフォームから入力してくれたのに、スプレッドシートを開いてみると新しいデータが増えていない——そういった場面で慌てないために、仕組みと対処法を整理しておきましょう。
フォームとシートの連携の仕組みをおさらいする
まず「そもそもどうやってデータが連携されているのか」を確認します。ここを理解しておくと、トラブルの原因を絞り込む速度が上がります。
Googleフォームには「回答をスプレッドシートに記録する」という設定があります(第7回参照)。この設定を行うと、フォームに回答が届くたびに自動でスプレッドシートの指定シートに1行追加されます。
| フォーム | → | 記録先シート |
|---|---|---|
| 野手フォーム | → | フォーム(野手)シート |
| 投手フォーム | → | フォーム(投手)シート |
| チーム成績フォーム | → | フォーム(チーム成績)シート |
各フォームシートのA列にある「タイムスタンプ」は、フォームに回答が届いた日時が自動で記録されます。この列に新しい行が追加されていれば、連携は正常に動作しています。
反映されていないかどうかの正しい確認方法
「反映されていない」と判断する前に、まずタイムスタンプ(A列)を確認します。
フォーム(野手)シートを開き、A列の最終行を確認します。最新の回答日時が表示されているかを見ます。たとえば「本日の15:30に入力したはずなのに、A列の最終行が先週の日付のまま」なら反映されていないことが確認できます。
Googleフォームを開き、「回答」タブをクリックします。回答数が表示されます。スプレッドシートのフォームシートのデータ行数(ヘッダー除く)と回答数が一致しているか確認します。フォームの回答数が多いのにシートの行数が少なければ、連携が途中で切れています。
| シート | データ行数(ヘッダー除く) |
|---|---|
| フォーム(野手) | 339行分のデータ |
| フォーム(投手) | 106行分のデータ |
| フォーム(チーム成績) | 35行分のデータ |
これらの数字とGoogleフォームの回答数タブで表示される回答数が一致していれば、連携は正常です。
反映されない原因のパターンと対処法
パターン①:スプレッドシートとの連携が設定されていない・解除されている
最も多い原因です。フォームを複製した・スプレッドシートを移動した・誰かが誤って連携を解除してしまった——などのタイミングで連携が外れることがあります。
フォームの編集画面上部に「質問」「回答」「設定」のタブがあります。「回答」タブをクリックします。
「回答」タブの右上にスプレッドシートのアイコン(緑のシートのマーク)があります。このアイコンをクリックすると連携先のスプレッドシートに移動できます。アイコンが表示されていない・グレーアウトしている場合は連携が設定されていません。
スプレッドシートアイコンの右隣にある「︙(縦三点)」をクリックし、「回答先を選択」を選びます。「既存のスプレッドシートを選択」でこの成績管理表のスプレッドシートを選択します。連携先シートを選ぶダイアログが出るので、正しいフォームシート(フォーム(野手) など)が選ばれているか確認して「選択」をクリックします。
連携を再設定したとき、Googleが自動で「フォームの回答1」のような新しいシートを作ってしまうことがあります。これは既存の「フォーム(野手)」シートとは別物です。
この場合は、新しく作られたシートのデータを「フォーム(野手)」シートに手動でコピーし、新しいシートを削除してから「回答先を選択」で正しく「フォーム(野手)」シートを指定し直してください。
パターン②:フォームへの回答が「受付停止」になっている
フォームには回答の受付を停止する設定があります。誤って停止状態にしてしまっていると、入力しようとしても「このフォームは現在回答を受け付けていません」と表示されて送信できません。
Googleフォームの編集画面で「回答」タブを開くと、「回答を受け付けています」というトグルスイッチがあります。これがオフ(グレー)になっていれば受付停止状態です。スイッチをオンにする(緑色にする)と受付が再開されます。
シーズンオフの間に誤って停止にしていた、というケースがよくあります。シーズン開始前に必ず確認してください。
パターン③:フォームシートの行数が上限に達している
Googleスプレッドシートには1シートあたり最大100万行という上限があります。草野球の成績管理では到底この上限に達することはありませんが、フォームシートの数式範囲の設定で意図した範囲外にデータが記録されてしまうケースがあります。
現在の設定を確認すると、フォーム(野手)は340行、フォーム(投手)は107行、フォーム(チーム成績)は36行まで設定されています。データが増えて試合当日シートや年間シートが参照している行数の範囲を超えた場合、新しいデータが集計に含まれなくなります。
年間(投手)シートのD列の数式を例にすると、=SUMIF('試合当日(投手)'!$C$2:$C993, $B2, '試合当日(投手)'!$D$2:$D993) となっています。これは993行目まで参照しているという意味です。
もし1試合あたりの平均登板投手数が5名で、年間30試合行うとすると150行必要です。993行という設定であれば6年以上使い続けても問題ありません。気になる場合はCOUNTA関数で実際のデータ行数を確認し、参照範囲と比較してみてください。
パターン④:Googleアカウントのセッション切れ・オフライン状態
スマホでフォームを送信したとき、オフライン状態(電波が届いていない)だと「送信完了」のような表示が出ても実際にはGoogleのサーバーにデータが届いていないことがあります。
- Googleフォームの「回答」タブで回答数を確認する——オフライン送信が失敗していれば回答数が増えていない
- 送信者本人にフォームのメール通知を設定しておくと、送信成功時にメールが届くため確認しやすい(フォームの設定→「メールアドレスを収集する」をオンにして「回答のコピーを送信者に送る」を設定)
- 入力した内容が消えてしまった場合は、もう一度フォームから入力し直す
データが消えた・重複している場合の対処
フォームの連携トラブルでまれに起きる「データが重複して記録された」「一部のデータが消えた」という問題への対処も確認しておきます。
同じ回答が2回送信されてしまったり、接続の不安定さで二重に記録されてしまった場合、タイムスタンプ(A列)の値が全く同じ行が2行存在することで気づけます。
重複行はフォームシートから1行だけ削除します。前回(第86回)で解説したとおり、フォームシートへの行削除は慎重に行ってください。削除した行を参照している試合当日シートに#REF!が出る可能性があるため、削除後は試合当日シートの表示を必ず確認します。
重複行の削除は#REF!リスクを伴います。より安全な方法として、重複行の各セルを空欄にする(値だけ消してセル自体は残す)という方法があります。
試合当日シートは「試合日が空欄の行は集計しない」という設計になっているため、フォームシートの行を空欄にするだけで重複データが集計から除外されます。行そのものは残るので#REF!も発生しません。
トラブルを未然に防ぐための運用ルール
| タイミング | 確認項目 |
|---|---|
| シーズン開始前 | 3つのフォーム(野手・投手・チーム成績)の受付状態がオンになっているか確認する |
| 試合後の入力直後 | フォームシートのA列(タイムスタンプ)に新しい行が追加されているか確認する |
| 入力メンバーへの共有時 | 電波の良い場所で入力するよう案内する。「送信」ボタンを押した後に「回答を記録しました」の画面が表示されることを確認してもらう |
| 定期的(月1回程度) | Googleフォームの回答数とフォームシートの行数が一致しているか照合する |
- フォームの回答がシートに反映されているかはフォームシートのA列(タイムスタンプ)で確認する——最新の日時が表示されていれば正常
- 反映されない主な原因は①連携が切れている、②受付停止になっている、③オフラインで送信失敗、④参照範囲外にデータが記録されているの4パターン
- 連携が切れた場合は Googleフォームの「回答」タブ→「︙」→「回答先を選択」から既存のスプレッドシートを再指定する
- 再連携時に新しいシートが作られた場合は、データを正しいシートにコピーして新シートを削除し、改めて正しいシートを連携先に指定する
- 重複データは行を削除するよりセルを空欄にするほうが#REF!リスクがなく安全
- 予防の基本はシーズン開始前の受付状態確認と試合後のタイムスタンプ確認の習慣づけ
次回予告
次回は「選手名の表記ゆれを防ぐ方法」。COUNTIFSやSUMIFで選手名を条件に集計しているため、選手名が「SUZUKI」「Suzuki」「 SUZUKI」などと揺れていると集計が分断されます。フォームのドロップダウンと設定一覧を使って表記ゆれを根本的に防ぐ方法を解説します。
▶︎ 次回:【第90回】選手名の表記ゆれを防ぐ方法



コメント