毎朝届く — 売上レポートを完全自動化
SECTION 20 — 自動レポート配信システム
毎朝1時間かけてスプレッドシートを開き、数値を拾い、メールを書く。月20日なら年間240時間が消える。
コピー&ペーストのミス、古いデータの参照、計算式の見落とし。手動作業ではヒューマンエラーがゼロにならない。
担当者が休暇・病欠・退職すると誰もレポートを出せない。業務が特定の人に依存してしまう。
SECTION 20 — 自動レポート配信システム
使用するツール
自動化で得られる効果
スケジュール例
SECTION 20 — 自動レポート配信システム
GASで集計しやすいデータ構造を設計します。1行1トランザクションの原則を守ることが重要です。
| 列名 | 内容 | 型 |
|---|---|---|
| date | 売上日 | date |
| product_id | 商品コード | string |
| product_name | 商品名 | string |
| category | カテゴリ | string |
| quantity | 販売数 | number |
| unit_price | 単価(円) | number |
| revenue | 売上金額(円) | number |
| region | 販売地域 | string |
シート構成の推奨設計
SECTION 20
GASで数値を集計し、Gemini APIが意味のある洞察を生成する
SECTION 20 — 集計と分析
週次・月次集計の拡張
同じ関数に「集計タイプ」引数を追加することで日次/週次/月次を1関数で処理できます。DRYの原則を守りましょう。
集計する指標の設計
SECTION 20 — 集計と分析
AI生成コメントの例
1. 売上サマリー
昨日の売上は1,250,000円と、先週同曜日比で+8.3%の好調な結果となりました。
2. 注目ポイント
飲料カテゴリが+22%と牽引。一方、雑貨は-5%で注意が必要です。
3. アクション提案
飲料の在庫補充を優先的に実施されることをお勧めします。
SECTION 20 — 集計と分析
テンプレートドキュメントに「{{PLACEHOLDER}}」を埋め込み、GASで実際のデータに置換します。
テンプレートに入れる項目
| プレースホルダー | 内容 |
| {{DATE}} | レポート日付 |
| {{REVENUE}} | 当日売上金額 |
| {{VS_YESTERDAY}} | 前日比(%) |
| {{TARGET_RATE}} | 目標達成率 |
| {{AI_COMMENT}} | AI生成コメント |
SECTION 20 — 集計と分析
PDF変換の仕組み
SECTION 20
メール・Chatwork・Slackへのマルチチャネル配信を設定する
SECTION 20 — 配信
配信先管理の推奨設計(緑: 推奨)
配信先メールアドレスはスクリプトにハードコードせず、スプレッドシートの設定シートで管理します。非エンジニアでも変更できます。
複数宛先への配信
recipients にカンマ区切りで複数アドレスを指定できます。CC/BCCも options オブジェクトで設定可能です。
SECTION 20 — 配信
Slack Webhookへの変更
SECTION 20 — 配信
集計 → AI分析 → テンプレ置換 → PDF変換 → 配信 の全工程を1関数にまとめる
左メニュー「トリガー」→「トリガーを追加」→「時間ベース」→「日タイマー」→「午前7〜8時」
手動でmainReport()を実行し、メール受信・PDF品質・AIコメント内容を確認
トリガー設定後、翌朝8時台にメールが届いていることを確認して本番運用開始
推奨トリガー構成
| 時刻 | 関数 | 内容 |
| 毎朝 7:30 | aggregateSales() | データ集計 |
| 毎朝 8:00 | generateAndSend() | レポート配信 |
| 毎週月曜 | weeklyReport() | 週次サマリー |
SECTION 20
実際に手を動かして自動レポート配信システムを構築しよう
SECTION 20 — ハンズオン
新規スプレッドシートを作成し「RAWデータ」「日次集計」「設定」の3シートを追加
RAWデータシートに配布のCSVデータを貼り付け(過去7日分、50行程度)
拡張機能 → Apps Script を開き、aggregateDailySales() のコードを入力
手動実行し、日次集計シートに昨日の売上合計が正しく入ることを確認
追加課題(黄: ヒント)
前日比の計算を追加してみましょう。VLOOKUP関数をGAS内で実装するか、1つ前の行の値と比較する方法があります。
SECTION 20 — ハンズオン
GASエディタ → プロジェクトの設定 → スクリプトプロパティ → GCP_PROJECT_ID を追加
配布コードを追加。プロンプト内の変数が日次集計シートの値を参照するよう調整
Logger.log(aiComment) でコンソールに出力し、コメント内容が適切か確認
生成されたコメントをAI分析シートに日付と共に保存する処理を追加
AIコメントの改善サンプル
改善前のプロンプト(曖昧):
「売上データを分析してください」
改善後のプロンプト(具体的):
「経営層向けに50文字以内で要約し、良い点1つ・懸念点1つを箇条書きで提示してください」
SECTION 20 — ハンズオン
{{DATE}}、{{REVENUE}}、{{AI_COMMENT}}などのプレースホルダーを含むテンプレートを作成しIDを控える
配布コードを追加。TEMPLATE_DOC_IDを先ほど控えたIDに変更
自分のメールアドレス宛にテスト送信。PDF品質・本文・AIコメントを確認
mainReport()を毎朝8:00に実行するトリガーを設定して完成
完成チェックリスト
SECTION 20 — 自動レポート配信システム
| 列 | 内容 |
| timestamp | 実行日時 |
| status | SUCCESS / ERROR |
| message | 詳細メッセージ |
SECTION 20 — 自動レポート配信システム
GAS + Gemini API + Googleドキュメントの組み合わせで、毎朝1時間の手作業をゼロにする完全自動レポート配信システムが構築できます。
習得したスキル
日次/週次/月次の自動集計ロジック設計
Gemini APIでビジネス向けコメントを自動生成
メール・Chatwork・Slack への自動通知
try/catchとログシートによる安定運用
自動レポート配信システムの構築スキルを習得しました