Python基礎 キャリアチェンジ/転職 実案件/ポートフォリオ

【保存版】データレポート納品の型:要件定義→ETL→検証→可視化→Excel/PDF→引き継ぎまで、失注しないワークフロー完全版

“いい分析”より“伝わる納品”。副業や実務で評価されるのは、意思決定に効く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. 結論1行
  2. 根拠図(大):月次売上トレンド+移動平均+注釈
  3. 補助図(小×2):上位店舗横棒/カテゴリ構成比
  4. 打ち手:仮説A/B(KPIの期待インパクトを明記)

7. Excel納品の雛形(テンプレ配布)

推奨シート構成READMESummaryChartsPivotDataNotes

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円~ ※更に割引あり)

TechAcademy 無料相談

株式会社キカガク 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
【保存版】SQLite×Pythonで作る“ローカルDWH”——ETL・集計・レポート自動化の最短手順

ローカルでゼロ構築、ファイル1つで完結、サーバ不要。本記事はSQLite×Pythonで“毎日回る”ETL・集計・レポート自動化を最短で作るための完全ガイドです。データ設計→DB作成→ETL(取り込み ...

SQL
はじめての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週で、テーマ選定→要件定義→データ ...

最近のコメント

    • この記事を書いた人
    • 最新記事

    ふみと

    このブログでは、データサイエンティストとして市場価値を上げる方法を独自にまとめて発信しています。

    【プロフィール】
    ・大手企業データサイエンティスト/マーケティングサイエンティスト(10年、年収900万円台)/案件100件以上
    ・資格:JDLA E資格(日本ディープラーニング協会主催)/JDLA Community(CDLE会員)/Advanced Marketer/ビジネス統計スペシャリスト/統計検定2級/TOEIC 805
    ・スキル:Python/Tableau/SQL/機械学習/Deep Learning/RPA

    -Python基礎, キャリアチェンジ/転職, 実案件/ポートフォリオ