月末になるたびに、Excelの集計データを眺めながら「これを文章にする時間、もったいないな」と感じたことはないだろうか。売上・経費・受注件数がシートに揃っているのに、それを経営者向けの報告書にまとめる作業で2〜3時間が消える——そんな状況は、Pythonと Claude API(Anthropic製の生成AI)を組み合わせれば、レビュー時間だけに圧縮できる。
本記事では、中小企業の経理・管理担当者が実際に動かせる実装コードとともに、月次レポート自動ドラフト生成の手順を解説する。
月次レポート作成はなぜ「なくならない」のか
データは揃っている。Excelには売上実績も経費も入力されている。それでも毎月、担当者がまとめ直しているのはなぜか。主な理由は3つだ。
1. 数値から文章への変換が手作業 「前月比+8%」という数字を「新規開拓施策が奏功し、受注が着実に積み上がった」と表現するのは人間の仕事だった。統計的な事実を文脈ある言葉に変換する作業に、ベテランのノウハウが使われてきた。
2. 書き方がベテラン依存 フォーマットが共有されていても、文章の粒度・トーン・強調点がバラつく。担当者が変わるたびにクオリティが揺れ、引き継ぎのたびに再教育が必要になる。
3. 締め作業のピークと重なる 月末の請求処理・入金確認・在庫計算が重なる時期に、まとめ作業が積み重なる。担当者の残業が増える構造的な問題だ。
これらはいずれも「ドラフト生成AIで最初の7割を自動化する」アプローチで解決できる。
解決方針:Claude API にデータを渡してドラフトを生成
今回の自動化フローはシンプルだ。
Excelファイル → Python(openpyxl)で読込 → Claude API に送信 → ドラフトテキスト取得 → 担当者がレビュー・修正
全自動にしないのがポイントだ。ドラフト生成に特化し、数値の正確性はExcelが担保・文章の流暢さはClaudeが補完、最終判断は人間がレビューする役割分担にすることで、AIの誤出力リスクを最小化しながら作業時間を大幅に削減できる。
必要なコスト感
Claude Haiku 4.5(本記事で使用するモデル)のAPI料金は入力 $1/100万トークン・出力 $5/100万トークン(2026年7月時点、Anthropic公式価格)。月次レポート1件あたりのトークン消費は通常 1,500〜2,000トークン程度のため、月10件生成しても $0.10 未満で収まる設計だ。
実装手順(Python + openpyxl + Claude API)
前提環境
- Python 3.10 以上
- Anthropic コンソールで発行したAPIキー(console.anthropic.com から取得)
- 必要ライブラリ
pip install anthropic openpyxl python-dotenv
想定するExcelの構造
| 月 | 売上(万円) | 経費(万円) | 受注件数 | 前月比 | |—|—|—|—|—| | 2026-06 | 350 | 120 | 42 | +8% | | 2026-05 | 324 | 115 | 39 | +3% |
- シート名:
月次データ(変更可) - 1行目: ヘッダー行
- 2行目以降: 月次データ
Pythonコード
import os
import anthropic
import openpyxl
from pathlib import Path
from dotenv import load_dotenv
load_dotenv() # .env から ANTHROPIC_API_KEY を読み込む
def read_excel_data(file_path: str, sheet_name: str = "月次データ") -> str:
"""ExcelからKPIデータを読み込みテキスト形式に変換"""
wb = openpyxl.load_workbook(file_path)
ws = wb[sheet_name]
headers = [cell.value for cell in ws[1]]
rows = []
for row in ws.iter_rows(min_row=2, values_only=True):
if any(cell is not None for cell in row): # 空行スキップ
row_dict = {h: v for h, v in zip(headers, row)}
rows.append(", ".join(f"{k}: {v}" for k, v in row_dict.items()))
return "\n".join(rows)
def generate_report_draft(excel_data: str, company_name: str = "弊社") -> str:
"""Claude API で月次報告書ドラフトを生成"""
client = anthropic.Anthropic() # ANTHROPIC_API_KEY を自動参照
prompt = f"""以下は{company_name}の月次KPIデータです。
このデータをもとに、経営者向けの月次報告書ドラフトを作成してください。
【データ】
{excel_data}
【出力条件】
- 経営者向け、簡潔かつ要点重視(400〜600字)
- 数字を根拠として文章で表現する
- 良い点と課題点をバランスよく記載する
- 箇条書き3〜5項目 + まとめ段落の構成
- 専門用語を避け、平易な表現で記述すること
- 数値の解釈は保守的に行い、断定的な表現は避ける"""
message = client.messages.create(
model="claude-haiku-4-5-20251001", # コスト重視の場合は Haiku を推奨
max_tokens=1024,
messages=[{"role": "user", "content": prompt}]
)
return message.content[0].text
def save_draft(draft: str, output_path: str) -> None:
"""ドラフトをテキストファイルに保存"""
Path(output_path).parent.mkdir(parents=True, exist_ok=True)
with open(output_path, "w", encoding="utf-8") as f:
f.write(draft)
print(f"✅ ドラフト保存完了: {output_path}")
if __name__ == "__main__":
excel_file = "monthly_kpi.xlsx" # 対象Excelファイルのパスを指定
print("📊 Excelデータ読込中...")
data = read_excel_data(excel_file, sheet_name="月次データ")
print(f"読込データ:\n{data}\n")
print("🤖 Claude API でドラフト生成中...")
draft = generate_report_draft(data, company_name="弊社")
save_draft(draft, "output/monthly_report_draft.txt")
print("\n--- 生成ドラフト確認 ---")
print(draft)
実行方法
プロジェクトフォルダに .env ファイルを作成してAPIキーを設定する。
# .env
ANTHROPIC_API_KEY=sk-ant-api03-xxxxxxxxxx
実行は1コマンドで完了する。
python report_generator.py
ハマりどころと対策
1. Excelのシート名・構造が異なる場合
スクリプトはシート名「月次データ」・1行目ヘッダーを前提にしている。自社のExcelに合わせて sheet_name 引数と min_row を変更することで対応できる。
# シート名が「KPI」の場合
data = read_excel_data("kpi.xlsx", sheet_name="KPI")
2. 機密データの取り扱い
ExcelのデータをAPIに送信する前に、顧客名・個人情報が含まれていないかを必ず確認すること。必要に応じて匿名化(「A社」「顧客01」等に置換)してからAPIに渡す設計にすることを推奨する。自社の情報セキュリティポリシーとAnthropicの利用規約を事前に確認した上で運用すること。
⚠️ 社外秘の数値データを外部APIに送信する際は、必ず社内承認プロセスを経ること。
3. ドラフトの品質調整
プロンプトの「【出力条件】」を自社仕様に変更することで、文体・長さ・強調ポイントを調整できる。初回は数パターンのプロンプトで出力を比較し、最適版を固定するのが効率的だ。たとえば「前月対比を必ず冒頭に出す」「ネガティブな数値は改善策とセットで記載」といった条件を追加することで、経営者が読みやすい形式に整えられる。
4. 大量バッチ処理のコスト管理
月次1件の生成では問題ないが、支店別・部署別に複数レポートを生成する場合は Anthropic Batch API の利用を検討すると良い。通常のAPI料金から最大50%割引になる(非同期処理、最大24時間後に結果取得)。
Before / After:導入前後の比較
| 項目 | 導入前 | 導入後 | |—|—|—| | ドラフト作成時間 | 約2〜3時間 | 約15〜20分(レビューのみ) | | 作業の属人性 | 高(担当者のスキルに依存) | 低(誰でもレビュー可能) | | 品質の安定性 | バラつきあり | テンプレート品質で安定 | | 月末のストレス | 高(締め作業との重複) | 低(コマンド1つで初稿完了) | | API料金 | — | 月10件で $0.10 未満(目安) |
💡 実際の効果は業務量・Excelデータの複雑さ・レビュー工数によって異なる。まず1本試してから判断することを推奨する。
まとめ
月次レポートのドラフト作成は、Excelデータ読込 → Claude API送信 → テキスト取得の3ステップで自動化できる。Pythonコード30行程度、初期構築コストは数時間程度だ。
重要なのは「全自動化」ではなく「ドラフト生成 + 人間レビュー」の設計にすること。数値の正確性はExcelが担保し、文章の流暢さはClaudeが補完する役割分担で、AIの誤出力リスクを最小化しながら月末の定型作業を大幅に効率化できる。
まず1つのレポートで試して、プロンプトを自社仕様に調整してみてほしい。
「うちの業務でもこんな自動化できる?」と思った方は、 お問い合わせ からお気軽にご相談ください。 初回ヒアリング(30分・無料)で、御社の業務量・既存システム・予算から最適な構成をご提案します。
