要件定義書 v2.0 — 2025年8月

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

クライアント
オールイン様
実装基盤
Google Workspace + GAS
ワークフロー数
2本
次回MTG
8月14日(金)
1
プロジェクト概要Background & Objectives
オールイン様は、業界向け専門誌(雑誌)を発行する出版社である。 雑誌には複数の企業が記事広告・ビジュアル広告を掲載しており、 各号の発行後に読者(企業の担当者・投資家等)へ向けてアンケート調査を実施している。

アンケートでは、各広告への興味関心・印象・感想などを収集。 その集計結果をもとに、広告掲載企業1社ごとに個別の報告書を作成し納品している。 これが毎号発生する定型業務であり、現状はほぼ手作業で対応している。
📋
現在の課題(手作業の流れ)
Zohoフォームから手動でCSVをダウンロードし、Excelに貼り付け。 集計シートで関数集計・自由記述を整理し、最終的にパワーポイントで 報告書を1社ずつ手作成している。毎号10〜20社分が発生する定型業務。
🎯
自動化の目的
データ取得・集計・報告書組み立ての繰り返し作業を GAS(Google Apps Script)で自動化する。担当者の関与を 「中間チェック」と「最終確認」のみに絞り込む。
自動化しない箇所(人の判断が必要)
・コメントの内容精査(ノイズ除去・転記ミス修正)
・会社名の名寄せ(詳細は後述)
・報告書への全社平均ライン挿入
・号数・発行年月等のメタ情報入力

成果物の構成(各号で発生する業務)

成果物 内容 発生頻度 対象
集計スプレッドシート アンケート回答の集計・自由記述の整理をまとめたスプレッドシート 各号1回 社内管理用
報告書(Google Slides) 掲載企業1社ごとの個別レポート。グラフ・コメント・評価を含む 各号 × 掲載企業数 広告掲載企業へ納品
2
全体データフローEnd-to-End Data Flow

2つのワークフローは独立。間に人の中間チェックが入る。 自動  手動 / 要確認

SOURCE
📝
Zohoフォーム
読者アンケート
回答データ
STEP 1
🔄
データ取得
自動化判断中
API or 手動CSV
STEP 2
🏢
会社名確認
手動確認
名寄せ作業
STEP 3
📊
集計シート生成
自動
GAS + 数式
CHECK
👁️
中間チェック
人の確認
コメント精査
STEP 4
📑
報告書生成
自動
Google Slides
STEP 1(データ取得)について: Zoho APIを使って自動取得できる可能性があるが、 回答データには個人情報が含まれるため、 Google Sheetsへの格納可否をクライアントに確認中。 承認が得られない場合は手動CSVダウンロードで対応する。
3
スプレッドシート構成Google Sheets Structure
シート名 役割 生成方法 備考
生データシート Zohoから取得した生の回答データ。個人情報含む。 手動 or 自動 STEP 1の判断次第。個人情報の管理が最重要。
設問項目シート 設問名・選択肢・回答タイプ(SA / MA / 4段階 / ランキング)の定義 自動生成 Zoho APIから取得。号ごとに設問数・広告数が変わるため毎回生成。
集計シート 広告評価4段階・印象に残った企業(1位・2位)・関心を持てなかった企業 の集計(COUNTIF数式) 自動生成 既存Excelの数式を流用。設問数・広告社数に応じて行列を動的生成する。
編集シート コメント仕分け用。1行 = 1回答者。A〜K列=各記事へのフラグ(選択した記事に印)、L列=コメント本文、M・N列=所属組織 自動転記 人が中間チェックでコメントの帰属(どの企業向けか)を色付けして仕分ける。自動転記はL列・フラグ・所属組織まで。色付けは人が行う。
結果シート 集計シートの値コピー(数式なし) 自動生成 外部共有・共有時に数式が崩れる問題を防ぐため値のみに変換。
記事広告シート 記事広告への自由記述コメント一覧 自動転記 「なし」「特にありません」等のノイズはセルをハイライト表示。
ビジュアル広告シート ビジュアル広告への自由記述コメント一覧 自動転記 同上。並び順ルール(優先度付き)も自動適用。
報告書入力シート 号数・発行年月・掲載企業名など、報告書のメタ情報 手動入力 毎回実行前に担当者が入力する。
会社名確認シート Zoho回答の社名 → 正式社名の対応表。名寄せ管理。 人が確認 集計シートとは別ファイルで管理(既存運用と同様)。
4
ワークフロー詳細設計Workflow Detail
📊
ワークフロー① 集計
Zohoデータ取得 → 集計シート・コメントシート 自動生成
優先度 HIGH
1
Zohoからデータ取得(自動化判断中)
Zoho APIを使い指定期間の回答データを取得し、生データシートへ格納する構成を検討中。 個人情報を含むデータがGoogle Sheetsに載ることへの承認待ち。 承認が得られない場合は手動CSVダウンロードで代替する。
要判断
2
設問項目シート自動生成
Zoho APIから設問名・選択肢・タイプ(SA / MA / 4段階 / ランキング)を取得し、設問項目シートを自動生成。 号ごとに広告数・設問数が異なるため、毎回この工程で最新の設問構造を取得する。
自動
3
集計シート自動生成(動的行列)
設問項目シートをもとに集計シートの行列を動的生成。 既存Excelの集計ロジック(COUNTIF / 加重計算 / パーセンテージ)を流用し、 広告評価4段階・印象に残った広告・印象に残った企業(1〜2位)・関心を持てなかった企業 等を集計。
自動
4
コメント転記(自由記述)
記事広告・ビジュアル広告・今後のテーマ に対する自由記述を各シートへ自動転記。 「なし」「特にありません」などのノイズコメントは黄色ハイライトで表示し、 人が中間チェックで取り除く。並び順のルールも自動適用。
自動
5
結果シート生成(値貼付)
集計シートを値のみでコピーした結果シートを自動生成。 外部共有・別アプリ連携時に数式が崩れる問題を防ぐため。
自動
中間チェック(自動化対象外): ハイライトされたノイズコメントの確認・コメントの帰属修正(「この感想は別の広告のもの」等)・ 会社名の最終確認。チェック完了後、報告書生成ワークフローへ進む。
📑
ワークフロー② 報告書生成
スプレッドシートデータ → Google Slides 自動組み立て(1社ごと)
優先度 HIGH
1
報告書入力シートに情報を記入
号数・発行年月・掲載企業名一覧など、報告書ごとに異なるメタ情報を担当者が手動入力する。
手動
2
「報告書生成」ボタンをクリック
スプレッドシート上のGASボタンを1クリックすると、以降の処理がすべて自動で実行される。
トリガー
3
グラフ自動生成(Google Sheetsチャート)
帯グラフ(広告評価4段階:各社別)と円グラフ(全体の印象分布)をGoogle Sheetsのチャート機能で自動生成。 色はオールイン様のブランドカラーに合わせて設定する。
自動
4
Google Slidesに報告書を自動組み立て
テンプレートスライドを企業ごとに複製し、集計データ・グラフ・コメントを各スライドへ差し込む。 企業名・ボリューム・パーセンテージ・自由記述コメントはすべてスプレッドシートから自動取得。
自動
5
全社平均ラインを手動で挿入
Google Sheetsのチャート機能では帯グラフへの参照線(全社平均)の自動配置が困難なため、 担当者がスライド上でコントラストカラー(コン色等)の太い長方形を手動で配置する。 全社平均値は号ごとに一度計算すれば固定なので作業コストは最小。
手動
6
修正が発生した場合
元のスプレッドシートを修正し、再度ボタンをクリックして再生成する。生成済みスライドの直接編集ではなく、元データ修正を基本とする。
再生成
報告書のスライド構成: ① 表紙(企業名・号数・ボリューム)→ ② 掲載広告について(記事広告 or ビジュアル広告は企業ごとに異なる)→ ③ 編集記事について → ④ 今後の企画について(全社共通)
5
集計ロジック仕様Aggregation Logic — Full Detail

5-1. 全設問一覧(号ごとに変動する可能性あり)

# 設問内容 タイプ 回答条件 集計方法 報告書掲載
基1 所属組織種別
コメント横・円グラフに使用
SA 必須 コメントへの属性付与 掲載
基2 資金規模
社内参照のみ、報告書には不掲載
SA 必須 集計のみ 非掲載
Q1 今後の〇月号で興味を持ったコンテンツ(記事タイトル選択)
記事タイトルは号ごとに変わる
MA 必須・上限なし 選択数 / 回答者数 掲載
Q1b Q1で選んだ記事への感想(自由記述)
複数選択者の感想が1セルにまとまる→編集シートで仕分け
自由記述 任意 編集シートへ転記 掲載
Q2 記事広告 各社への評価(4段階)
掲載企業数分だけ設問が並ぶ
SA 必須・全社分 4択ごとにCOUNTIF 掲載
Q3 印象に残った記事広告(企業選択)
5社以上→2択、4社以下→1択
MA 必須 (D+E) / 回答者数 → G列
加重計算(H列)は算出のみ・不使用
掲載
Q3b 印象に残った記事広告の理由(自由記述) 自由記述 任意 コメントシートへ転記(A分類) 掲載
Q4 最も関心を持てなかった記事広告
記事広告3社以上の場合のみ出現
SA 3社以上で必須 F列 / 回答者数 → M列 掲載
Q4b 関心を持てなかった理由(自由記述) 自由記述 任意 コメントシートへ転記(B分類) 掲載
Q5 ビジュアル広告 各社への評価(4段階)
CSVで記事広告とは別ブロックで出力される
SA 必須・全社分 Q2と同ロジック 掲載
Q6 印象に残ったビジュアル広告
2社→1択、3社以上→2択
MA 必須 Q3と同ロジック 掲載
Q6b 印象に残ったビジュアル広告の理由(自由記述) 自由記述 任意 コメントシートへ転記(A分類) 掲載
Q7 最も関心を持てなかったビジュアル広告
ビジュアル広告3社以上の場合のみ出現
SA 3社以上で必須 Q4と同ロジック 掲載
Q8 その他、印象に残った広告(任意記述)
ABC分類のCに相当、件数少
自由記述 任意 コメントシートへ転記(C分類) 掲載
Q9〜Q20 追加設問(次号企画用・号ごとに異なる)
集計シートには出力するが報告書には不掲載
混在 号ごとに異なる 集計のみ 非掲載
Q21 雑誌全体への感想・意見(自由記述)
「今後の企画について」スライドに掲載
自由記述 任意 転記のみ 掲載

5-2. 集計シートの列構成(印象に残った企業ブロック)

集計シートの下部(約46行目〜)に企業ごとの集計が縦に並ぶ。

内容算出方法報告書使用
D列 印象に残った企業 1位 の集計数 =COUNTIF(1位回答列, 企業名) 使用
E列 印象に残った企業 2位 の集計数 =COUNTIF(2位回答列, 企業名) 使用
F列 関心を持てなかった企業の集計数 =COUNTIF(関心なし列, 企業名) 使用
G列 印象に残った企業 パーセンテージ(1位+2位合算) =(D+E) / 回答者数 使用 ← 報告書はこれ
H列(相列) 加重計算スコア(1位×2 + 2位×1) =D*2 + E*1 不使用(内部参照のみ)
M列 関心を持てなかった企業 パーセンテージ =F / 回答者数 使用

5-3. コメント転記ルールと並び順(ABC分類)

記事広告・ビジュアル広告のコメントシートは以下のルールで自動転記する。

分類内容並び順優先度備考
A分類 印象に残った企業(1位・2位)の理由 最優先(1番上) 1位と2位に優劣なし。合算して同列扱い。
B分類 最も関心を持てなかった企業の理由 A分類の後 関心なし理由のコメント
C分類 その他、任意で記入した印象に残った企業 最後 任意回答のため件数少。
同分類内の並び順: 同じABC分類の中では所属組織の種別順で並べる。 各コメント行には「所属組織」を付記する(報告書にそのまま転載)。

5-4. 編集シートの構造(コメント仕分けの中間ステップ)

Q1(興味を持ったコンテンツ)で複数記事を選んだ回答者のコメントが1セルにまとめて入るため、 どの記事への感想かを人の目で仕分ける必要がある。そのための作業シート。

内容自動/手動
A〜K列 各記事へのフラグ(その回答者がQ1で選択した記事に印が入る) 自動転記
L列 その回答者が書いたコメント本文 自動転記
M・N列 所属組織(コメント横に表示するため) 自動転記
色付け 「このコメントは記事Aについてのもの」と色付けして仕分ける 人が手動
中間チェックでのフロー: ① 編集シートを確認し、コメントがどの記事向けかを色付けで仕分ける → ② ノイズコメント(「なし」「特にありません」等)をハイライト確認・削除 → ③ コメントの帰属誤り(「この感想は別の広告のもの」)を修正 → ④ 完了後、報告書生成ワークフローへ進む
動的生成の要件(重要): 記事広告の本数・ビジュアル広告の本数・掲載企業数が号ごとに異なる。 設問項目シートの内容(設問名・選択肢・タイプ)をもとに、集計シートの行列を毎回自動生成すること。 記事広告4社以下→印象に残った1択、5社以上→2択 の分岐も自動判定する。
6
会社名名寄せ仕様Company Name Normalization
【重要】名寄せは人の手で行う。AIによる自動置換は採用しない。
理由:アンケート回答者が入力する会社名には略称・英字略称・複数候補が混在しており、 AI・ファジーマッチングでは精度100%が保証できない。 誤った名寄せが報告書に混入するリスクが高いため、 AIは候補をハイライト提示するにとどめ、最終判断は人が行う。
パターン 処理方式 具体例
全角 / 半角ゆれ 自動変換 「(株)」→「(株)」
株式会社の表記ゆれ 自動変換 「㈱〇〇」「〇〇(株)」→「〇〇株式会社」
過去に確定済みの名寄せ 自動変換 会社名確認シートの対応表に登録済みのもの
日本語略称 ハイライト→ 人が判断 「信託」→「〇〇信託銀行」? 別社名?
英字略称 ハイライト→ 人が判断 「SMTB」→「三井住友信託銀行」?
類似社名が複数存在する ハイライト→ 人が判断 「〇〇銀行」vs「〇〇信託銀行」どちらか不明
英語社名での記入 ハイライト→ 人が判断 「XYZ Capital」→ 正式日本語名は?
運用ルール: 人が確認・修正した名寄せは会社名確認シートの対応表に追加登録する。 次号以降は「自動変換」として処理されるようになり、徐々に手作業が減っていく設計にする。 会社名確認シートは集計シートとは別ファイルで管理(現行Excelの運用と同様)。
7
設計変更履歴Design Decisions & Changes from v1
項目 旧方針(v1) 新方針(v2) 変更理由
グラフ出力形式 HTML生成 Google Sheetsチャート スクリーンショット撮影→貼付という手動工程が発生するため
全社平均ライン 自動生成 手動図形挿入 Google Sheetsチャートの機能制約(参照線の自動配置が困難)
報告書ツール PowerPoint Google Slides GASとの連携がスムーズ。クライアントの運用上も問題なし。
会社名名寄せ AI自動置換 ハイライト+人確認 略称・英字等の曖昧一致に対応できず、誤変換リスクが高いため
印象に残った広告表示 リスト形式 帯グラフ形式 クライアントよりビジュアル化の要望。視認性が高い。
8
実装ロードマップImplementation Roadmap
完了
Phase 1 — 要件定義・設計
MTG 2回で集計ロジック・報告書構成・技術方針を確定。既存Excelの数式・シート構成を把握済み。
進行中
Phase 2 — プロトタイプ実装
エンジニアがGASを実装。ダミーデータで集計シート自動生成・コメント転記・Slides出力を動作確認。 Zoho APIセキュリティドキュメントの整備も並行実施。
予定 — 8月14日(金)
Phase 3 — プロトタイプレビュー MTG
エンジニア同席でプロトタイプをデモ。動作確認・フィードバック収集。 Zoho API連携のセキュリティ可否もこのタイミングで確定する。
予定
Phase 4 — 修正・本番データ検証
フィードバックを反映し、実際のZohoデータで動作検証。グラフのデザイン・色をブランドカラーに合わせて最終調整。
予定
Phase 5 — 本番リリース・ドキュメント納品
スプレッドシート・GASコード・操作マニュアルを納品。 将来的なテンプレート変更・機能追加時はスポット対応で対応可能。