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

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

クライアント
想研様
実装基盤
Google Workspace + GAS
ワークフロー数
2本
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
修正が発生した場合
元のスプレッドシートを修正し、再度ボタンをクリックして再生成する。生成済みスライドの直接編集ではなく、元データ修正を基本とする。
再生成
4b
報告書構成・生成要件Report Template Specification
報告書は 1社ごとに1ファイル(Google Slides) を自動生成する。
テンプレートスライドを複製し、スプレッドシートのデータを差し込む形式。
★ = 毎回変わる箇所(自動差し込み対象) / 固定 = テンプレートに組み込み済み

スライド① 表紙

要素固定 / 変動内容・データソース
雑誌タイトル・ロゴ固定テンプレートに組み込み済み
号数・発行年月 ★毎回変わる報告書入力シートから取得
掲載企業名 ★企業ごと変わる報告書入力シートから取得
広告種別(記事広告 / ビジュアル広告)★企業ごと変わる報告書入力シートから取得
回答者数(ボリューム)★号ごと変わる集計シートから自動取得

スライド② 掲載広告について(記事広告 or ビジュアル広告)

⚠️ 企業ごとにスライド種別が異なる: 記事広告掲載企業 → 記事広告テンプレート適用、ビジュアル広告掲載企業 → ビジュアル広告テンプレート適用
要素固定 / 変動内容・データソース
広告評価グラフ(4段階棒グラフ)★企業ごと変わる 集計シート(D列=1位票数・E列=2位票数・F列=関心なし票数・G列=割合)からGoogle Sheetsチャートを生成しスライドに貼り付け。
横軸: 評価項目(広告ごとに5〜10項目)
縦軸: 評価割合(%)
全社平均ライン: 各号の全社平均値を手動で帯グラフ上に長方形(コン色)を重ねて配置(GASで自動挿入が困難なため)
自由記述コメント一覧 ★企業ごと変わる 記事広告シート or ビジュアル広告シートから該当企業の行を転記。
並び順:A(高評価)→ B(否定的)→ C(任意言及)の順に自動ソート済み。
各コメント末尾に所属組織(M列)を付記。
見出し・デザイン固定テンプレートに組み込み済み。ブランドカラー設定済み。

スライド③ 編集記事について

要素固定 / 変動内容・データソース
印象に残った記事 集計グラフ ★号ごと変わる 集計シートから「印象に残った記事(1位・2位票数)」「関心を持てなかった記事」を棒グラフ表示。
企業すべてで共通のスライド(掲載企業ごとに差し込みは不要)。
各記事へのコメント一覧 ★号ごと変わる 編集シートのL列(コメント本文)とA〜K列フラグから、どの記事へのコメントかを判定して転記。ABC分類ソート済み。
見出し・デザイン固定テンプレートに組み込み済み

スライド④ 今後の企画について(全社共通)

要素固定 / 変動内容・データソース
テーマへの関心度グラフ ★号ごと変わる 集計シートから「今後のテーマ」各項目の集計値を棒グラフで表示。全社共通スライドのため企業間で内容は同一。
自由記述コメント一覧 ★号ごと変わる テーマシートから転記。ABC分類ソート済み。全社共通(企業別フィルタなし)。
見出し・デザイン固定テンプレートに組み込み済み

グラフ生成仕様まとめ

グラフ種類データソース列自動/手動
広告評価グラフ(②スライド) 積み上げ横棒グラフ 集計シート D列(1位)・E列(2位)・F列(関心なし)・G列(割合%) 自動(GAS → Sheetsチャート → Slides貼付)
全社平均ライン 長方形シェイプ(コン色) 号ごとに1回算出した全社平均値 手動(担当者がスライド上で配置)
編集記事 印象グラフ(③スライド) 横棒グラフ 集計シート 記事評価行(D列・E列・F列) 自動
テーマ関心度グラフ(④スライド) 横棒グラフ 集計シート テーマ行(D列・E列・F列) 自動
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自動置換 ハイライト+人確認 略称・英字等の曖昧一致に対応できず、誤変換リスクが高いため
印象に残った広告表示 リスト形式 帯グラフ形式 クライアントよりビジュアル化の要望。視認性が高い。