実装設計書 v2.0 — 2025年8月

読者アンケート
自動集計・報告書生成システム

Zohoフォーム取得からGoogle Slides報告書生成まで、GASによる全工程自動化の設計・実装仕様

クライアント
オールイン様
実装基盤
Google Workspace + GAS
ワークフロー数
2本
次回MTG
8月14日(金)
1
プロジェクト概要Background & Objectives
📋
現在の課題
Zohoフォームから手動でCSVをダウンロードし、Excelで集計→パワーポイントで報告書を手作成。 月次で多大な工数が発生しており、ヒューマンエラーのリスクもある。
🎯
自動化の目的
データ取得〜集計〜報告書生成を Google Workspace + GAS で自動化し、担当者の作業を 「中間チェック」「最終確認」のみに集約する。
自動化しないこと
人の判断が必要な箇所(コメント精査・会社名の曖昧一致・報告書への全社平均ライン挿入)は 人の手作業として残す。
2
全体データフローEnd-to-End Data Flow

2つのワークフローは独立しており、間に人の中間チェックが入る。 自動手動 の区別を明示。

SOURCE
📊
Zohoフォーム
読者アンケート
回答データ
STEP 1
⬇️
API取得
自動
Zoho API
STEP 2
🔍
会社名確認
手動確認
名寄せ
STEP 3
📑
集計シート
自動生成
GAS + 数式
CHECK
👁️
中間チェック
人の確認
フラグ確認
STEP 4
📊
報告書生成
自動生成
Google Slides
3
スプレッドシート構成Google Sheets Structure
シート名 役割 生成方法 備考
生データシート Zohoから取得した生の回答データ(個人情報含む) 自動取得 Zoho API連携(セキュリティ要確認)
設問項目シート 設問名・選択肢・回答タイプ(SA/MA/4段階など)の定義 自動生成 Zoho APIから取得。号ごとに設問数が変わるため動的生成
集計シート 広告評価4段階・印象に残った広告 等の集計(COUNTIF数式ベース) 自動生成 既存Excelの数式を流用。設問数に応じて行列を動的生成
結果シート 集計シートの値コピー(数式なし) 自動生成 共有・外部連携時の安全性確保のため値のみに変換
記事広告シート 記事広告に対する自由記述コメント一覧 自動転記 生データから抽出。「なし」「特にありません」等をハイライト
ビジュアル広告シート ビジュアル広告に対する自由記述コメント一覧 自動転記 同上
報告書入力シート 号数・発行年月・企業名などの報告書メタ情報 手動入力 毎回の実行前に担当者が入力する
会社名確認シート Zoho回答の社名 → 正式社名への名寄せ対応表 人が確認 AIが曖昧一致をハイライト。確定は人が行う。別ファイルで管理
4
ワークフロー詳細設計Workflow Detail Design
📊
ワークフロー① 集計
Zohoフォームデータ取得 → 集計シート自動生成
優先度 HIGH
1
Zoho API でデータ取得
指定期間(例:締切日まで)の回答データをZoho APIで取得。個人情報を含む全カラムを取得し、生データシートに格納する。
自動
2
設問項目シート自動生成
ZohoフォームのAPIから設問名・選択肢・回答タイプ(SA/MA/4段階/ランキング)を取得し、設問項目シートを生成する。号ごとに広告数・設問数が変わるため毎回生成。
自動
3
会社名確認シートへハイライト出力
取得した社名に対し、ルール化された名寄せ(全角/半角・株式会社表記等)を自動適用。曖昧一致(英字略称・類似社名等)はセルをハイライトしてアラート表示。人が目視確認・修正する。
要確認
4
集計シート自動生成
設問項目シートをもとに、集計シートの行列を動的に生成。既存Excelの集計ロジック(COUNTIF/加重計算/パーセンテージ)を流用し、広告評価4段階・印象に残った広告・各種設問を集計する。
自動
5
コメント転記(自由記述)
記事広告・ビジュアル広告・今後のテーマ の自由記述を各シートへ自動転記。「なし」「特にありません」等のノイズコメントは黄色ハイライトで表示する。並び順ルール(優先度付き)も自動適用。
自動
6
結果シート生成(値貼付)
集計シートの数式を除いた値のみのコピーを結果シートとして生成。外部共有時の数式崩れ防止。
自動
中間チェック(自動化対象外): ハイライトされたコメントの精査・コメント場所の誤りの修正・会社名の最終確認。 チェック完了後、報告書生成ワークフローに進む。
📑
ワークフロー② 報告書生成
スプレッドシートデータ → Google Slides 自動生成
優先度 HIGH
1
報告書入力シートに情報を入力
号数・発行年月・掲載企業名一覧など、報告書ごとに異なるメタ情報を担当者が入力する。
手動
2
「報告書生成」ボタンをクリック
スプレッドシート上のGASボタンをクリックすると、以降の処理が自動で実行される。
トリガー
3
グラフ自動生成(Google Sheetsチャート)
帯グラフ(広告評価4段階:各社別)と円グラフをGoogle Sheetsのチャート機能で自動生成。 色はオールイン様のブランドカラーに合わせて設定する。
自動
4
Google Slidesに報告書を自動組み立て
テンプレートスライドを複製し、集計データ・コメント・グラフを各スライドへ差し込む。 企業名・ボリューム・パーセンテージ・自由記述コメントはすべてスプレッドシートから自動取得。
自動
5
全社平均ラインを手動で挿入
Google Sheetsのグラフ機能上の制約により、帯グラフへの全社平均ラインの自動配置は困難。 担当者がスライド上でコントラストカラー(コン色等)の太い長方形図形を配置する。 全社平均値は一度計算すれば変わらないため、作業コストは最小。
手動
6
修正が必要な場合
元のスプレッドシートを修正し、再度ボタンをクリックして再生成する。生成済みのスライドを直接編集するのではなく、元データの修正を基本とする。
再生成
報告書の構成: 表紙(企業名・号数・ボリューム)→ 掲載広告について(記事/ビジュアルは企業ごとに異なる)→ 編集記事について → 今後の企画について(全社共通)
5
集計ロジック仕様Aggregation Logic
設問タイプ 集計方式 数式例 備考
SA
単一選択
選択肢ごとにCOUNTIF集計 + パーセンテージ =COUNTIF(D:D,"非常に興味")/COUNTA(D:D) 広告評価4段階評価はこのタイプ
MA
複数選択
各選択肢をCOUNTIF、全体母数は回答者数 =COUNTIF(E:E,"*A社*")/回答者数 印象に残った広告(複数回答可)
ランキング
加重計算
1位×2点 + 2位×1点 で合計スコアを算出 =COUNTIF(1位列,A社)*2 + COUNTIF(2位列,A社)*1 印象に残った広告(優先順位付き)
自由記述 集計なし、転記のみ 記事広告・ビジュアル広告・テーマ への自由記述
動的生成の要件: 号数によって記事広告数(例:1〜7本 → 1〜10本)や掲載企業数が変わる。 設問項目シートから自動的に集計シートの行列を可変生成すること。
6
会社名名寄せ仕様Company Name Normalization
パターン 対応方式
全角/半角ゆれ 自動変換 「(株)」→「(株)」
株式会社の表記ゆれ 自動変換 「㈱〇〇」「〇〇(株)」→「〇〇株式会社」
略称(日本語) ハイライト → 人が確認 「信託銀行」→「〇〇信託銀行」?
英字略称 ハイライト → 人が確認 「SMTB」→「三井住友信託銀行」?
類似社名・複数候補 ハイライト → 人が確認 「〇〇銀行」vs「〇〇信託銀行」
過去に確定済みの名寄せ 自動変換 会社名確認シートの対応表を参照
方針: AIによる完全自動置換は精度が100%でないため採用しない。 自動変換できるものだけ処理し、残りはハイライトで人に委ねる。 会社名確認シートは集計シートとは別ファイルで管理する(既存運用と同様)。
7
セキュリティ要件Security Considerations

ZohoフォームのデータはGDPR・個人情報保護法の対象となる個人情報を含む。 Googleスプレッドシートへの格納前にクライアントの承認が必要。

🔒
スプレッドシートの共有範囲制限
個人情報を含む生データシートへのアクセスは、必要最小限のGoogleアカウントのみに制限する。「リンクを知っている全員」共有は禁止。
🗂️
個人情報含むデータの分離
個人情報を含む生データシートと、集計・報告書用シートを別スプレッドシートに分離することを検討する。報告書生成用のシートには個人を特定できるデータを持ち込まない。
🛡️
GASのOAuth範囲
GASスクリプトに付与するOAuthスコープは必要最小限(SpreadsheetApp・SlidesApp・ZohoAPI接続のみ)とする。
📋
クライアントへの確認事項
上記のセキュリティ設定をドキュメントにまとめ、クライアントに確認・承認を得た上でZoho API自動取得を実装する。承認が得られない場合は手動CSVダウンロードで代替する。
8
技術スタックTechnology Stack
📊
Google Sheets
集計シート・結果シート・各種シートの管理基盤。既存のCOUNTIF数式を流用。
⚙️
Google Apps Script
全自動化の中核。Zoho API連携・シート生成・スライド組み立てを担当。
🎨
Google Slides
最終報告書の出力先。PowerPointから移行。テンプレートを複製して自動組み立て。
📝
Zoho Forms API
アンケート回答データ・設問項目の取得元。RESTful APIで接続。
HTMLグラフ出力を採用しない理由: 報告書との統合が複雑になるため(スクリーンショット→貼付という手動工程が発生)、 Google Sheetsのチャート機能を使いGoogle Slidesへ直接埋め込む方式を採用した。 全社平均ラインの自動配置が困難という制約があるが、手動挿入コストが小さいと判断した。
9
設計変更履歴Design Decisions & Changes
項目 旧方針(v1) 新方針(v2) 変更理由
グラフ出力形式 HTML Google Sheets チャート スライドへの統合を手動なしで実現するため
全社平均ライン 自動生成 手動図形挿入 Google Sheetsチャートの機能制約による
報告書形式 PowerPoint Google Slides GASとの連携がスムーズなため
会社名名寄せ AI自動置換 ハイライト + 人確認 略称・英字表記等の曖昧一致に対応できないため
印象に残った広告の表示 リスト形式 帯グラフ形式 クライアントからビジュアル化の要望が出たため
10
実装ロードマップImplementation Roadmap
完了
要件定義・設計(Phase 1)
MTG2回で集計ロジック・報告書構成・技術方針を確定。既存Excelの数式・シート構成を把握済み。
進行中
プロトタイプ実装(Phase 2)
エンジニアがGASを実装。ダミーデータで集計シート自動生成・コメント転記・Slidesへの報告書出力を動作確認する。 セキュリティドキュメントの整備も並行して実施。
予定
プロトタイプレビュー(Phase 3)— 8月14日
エンジニア同席のMTGでプロトタイプをデモ。動作確認・フィードバックを収集。 Zoho API連携のセキュリティ承認もこのタイミングで確認。
予定
修正・本番データ検証(Phase 4)
フィードバックを反映し、実際のZohoデータで動作検証。グラフのデザイン・色をブランドカラーに合わせて調整。
予定
本番リリース・ドキュメント納品(Phase 5)
スプレッドシート・GASコード・操作マニュアルを納品。 将来的なテンプレート変更・機能追加時のスポット対応も可能。
11
期待効果Expected Benefits
⏱️
〜80%
集計・転記作業の
工数削減
🎯
ゼロ
コピーミス・転記ミス
(自動化部分)
📄
1クリック
報告書生成の
トリガー操作
🔄
再利用可
号ごとに設問数が変わっても
対応可能な柔軟設計