
“いい分析”より“伝わる納品”。副業や実務で評価されるのは、意思決定に効く1枚と再現できるパッケージを期限通り出せること。
本記事は、未経験〜初学者が週10時間×2〜3週で、要件定義→データ受領→ETL→検証→可視化→Excel/PDF納品→引き継ぎまでをテンプレ+チェックリストで回せるように設計した“納品の型”。全文コピペOKのメール文面・質問票・Excel雛形・Pythonスクリプト付きです。
この記事で身に付く力
- 失注しないレポート納品の型(要件定義〜引き継ぎまで)
- 再現可能なパッケージ(README/版管理/実行手順)
- 現場で刺さる1枚スライドの作り方と配布テンプレ
よくある“炎上”パターンと解決の方向性
- 目的が曖昧:誰が何を決めるためのレポートか不明→指標選定がブレる。
- データの前提不足:粒度・期間・欠損/重複の扱いが曖昧→「後から数が合わない」。
- 一度きりの手作業:次月の再現に1時間以上→毎回ミス・属人化。
- 納品パッケージが雑:READMEなし・依存不明→引き継ぎ不可、信用ダウン。
解決策は、要件定義→ETL→検証→可視化→配布→引き継ぎの“型”を固定すること。以降、現場10年で磨いた最短ルートをテンプレ付きで共有します。
筆者について(信頼性)
筆者(ふみと)は大手企業のデータ/マーケティングサイエンティスト歴10年。役員会資料、営業ダッシュボード、月次レビューなどのべ1,000枚超を納品。評価された共通点は、読み手の負担が小さいことと、翌月も同じ品質で出ること。本記事はその再現に必要な雛形一式を公開します。
納品ワークフロー:10ステップ(テンプレ付き)
1. 要件定義(質問票テンプレ)
誰が/いつ/何を決めるために/どの指標を/どの粒度でを先に固定します。
【目的】(例:翌月の販促計画の意思決定)
【読み手】(例:営業Mgr・商品Mgr)
【意思決定項目】(例:重点店舗・重点カテゴリ・在庫発注)
【主要指標】(例:売上、客数、単価、CVR、粗利率)
【期間/粒度】(例:直近12ヶ月、月次/週次/日次)
【対象データ】(例:POS、在庫、広告、Web行動)
【除外/前提】(例:社販除外、欠品は0扱い、返品はマイナス)
【納品形態/期日】(例:Excel1冊+PDF1枚、毎月5営業日目)
【関係者/承認プロセス】
2. フォルダ構成&命名規則
client_xyz_report/
├─ data/
│ ├─ raw/ # 受領CSV/Excel(書換禁止)
│ └─ warehouse/ # SQLite DB
├─ src/ # スクリプト
├─ docs/ # README/要件/仕様
└─ deliverables/ # 納品(Excel/PDF/画像)
命名:YYYYMM_クライアント_レポート名_v1.0.xlsx
(日付→クライアント→名称→版)。
3. データ受領→整合チェック(チェックリスト)
- 行粒度(1行=何?)が合意済み
- 期間の欠番(祝日/閉店日)を把握
- 欠損・重複・異常値の率を算出([内部リンク:pandas実践])
- 参照マスタのキー一意性を検査(
validate="many_to_one"
) - 前月との差分(件数/売上)の粗チェック
4. ETL(SQLite×pandasの最短パターン)
重い整形はSQL、配布はpandas。
# 1) 取り込み(例)
import sqlite3, pandas as pd
con = sqlite3.connect("data/warehouse/retail.sqlite")
df = pd.read_csv("data/raw/sales_2025-08.csv")
df.to_sql("sales", con, if_exists="append", index=False)
# 2) 月次×店舗の集計(SQLで)
q = """
WITH m AS (
SELECT strftime('%Y-%m', order\_date) AS ym, store,
SUM(qty\*price) AS sales, SUM(qty) AS qty
FROM sales WHERE qty>0 AND price>0 GROUP BY ym, store
)
SELECT \* FROM m;
"""
monthly = pd.read\_sql\_query(q, con)
con.close()
5. 検証(“数合わせ”の型)
- 二重計算:全体→内訳合計 が一致するか
- 期間漏れ:カレンダー表に結合し穴がないか
- 差分表:前月/前年同月比の変化点を抽出
- レビュー観点:
dtype
明示、欠損方針コメント([内部リンク:pandas基礎])
6. 可視化(伝わる1枚の型)
詳細は[内部リンク:可視化入門]参照。ここでは1枚スライドの配置テンプレを使用。
- 結論1行
- 根拠図(大):月次売上トレンド+移動平均+注釈
- 補助図(小×2):上位店舗横棒/カテゴリ構成比
- 打ち手:仮説A/B(KPIの期待インパクトを明記)
7. Excel納品の雛形(テンプレ配布)
推奨シート構成:README
/Summary
/Charts
/Pivot
/Data
/Notes
import pandas as pd
from pathlib import Path
from datetime import date
path = Path("deliverables/202509\_ClientX\_月次レポート\_v1.0.xlsx")
with pd.ExcelWriter(path, engine="xlsxwriter") as xw:
\# Data
monthly.to\_excel(xw, sheet\_name="Data", index=False)
```
# Summary(例)
summary = (
monthly.groupby("ym", as_index=False)["sales"].sum()
.tail(2).assign(diff=lambda d: d["sales"].diff())
)
summary.to_excel(xw, sheet_name="Summary", index=False, startrow=2)
wb = xw.book; ws = xw.sheets["Summary"]
ws.write(0, 0, f"月次サマリ(作成日: {date.today()})")
fmt = wb.add_format({"num_format": "#,##0", "align": "right"})
ws.set_column("A:A", 10); ws.set_column("B:D", 14, fmt)
ws.freeze_panes(3, 0)
# README
ws2 = xw.book.add_worksheet("README")
ws2.write(0,0,"目的:翌月の販促計画の意思決定を支援")
ws2.write(1,0,"指標:売上、客数、単価、粗利率(定義はNotes参照)")
```
表記ルール:桁区切り、日付はYYYY-MM
、単位は万円/千円で統一。色は2〜3色+強調1色。
8. PDF化&配布(メール文面テンプレ)
メール件名:[納品] 2025年8月度_月次レポート_v1.0(Excel/PDF)
◯◯株式会社 ◯◯様
いつもお世話になっております。ふみとです。
以下、月次レポートの納品です。
* Excel:202509\_ClientX\_月次レポート\_v1.0.xlsx(README/定義/データ含む)
* PDF:202509\_ClientX\_月次レポート\_v1.0.pdf(1枚サマリ)
【要点】
1. 上位店舗の前年比 -12%(4月以降)。来店数の低下が主因。
2. 新商品X導入後、カテゴリYの粗利率 +2.1pt。
3. 次月の打ち手案:A) 在庫調整、B) クーポン施策。
ご確認の上、修正点があれば本メールへご返信ください。
(差分のみで結構です)
9. 修正依頼の受け方(フォーマット)
【修正対象シート/セル】
【現状】
【期待する状態】
【根拠/資料】
【優先度】(高/中/低)
【希望納期】(◯/◯ 18:00まで)
運用:1往復で終わるよう修正〆切と版管理(v1.1→v1.2→v2.0)を明記。
10. 引き継ぎ/再現性(READMEテンプレ)
環境:Python 3.10 / pandas 2.x / SQLite3(標準)
実行手順:
1) src/etl.py の init_db → load_csv_to_db → fetch_monthly
2) src/report.py の export_report を実行
3) deliverables/ に Excel/PDF 出力
データ定義:Notes シート参照
再学習・更新頻度:毎月 第5営業日
伴走の提案(短期で“毎月回る”仕組みを構築)
独学でも可能ですが、要件定義〜レビュー〜自動化までを短期で仕上げるなら、質問対応とレビューのあるスクール併用が近道。6ヶ月ロードマップに沿い、ポートフォリオに納品テンプレを組み込むのが最短です。
- 株式会社キカガク:業務再現型の課題設計と出口支援。転職直結に◎。
- Tech Academy:質問の速さ×短時間運用で継続しやすい。副業/在宅に◎。
TechAcademy データサイエンスコース(受講料:174,600円~ ※更に割引あり)

株式会社キカガク AI人材長期育成コース(受講料:237,600円~)

ミニプロジェクト(提出推奨)
課題:「sales.csv
を基に、上位店舗の月次売上トレンドと構成比をExcel1冊+PDF1枚で納品。READMEに前提/定義/再現手順を記載。」
要件票の確認(目的/指標/粒度/期日)
- 取り込み→集計→検証(全体=内訳合計)
- 1枚スライド(結論→根拠→打ち手)
- Excel(Summary/Charts/Pivot/Data/README)
- PDF化→メールテンプレで納品→修正対応→版管理
合格基準
- KPI定義がREADME/Notesに明記されている
- グラフは2〜3色+強調1色、軸/単位/注釈が適切
- 前月/前年同月比とTop-Nが整理されている
- 再現手順(コマンド/依存)が明記
付録A:レビュー観点チェックリスト(保存版)
- 要件:意思決定・読み手・期日・版管理が明記
- データ:粒度/期間/欠損/重複/型の扱いが明記
- 集計:
GROUP BY
と指標定義が整合([内部リンク:SQL入門]) - 可視化:図選択の根拠、注釈/基準線、Top-kの解釈([内部リンク:可視化入門])
- 評価:前月/前年比、差分の説明、必要に応じCV/CI([内部リンク:モデル評価])
- 配布:Excel構成、PDF1枚、README、再現手順
付録B:定義表テンプレ(Notes用)
KPI名, 定義, 分母, 注意点
売上, qty*price の合計, -, 返品・社販を除外
客数, ユニークレシート数, -, 共有IDの扱い注意
単価, 売上/客数, 客数, 少数第0位を四捨五入
粗利率, (売上-原価)/売上, 売上, 小数2桁表示
付録C:Q&A(クライアント対応)
Q. 前提が変わったら? → Notesに変更履歴を残し、版を上げて再納品。
Q. 数が合わない? → 粒度/期間/除外条件/基準線を一緒に確認(README参照)。
Q. ダッシュボード化したい → 同じKPI定義でPlotly/BIへ移植。
>>【保存版】可視化入門:Matplotlib/Plotlyの使い分けと“伝わるグラフ設計”10ステップ
この記事から次に読むべきもの(内部リンク)
-
-
【保存版】SQLite×Pythonで作る“ローカルDWH”——ETL・集計・レポート自動化の最短手順
ローカルでゼロ構築、ファイル1つで完結、サーバ不要。本記事はSQLite×Pythonで“毎日回る”ETL・集計・レポート自動化を最短で作るための完全ガイドです。データ設計→DB作成→ETL(取り込み ...
-
-
はじめてのSQL:SELECT/WHERE/GROUP BYを最短で理解【コピペOK】
データ分析・自動レポート・簡易アプリの土台はSQLです。Pythonだけで押し切るより、前処理の7割をDB側で完結させる方が速く・安定します。本記事は、未経験〜初学者が週10時間×2〜3週で、SELE ...
-
-
【実務で差がつく】pandas実践:欠損処理・結合・ウィンドウ関数・時系列・品質保証まで“読みやすく速い”型を習得
リード(結論)基礎を終えたら次は実務の現場で頻出する処理を“型”で覚える段階です。本記事は、pandas 2.x を前提に、欠損・外れ値・結合・ウィンドウ関数・時系列・カテゴリ処理・集計の自動化・大規 ...
-
-
【保存版】可視化入門:Matplotlib/Plotlyの使い分けと“伝わるグラフ設計”10ステップ
結論:可視化は「きれいに描く」ことではなく、意思決定を動かすための設計です。本稿では、未経験〜初学者が 週10時間×1〜2週 で、Matplotlib/Plotlyを軸に “伝わるグラフ”の設計と実装 ...
-
-
【保存版】データ職のポートフォリオ完全ガイド|再現性・評価・LTまで
ポートフォリオって「作ったものの置き場」でしょ? いいえ。採用側が見たいのは「意思決定に効いた証拠」と「再現性」です。 本ガイドは、未経験〜初学者が週10時間×4〜6週で、テーマ選定→要件定義→データ ...
最近のコメント