Harry&

業種

飲食店の売上管理をスプレッドシートでする方法とExcelとの違い

飲食店の売上管理をスプレッドシートでする方法とExcelとの違い

Googleスプレッドシートは共有・スマホ入力・GAS自動集計でExcelより飲食店の売上管理に向く。QUERY関数とGASの自動集計手順を解説する。

無料相談無料相談受付中

いきなり作らない。AIで何がどう変わるかを、先に見極める。

  • ノーコードの卒業先、AIネイティブ受託。事業の文脈で要件から実装まで伴走
  • 45分・Web。検討段階のご相談・資料だけでも歓迎。しつこい追客はしません

飲食店の売上管理をスプレッドシートでする方法とExcelとの違い

結論:飲食店の日次売上管理はスプレッドシートが向いている

飲食店の売上管理は、共有・スマホ入力・自動集計の3点でGoogleスプレッドシートがExcelより向いています。ファイルをメールで送り合う必要がなく、閉店後にスマホでその場入力でき、QUERY関数とGASで日次集計を無人化できるからです。

「スプレッドシート 売上管理 飲食店」で検索すると、汎用の会計SaaS紹介が多く、飲食店特有の商品別・決済別集計をどう実装するかまで踏み込んだ情報は少ないのが実情です。この記事では、実際にExcel運用からスプレッドシートに切り替えた飲食店の支援経験をもとに、シート設計からQUERY/IMPORTRANGE/GASでの自動集計まで具体的な作り方を解説します。

飲食店スタッフがスマホでGoogleスプレッドシートに売上を入力している手元の様子 閉店後の集計作業をスマホ入力に置き換えるだけで、PC前に座る時間をなくせる

Excelとスプレッドシートの違い:飲食店の運用で効くのは4点

飲食店の売上管理という文脈では、Excelとスプレッドシートの違いは「共有」「スマホ入力」「自動集計」「コスト」の4点に集約されます。どれも日々の運用の手間に直結する項目です。

Excelはファイル単体で完結する設計のため、複数店舗・複数スタッフで同じ売上表を触ろうとすると、必ず「誰が最新版を持っているか」の問題が起きます。実際に支援先の飲食店では、店長が更新したExcelファイルをメールに添付し忘れ、前日の古いファイルを本部が集計してしまい、月次売上が一部二重計上されたことがありました。スプレッドシートであればURLを1つ共有するだけで全員が同じファイルを見るため、この種の事故は構造的に起きません。

スマホ入力についても差は明確です。Excel for Mobileはセル選択や数式入力の操作性が低く、レジ締め後にスマホで打ち込むには不向きです。Googleスプレッドシートのモバイルアプリは同じ操作感でスマホからも直接入力でき、店舗にPCを置かない小規模店でも運用が成立します。

自動集計はGAS(Google Apps Script)が使えるかどうかが分岐点です。ExcelでもVBAマクロで自動化は可能ですが、マクロを動かすにはそのPCを起動している必要があります。GASはGoogleのサーバー上で時間主導トリガーによって実行されるため、店舗のPCを閉じていても毎朝決まった時刻に自動集計が走ります。

ExcelとGoogleスプレッドシートを共有・スマホ入力・自動集計・コストの4項目で比較する表のインフォグラフィック 共有=リンク1つで即時共有 vs ファイル送付/スマホ入力=公式アプリで直接入力 vs 操作性低/自動集計=GASでサーバー側実行 vs VBAはPC起動必須/コストの4軸で違いが出る

売上管理表の基本設計:3層構成でシートを分ける

スプレッドシートで売上管理を組む際は、「入力」「集計」「閲覧」の3層にシートを分けるのが最も崩れにくい設計です。1枚のシートに入力欄と集計式を混在させると、入力ミスで集計式を上書きしてしまう事故が起きやすいためです。

1層目は日次入力シートで、列は「日付・商品名・数量・単価・決済方法・店舗名」の6列を基本にします。この段階では加工せず生データのまま蓄積するだけにします。2層目は集計シートで、QUERY関数を使って日次入力シートを参照し、店舗別・商品別・決済別に自動集計します。3層目は閲覧用のダッシュボードシートで、集計シートの数値をグラフ化し、経営者やスタッフが数式を触らずに数値だけ見られる状態にします。

この3層構成にしておくと、入力担当のスタッフは1層目しか触らないため、集計式を壊す心配がありません。複数店舗を管理する場合も、各店舗が自店の入力シートだけを持ち、本部の集計シートがそれを束ねる形にすれば、店舗数が増えても構造は変わりません。

日次入力シート・集計シート・ダッシュボードシートの3層構成を示すフロー図 入力担当は1層目の日次入力シートだけを触る設計にすると、集計式の破損事故を防げる

QUERY関数とIMPORTRANGEで日次自動集計を組む

複数店舗の売上を1つの集計シートにまとめるには、IMPORTRANGE関数とQUERY関数を組み合わせます。IMPORTRANGEは他のスプレッドシートのデータを参照できる関数で、各店舗の日次入力シートを本部の集計用スプレッドシートに取り込む役割を果たします。

=IMPORTRANGE("店舗Aのスプレッドシート URL", "日次入力!A2:F1000")

各店舗分のIMPORTRANGEを縦に並べて1枚のシートに集約したら、QUERY関数でSQLライクな条件集計をかけます。日次・店舗別の売上合計を出す場合は次のような書き方になります。

=QUERY(集約データ範囲, "SELECT Col1, Col5, SUM(Col4) WHERE Col1 = date '"&TEXT(TODAY(),"yyyy-MM-dd")&"' GROUP BY Col1, Col5 LABEL SUM(Col4) '売上合計'")

QUERYはGROUP BY句で店舗・商品・決済方法のどの軸でも集計軸を切り替えられるため、同じ集約データから複数の集計シートを作り分けられます。IMPORTRANGEは初回接続時にアクセス許可の承認が必要な点だけ注意してください。承認を忘れると集計シート側が空欄のまま更新されず、気づかないうちに集計漏れが起きます。

店舗A・店舗Bの入力シートからIMPORTRANGEで本部シートに集約し、QUERY関数で日次・店舗別に自動集計するデータフロー図 IMPORTRANGEで生データを集約し、QUERYで集計軸を切り替える2段構成にすると1つの集約データから複数の集計表を作れる

GASで商品別・決済別集計を無人化する

QUERY関数だけでも自動集計は組めますが、「毎朝9時にPDFでレポートを作ってメール送信する」のような定型処理はGASの出番です。GASはスプレッドシートに埋め込むJavaScriptで、時間主導トリガーを設定すればスプレッドシートを開いていなくても定刻に実行されます。

商品別・決済別の集計を自動化する典型的なGASの流れは、①QUERY関数で作った集計シートの値を取得する、②前日分の商品別売上・決済別内訳を配列に整形する、③メール本文に整形して送信する、という3ステップです。

function sendDailySalesReport() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("集計");
  const data = sheet.getRange("A2:C10").getValues();
  let body = "昨日の売上集計\n";
  data.forEach(row => {
    body += `${row[0]}:${row[1]}円(決済方法:${row[2]})\n`;
  });
  MailApp.sendEmail("owner@example.com", "日次売上レポート", body);
}

このコードをトリガー機能で「毎日 午前9時」に実行するよう設定すれば、店長が手動で集計する作業自体がなくなります。決済アプリ側にCSVエクスポートやAPIがある場合は、UrlFetchAppでデータを取得しシートに書き込む処理を追加すれば、レジ締め後の手入力すら不要にできます。ここまで組めば、Excelでは半日かかっていた月次集計が、開くだけで数値が揃っている状態になります。

商品別売上比率と決済別内訳をグラフ化したダッシュボード例のインフォグラフィック(例:フード45% ドリンク35% デザート20%/現金40% クレジット35% QRコード25%) ダッシュボードシートはあくまで閲覧用。数式は集計シート側に閉じ込め、経営者が見る画面はグラフだけにする

自社の売上データをどう分解して集計軸を設計すればいいか迷う場合は、既存の運用を一度棚卸ししてから組み直すほうが手戻りが少なくなります。初月無料の経営AI診断では、こうした集計設計を含めて現状の業務フローを可視化し、どこを自動化すべきか具体的な改善提案までご一緒しています。

運用に乗せる前のチェックポイント

スプレッドシートでの売上管理を軌道に乗せるには、シート設計を組んで終わりにせず、入力担当者が迷わず打ち込める状態まで整える必要があります。列の順番を固定し、入力規則(プルダウンなど)で決済方法や商品名の表記ゆれを防ぐと、QUERY関数の集計結果がぶれなくなります。

また、IMPORTRANGEやGASのトリガーは一度設定すれば終わりではなく、店舗の入力シート側でURLや列構成を変更すると集計側が壊れます。運用開始後1〜2週間は、集計結果を目視で確認する期間を設けておくと安心です。自店の業務フローのどこまでを自動化すべきか判断に迷う場合は、無料の経営AI診断で現状を可視化した上で優先順位を一緒に整理することもできます。

運用開始後に入力規則やトリガー設定を手元でチェックしている様子 運用開始後1〜2週間は集計結果を目視確認する期間を設けると、設計ミスに早く気づける

関連記事

「まず費用感だけ知りたい」という方へ。
1分で概算費用がわかるシミュレーターをご用意しています。

1分で見積りを試す →

よくある質問

Q. 複数店舗のデータをスプレッドシートで一元管理するにはどうすればいいですか?
A. 各店舗に日次入力シートを持たせ、IMPORTRANGE関数で本部の集計用スプレッドシートに取り込みます。取り込んだ生データをQUERY関数で店舗別・日次・月次に自動集計すれば、店舗ごとにファイルを送り合う運用から抜け出せます。店舗数が増えても集計シート側の関数を直す必要はほぼありません。
Q. Excelで管理していた売上データをスプレッドシートに移行するのは大変ですか?
A. Excelファイルはそのままインポート可能で、SUMIFやVLOOKUPなど基本関数は互換性があるためほぼ書き換え不要です。手間がかかるのはVBAマクロで自動化していた部分で、これはGoogle Apps Script(GAS)に書き直す必要があります。マクロが単純な集計処理であれば、半日程度で移行できるケースが多いです。
Q. GASでの自動集計はプログラミング未経験でも設定できますか?
A. 既存のGASコードをコピーしてトリガー(毎日決まった時刻に実行、等)を設定するだけであれば、プログラミング未経験でも問題なく運用できます。ただし決済別・商品別など集計条件を自分で追加したい場合は、JavaScriptの基本構文(変数・配列・関数)を理解しておくと修正がしやすくなります。
Q. 決済方法別(現金・クレジット・QRコード)の集計はどう設計すればいいですか?
A. 日次入力シートの列に「決済方法」を1列追加し、QUERY関数のGROUP BY句で決済方法ごとに合計するだけで自動集計できます。決済アプリ側にAPIやCSVエクスポートがある場合は、GASで定期取得してシートに自動転記すれば手入力自体をなくすことも可能です。

あわせて読みたい

この記事をシェア

Next Step

「とりあえず相談」が、
一番の近道です。

いきなり作りません。投資対効果を見極めてから進めるので、ムダな開発を防げます。
検討段階のご相談・資料だけでも歓迎。しつこい追客はしません。

※ まだ検討段階でも大丈夫です。無料相談では課題の整理からご一緒します。

Harry&がわかる3点セット — サービス概要・導入事例・料金体系

無料資料

Harry&がわかる3点セット

サービス概要・導入事例・料金体系をまとめた資料を無料でお届けします。

資料をダウンロード
無料相談 — 45分・Web。検討段階のご相談も歓迎

無料相談

いきなり作らない。
先に見極めてから進める。

45分・Web。検討段階のご相談・資料だけでも歓迎。しつこい追客はしません。

無料で相談する
1分で見積り — かんたんな質問に答えるだけで費用の目安がわかる

無料シミュレーター

1分で費用の目安を確認

かんたんな質問に答えるだけ。まず費用感だけ知りたい方にどうぞ。

1分で見積りを試す →