AppSheetで入力や更新をしたあと、同期がなかなか終わらない、同期ボタンを押してもデータが反映されない、オフラインで保存した内容が送信されないと困っていないでしょうか。同期トラブルは通信環境だけでなく、データ量、仮想列、スプレッドシートの数式、画像ファイル、権限、同期設定など、複数の原因が重なって発生します。むやみに再インストールすると、端末に残っている未送信データを失う可能性もあります。同期が遅い原因を安全に切り分け、オフライン利用を含めた改善手順を、初心者にも実践しやすい形で解説します。

👑保存はできたのに同期マークが消えませんわ。何度もボタンを押したほうがよいのでしょうか?

🤖連打する前に、未送信データの有無と、同期処理のどこで時間がかかっているかを確認しましょう。

👑通信速度だけを調べても、原因が見つからないことがあるのですね。

🤖はい。端末、AppSheet、データソースの3つに分けると、同期が遅い原因を効率よく絞り込めます。
AppSheetの同期が遅くなる仕組み
AppSheetは、画面を開くたびにGoogleスプレッドシートを直接表示しているわけではありません。アプリの定義や必要なデータを端末またはブラウザへ保存し、ユーザーはそのローカルデータを操作します。
同期を実行すると、端末で追加・更新・削除したデータをAppSheetのサーバーへ送り、Googleスプレッドシートやデータベースなどのデータソースへ反映します。その後、クラウド側の最新データやアプリ設定を端末へ取得します。つまり、同期には複数の処理が含まれています。
同期が遅い場合は、次のいずれかの場所で処理が止まっている可能性があります。
- 端末からAppSheetサーバーへ変更内容を送信する
- AppSheetサーバーが変更内容を検証する
- Googleスプレッドシートやデータベースを更新する
- 数式、仮想列、Automationなどを処理する
- 最新データを端末へダウンロードする
- 端末上で画面表示に必要な計算を行う
インターネット回線が速くても、スプレッドシートの再計算や仮想列の処理に時間がかかっていれば、同期はすぐに終わりません。逆にアプリの設定が軽くても、大きな画像を大量に送信していれば、通信部分がボトルネックになります。

「同期が遅い」と「同期できない」は分けて考える
| 状態 | 考えられる状況 | 最初に確認すること |
|---|---|---|
| 時間はかかるが完了する | データ量、数式、仮想列、画像が多い | 同期時間と処理の内訳を測る |
| 特定の端末だけ遅い | 端末性能、空き容量、通信環境、古いアプリ | 別端末や別回線と比較する |
| 全員の同期が遅い | アプリ構造、データソース、数式の負荷 | Performance Profileを確認する |
| 途中でエラーになる | 権限、列構成、キー、データ形式の問題 | エラー文とAudit Historyを確認する |
| 同期は完了するが反映されない | フィルター、別シート、Automation、古い表示 | 元データをキー値で検索する |
| オフライン入力が送信されない | Delayed sync、Automatic updates、通信復帰の問題 | 未送信件数と同期設定を確認する |

👑「遅い」「止まる」「反映されない」を同じ問題として扱わず、症状を分けて記録すると原因を見つけやすくなりますわ。
AppSheetの同期が遅い主な原因
同期速度を改善するには、設定を片端から変更するのではなく、影響が大きい原因から順番に確認します。特に多いのは、データ量、計算量、ファイル容量の3つです。
データの行数が多すぎる
AppSheetは、アプリで使用するデータを端末へ取得します。テーブルの行数が増えるほど、読み込み、フィルター処理、端末への転送に時間がかかります。公式ヘルプでも、同期時間はデータセットの大きさに影響されると案内されています。
例えば、完了した作業記録を数年分同じテーブルに残している場合、現場担当者が当日分しか見なくても、アプリの設計によっては大量の履歴データが同期対象になります。
過去データを削除する必要はありません。次のような方法で、日常業務用のデータ量を抑えます。
- 古い履歴を年度別のテーブルへ移す
- 参照頻度の低いデータを別アプリへ分ける
- 担当者や拠点ごとにSecurity Filterを設定する
- 日常業務では集計済みのテーブルを参照する
- 添付ファイルの管理テーブルを分離する
Sliceだけでデータを減らそうとしている
Sliceは、アプリ内で表示する行や列を絞り込む機能です。ただし、端末へデータを取得してから絞り込むため、元テーブル全体の同期量を十分に減らせないことがあります。
Security Filterは、条件に合うレコードだけをアプリへ含める仕組みです。大量データを担当者別、部署別、拠点別に分ける場合は、同期データの削減にも役立ちます。ただし、Googleスプレッドシートではシート全体をクラウド側で読み取った後にフィルターが適用されるため、すべての処理時間を削減できるわけではありません。
仮想列が多い、または式が複雑
仮想列は、データソースに保存せず、AppSheet内で値を計算する列です。SELECT、FILTER、LOOKUPなどを使って他テーブルを検索する仮想列が多いと、行ごとに計算が発生します。
例えば、1万件の作業履歴に対して、顧客名、最新対応日、合計金額、未対応件数をそれぞれ複雑な式で求めると、同期のたびに大きな計算負荷がかかります。公式ヘルプでも、多数の仮想列や複雑な式はパフォーマンスに大きな影響を与えると説明されています。
頻繁に変わらない値は、仮想列で毎回計算せず、実列へ保存する方法も検討します。ただし、実列へ変更する場合は、更新タイミングとAutomationの失敗時に値がずれない仕組みが必要です。
Googleスプレッドシートの数式が重い
AppSheetが行を更新すると、Googleスプレッドシート側の数式が再計算されることがあります。複数シートを参照するARRAYFORMULA、IMPORTRANGE、QUERY、広い範囲を対象にした検索式などが多いと、更新のたびに待ち時間が発生します。
特に、行が追加されるたびにシート全体の集計を再計算する構成は、登録件数の増加とともに遅くなりやすい設計です。データ更新時の同期速度は、接続先での再計算時間にも影響されます。
改善する際は、次の点を確認します。
- 列全体を参照する数式を必要な範囲へ限定する
- 同じ計算を複数列で繰り返していないか確認する
- 更新頻度の低い集計を別シートへ分ける
- リアルタイムで不要な集計は定期処理へ変更する
- AppSheetとスプレッドシートの両方で同じ値を計算しない
写真やファイルの容量が大きい
点検アプリ、日報アプリ、配送報告アプリでは、写真のアップロードに時間がかかることがあります。1件ごとの入力は軽くても、複数枚の高解像度写真をまとめて送ると、同期が長時間終わらない原因になります。
画像が必要な業務では、撮影枚数、必要な画質、保存期間を決めます。証拠写真として文字や傷を確認する必要がある場合は、画質を下げすぎると業務に使えません。同期速度だけでなく、確認に必要な品質とのバランスを取ります。
複数のテーブルを順番に読み込んでいる
商品マスタ、顧客マスタ、担当者マスタ、在庫履歴、発注履歴など、テーブル数が増えると接続処理も増えます。参照されていないテーブルや、すでに使わなくなった試験用テーブルが残っていないか確認してください。
テーブルを分けること自体が悪いわけではありません。巨大な1枚のシートにすべてを詰め込むより、役割ごとに適切に分けたほうが管理しやすくなります。問題になるのは、用途が重複したテーブルや不要な参照関係を増やすことです。
Automationや外部処理の完了を待っている
登録時にPDF作成、メール送信、別テーブルへの行追加などを実行している場合、同期と同じタイミングで処理が動くことがあります。同期自体ではなく、イベント後の処理に時間がかかっているケースもあります。
利用者がすぐに結果を待つ必要がない処理は、バックグラウンドで実行する設計を検討します。Automationの成功・失敗は、アプリの同期表示だけで判断せず、MonitorやAutomationの実行履歴も確認します。


👑同期が遅くなった時期と、直前に追加した仮想列、数式、画像、Automationを照らし合わせると、原因を絞り込みやすくなりますわ。
同期速度を改善する具体的な手順
改善作業では、変更前の同期時間を記録しておくことが大切です。記録せずに設定を変更すると、速くなったのか、別の処理が遅くなったのか判断できません。
1.同じ条件で同期時間を測る
テスト用の端末とアカウントを決め、同じ回線、同じデータ、同じ操作で同期時間を測ります。初回同期は全データやアプリ定義を取得するため、通常の同期より長くなりやすい点に注意してください。
最低でも次の3種類を分けて記録します。
- 変更を行わない状態での通常同期
- 1件のテキストデータを追加した後の同期
- 写真を添付したデータを追加した後の同期
通常同期だけが遅ければ、データ取得や計算処理を疑います。写真追加時だけ遅ければ、ファイル容量や回線の影響を優先して確認できます。
2.Performance Profileで処理時間を確認する
AppSheetには、同期や更新処理の時間を確認できるPerformance Analyzerがあります。エディタのManage、MonitorからPerformance Profileを開き、同期処理や仮想列の計算時間を確認します。画面構成は更新される場合があるため、表示が異なるときは公式ヘルプで最新の場所を確認してください。
確認するときは、平均時間だけでなく、特定ユーザーや特定テーブルだけが遅くないかも調べます。
| 確認結果 | 優先する改善 |
|---|---|
| 仮想列の計算時間が長い | 式の簡略化、実列化、参照回数の削減 |
| 特定テーブルの読み込みが長い | 行数、数式、データソースを確認 |
| 更新処理だけが長い | シート数式、Automation、画像送信を確認 |
| 特定ユーザーだけ遅い | 端末、通信、Security Filter条件を確認 |
| 時間帯によって変わる | 同時利用者数や外部サービスの処理を確認 |
3.不要なデータを同期対象から外す
最も効果が出やすいのは、アプリが日常的に必要とするデータを減らすことです。完了済み案件や過年度データを別テーブルへ移し、現場アプリには進行中のデータだけを含めます。
担当者別にデータを分ける場合は、USEREMAILを使ったSecurity Filterも候補になります。ただし、Security Filterはセキュリティにも関係するため、同期速度だけを目的に安易な条件を設定しないでください。管理者、担当者、退職者、未ログイン時の動作まで確認します。
4.重い仮想列を見直す
仮想列を一覧にし、次の基準で整理します。
- 画面で本当に表示しているか
- 並べ替えや条件判定に使用しているか
- 同じ値を別の仮想列でも計算していないか
- 行ごとに他テーブル全体を検索していないか
- 同期のたびに最新値である必要があるか
不要な仮想列を削除するときは、表示列だけでなく、Show if、Valid if、Action、Automationなどから参照されていないか確認します。
5.スプレッドシート数式を整理する
スプレッドシートをデータソースとして使用している場合は、AppSheetだけでなく元シートの処理時間も確認します。シートを直接開いたときに計算が長く続く、数式の読み込み表示が残る、外部参照エラーが出る場合は、同期にも影響する可能性があります。
入力用テーブルには必要最小限の数式だけを置き、重い分析や月次集計は別のシートへ分けると管理しやすくなります。
6.同期設定を業務に合わせる
現在のAppSheetでは、新しいエディタのSettings内にPerformanceやOffline modeの設定があります。設定名や配置は変更される場合があります。
| 設定 | 役割 | 向いている業務 | 注意点 |
|---|---|---|---|
| Sync on start | 起動時に同期する | 開始時に最新データが必要な業務 | 同期完了まで利用者を待たせることがある |
| Delayed sync | 変更を端末にためて後から送る | 圏外の倉庫、建設現場、訪問先 | 手動同期を忘れると反映されない |
| Automatic updates | 変更や更新をバックグラウンドで同期する | 通信が比較的安定した通常業務 | オンライン復帰後すぐに反映されない場合がある |
| Delta sync | 変更されたテーブルを中心に更新する | 対応するデータソースを使うアプリ | 外部数式など構成によって適さない |
| Quick sync | 他ユーザーの変更を素早く表示する | 複数人で共有する業務 | 数式や高度なフィルターとの相性確認が必要 |
| Server caching | 読み取り専用データをサーバーに保持する | 更新頻度の低いマスタ参照 | 頻繁に更新するテーブルには適さない |
すべてを有効にすれば速くなるわけではありません。例えばQuick syncは、Googleスプレッドシート側の数式で自動計算するアプリや、完全同期が必要な仮想列、高度なSecurity Filterを使用する構成には適さない場合があります。
7.改善前後を実機で比較する
編集画面のプレビューだけでなく、現場で使うスマートフォンやタブレットで確認します。社内Wi-Fiでは速くても、倉庫や訪問先のモバイル回線では時間がかかることがあります。
改善後は、通常同期、データ追加、画像追加、複数人更新、オフライン復帰の5パターンを再テストします。

👑一度に多くの設定を変えると、どの改善が効いたのかわかりません。変更は一つずつ行い、同期時間を記録いたしましょう。
AppSheetのオフライン設定方法
AppSheetは、必要なアプリ定義とデータを端末へ保存することで、通信がない場所でも一定の操作ができます。ただし、事前準備をせずに初めてアプリを開く端末を圏外へ持ち込んでも、必要な情報を取得できません。
オフライン利用では、対象端末をオンラインの状態で一度起動し、初回同期を完了させることが前提です。画像や文書をオフラインで表示する場合は、別途コンテンツを保存する設定も必要です。
オフライン利用前の設定手順
- AppSheetエディタで対象アプリを開きます。
- SettingsからOffline modeを開きます。
- 圏外でアプリを起動する設定を有効にします。
- 画像や文書が必要な場合は、オフライン用コンテンツ保存を有効にします。
- SettingsのPerformanceを開きます。
- Delayed sync、Automatic updates、Sync on startを業務に合わせて設定します。
- 設定を保存し、実際に使用する端末でオンライン同期を完了します。
- 機内モードに切り替えて、起動、表示、入力、写真添付を確認します。
- オンラインへ戻し、手動または自動同期後に元データを確認します。
業務別の設定例
| 利用場面 | 設定の考え方 | 運用ルール |
|---|---|---|
| 圏外の倉庫で棚卸し | Delayed syncを使い、端末へ変更をためる | 始業前と作業終了後に同期する |
| 山間部で設備点検 | オフライン起動と画像保存を事前設定する | 出発前に必要な設備一覧を確認する |
| 通信が安定した事務所 | Automatic updatesを中心に運用する | 重要な登録は元データまで確認する |
| 複数人で在庫を更新 | データの鮮度を優先する | 同じ在庫行を同時編集しない |
| 写真付きの日報 | ファイル容量と通信時間を見込む | 同期前にアプリを削除しない |
Delayed syncを使うと、入力のたびに同期を待たずに作業を続けられます。一方で、長時間同期しないほど他ユーザーの変更と競合しやすくなります。オフライン機能は、設定だけでなく「どこで同期するか」「誰が完了を確認するか」まで決めて運用します。

同期できない場合の安全な対処法
同期エラーが起きたときに最も避けたいのは、未送信データが残っている端末をすぐに初期化することです。端末内の入力内容が唯一の原本になっている場合があります。
同期エラーを解決する確認順序
- 同期アイコン、未送信件数、エラー文を画面保存します。
- 発生日時、利用者、端末名、操作内容を記録します。
- 対象レコードの商品IDや案件IDなどのキー値を控えます。
- 機内モードが解除されているか確認します。
- 安定したWi-Fiまたはモバイル回線へ切り替えます。
- 同期ボタンを1回押し、完了またはエラー表示を待ちます。
- Googleスプレッドシートなどの元データをキー値で検索します。
- AppSheetのAudit HistoryとPerformance Profileを確認します。
- 権限、列構成、キー重複、数式、Automationを確認します。
- 未送信データが保全できてからアプリを再起動します。
エラー表示別の確認ポイント
| 症状 | 主な原因 | 対処 |
|---|---|---|
| 権限がないと表示される | 共有解除、アカウント変更、アクセス権不足 | アプリ作成者とデータソースの権限を確認する |
| ファイルを取得できない | 元ファイルの削除、移動、名称変更 | 接続先と保存場所を確認する |
| 列数や列名のエラー | シートの列構成とアプリ定義のずれ | 未送信データを保全してから列構造を再生成する |
| 別の行が更新される | キーの重複、変更、_RowNumberの利用 | 変化しない一意のキーを設定する |
| 同期が途中で止まる | 画像、数式、Automation、回線 | Performance Profileで処理時間を確認する |
| 同期後も画面が古い | 取得側の同期未完了、フィルター条件 | 手動同期と表示条件を確認する |
Audit Historyで確認する内容
Audit Historyでは、同期、追加、更新、削除などの処理履歴を確認できます。利用者から「同期したのに反映されていない」と報告を受けた場合は、発生時刻、ユーザー、テーブル、処理結果を絞り込んで調査します。
エラー文だけでは原因がわからない場合でも、処理がAppSheetサーバーまで届いているのか、データソースへの書き込みで失敗しているのかを判断しやすくなります。
再起動と再インストールの違い
アプリの再起動は、動作状態をリセットし、更新されたAppSheetアプリを読み直すための対処です。一方、端末データの消去やリセットは未同期の変更を削除する可能性があります。
公式ヘルプでも、AppSheetのリセットを行うと未同期の変更が完全に削除されると注意されています。未送信データがある状態では、端末のデータ消去や再インストールを先に行わないでください。

👑再インストールは最初の対処ではありませんわ。未送信データを確認し、必要な記録を残してから最後の手段として検討してくださいませ。
同期トラブルを減らす業務設計
同期速度を改善しても、運用ルールが曖昧なままでは同じ問題が繰り返されます。利用者が「保存できたから登録完了」と考えている一方、管理者は「元シートに反映されて初めて完了」と考えていると、認識のずれが生まれます。
同期完了の基準を決める
業務上の登録完了を、次の段階に分けます。
- 入力フォームを保存した
- 端末内の送信待ちに登録された
- 同期が完了した
- 元データへ反映された
- 別端末でも確認できた
- Automationなどの後続処理が完了した
通常の記録なら同期完了まで、在庫や申請のように他の人がすぐ利用するデータなら別端末での確認までを完了条件にします。
障害報告のテンプレートを用意する
「同期できません」という連絡だけでは、管理者が原因を調べられません。利用者には、次の情報を報告してもらいます。
- 発生日時
- 利用者名またはメールアドレス
- 端末とOS
- 利用していた回線
- 対象の案件IDや商品ID
- 追加、更新、削除のどの操作か
- 表示されたエラー文
- 同期アイコンの画面
- 直前までオフラインだったか
顧客情報や個人情報をチャットへ貼り付けないよう、キー値だけを報告するルールも決めてください。
オフライン運用に向いている業務
- 担当者ごとに新しい行を追加する設備点検
- 訪問先で入力する営業報告
- 配送ごとに記録する納品報告
- 担当エリアが分かれている棚卸し
- 写真付きの現場日報
慎重な設計が必要な業務
- 複数人が同じ在庫行を短時間に更新する
- 常に最新残数が必要な予約管理
- 秒単位の更新が必要な生産管理
- 長期間、一度も同期できない環境で使用する
- 大容量の動画や大量の高画質画像を扱う
- 同期失敗が安全性や法令対応に直結する
リアルタイム性が高い業務や、更新競合が許されない業務では、スプレッドシートをデータソースにした小規模構成では限界が生じることがあります。データ量や同時利用者が増えた段階で、AppSheet DatabaseやSQL系データベースを含めた構成の見直しも検討します。

👑同期設定だけで解決しようとせず、同じ行を複数人が編集しない仕組みや、同期する時刻を業務ルールに組み込むことも大切ですわ。
よくある質問
AppSheetの同期にはどれくらい時間がかかりますか?
一定の標準時間はありません。データ量、テーブル数、仮想列、スプレッドシート数式、画像容量、通信環境によって変わります。普段の同期時間を記録し、急に長くなった時点を調べる方法が現実的です。
同期ボタンを何度も押しても大丈夫ですか?
同期が進まないときに連打するのは避けてください。最初の処理が完了していない可能性があります。エラー文と発生時刻を記録し、安定した回線で1回実行して結果を待ちます。
Sliceを使えば同期は速くなりますか?
Sliceは表示する行や列を整理できますが、データを端末へ取得した後に絞り込むため、同期量が十分に減らない場合があります。同期対象の行を減らす目的では、Security Filterやテーブル分割も検討します。
Delayed syncは有効にしたほうがよいですか?
通信が不安定な場所で連続入力する業務には向いています。ただし、同期忘れやデータ競合のリスクがあるため、始業前、作業終了時、帰社後などに同期するルールが必要です。
Quick syncを有効にすれば常に最新データになりますか?
Quick syncは、他のAppSheetユーザーが保存した変更を素早く反映する機能です。Googleスプレッドシートを直接編集した内容や、外部システムからの変更は、通常の同期まで表示されない場合があります。
オフラインで保存したデータは消えませんか?
通常は端末内で送信待ちになります。ただし、同期前に端末データを消去したり、AppSheetをリセットしたり、端末が故障したりすると失う可能性があります。同期完了までは端末を初期化しないでください。
Googleスプレッドシートの行数を減らせば速くなりますか?
不要な行を減らすことで改善する場合があります。ただし、勝手に削除すると履歴や参照関係が壊れる可能性があります。過去データを別テーブルへ移し、業務用テーブルを軽くする方法が安全です。
同期が遅い場合はアプリを作り直したほうがよいですか?
すぐに作り直す必要はありません。Performance Profileで遅い処理を確認し、データ量、仮想列、シート数式、画像、不要テーブルを順番に見直します。原因がデータ構造そのものにある場合は、段階的な再設計を検討します。
おすすめAIツール
ChatGPTなどの生成AIは、AppSheetの同期エラーを直接修復するものではありませんが、原因の切り分けや調査記録の整理に利用できます。
例えば、エラー文、発生日時、端末、操作内容、Audit Historyの抜粋を整理し、「端末、AppSheet、データソースに分けて確認項目を作成してください」と依頼すると、調査の抜けを減らせます。
ほかにも、現場向けの同期チェックリスト、障害報告書、オフライン動作テスト、運用マニュアルの下書きに役立ちます。ただし、顧客名、メールアドレス、認証情報、ファイルURL、業務上の機密データをそのまま入力しないでください。AIが提案した設定は、公式ヘルプとテスト用アプリで確認してから本番へ反映します。
関連記事
- AppSheetのオフライン設定と同期エラー対策|データが反映されない原因と解決方法
- AppSheetのセキュリティフィルター設定方法|ユーザーごとに表示データを制限する手順
- AppSheetの始め方|Googleスプレッドシートからアプリを作る手順
- AppSheetで在庫管理する方法|Googleスプレッドシート連携で入出庫・在庫数をアプリ化する手順
- AppSheetの自動メール送信設定|Automationの使い方を図解で解説
まとめ
- 同期が遅い原因は、通信だけでなく、データ量、仮想列、シート数式、画像、Automationにもある
- Performance ProfileとAudit Historyを使い、どの処理で時間やエラーが発生しているか確認する
- オフライン利用では、事前の初回同期と、Delayed syncを含めた業務ルールが必要になる
- 未送信データがある端末は、記録と保全を行ってから再起動や再インストールを検討する
AI執事の整理では、最初に行うことは設定をすべて変更することではありません。同じ条件で同期時間を測り、データ取得、計算、送信、データソース更新のどこが遅いかを確認することが出発点です。まずはテスト端末で通常同期とデータ追加後の同期時間を記録し、最も負荷が大きい項目を一つずつ改善してください。



