Claude Code × openpyxl で損益計算書・財務分析レポートを自動生成する

Claude Code×pandas×openpyxlでExcel財務モデルを自動化する方法を解説。BS・PL・CF連動計算・前年比・NPV・IRR・感度分析を自動実行。3表バランスチェックで計算ミスをゼロに。コード付き。

この記事をシェア:
目次 クリックで開く

📅 2025年10月 | ⏱ 読了約8分 | 🏷 Claude Code・業務自動化

売上・費用データから P&L・利益率・前期比を自動計算。グラフ付き財務レポートを毎月自動生成し、経営会議の準備時間を大幅削減。

財務モデル P&Lデモ
📊 Claude Code 生成デモ

財務モデル P&Lデモ

↑ Claude Code が自動生成した実際の成果物サンプル。このクオリティが数分で完成します。

財務レポート自動化で何が変わるか

📌 この記事で実現できること

  • Excel財務モデル自動化の完全自動化を実現するPythonスクリプトを5ステップで解説
  • 「属人化した財務モデルの転記ミス・計算エラー」という課題を根本から解消する
  • Claude Codeへの自然言語指示だけでスクリプトを生成できる
  • 月・週・日単位の定期実行で完全無人化を実現する方法も紹介

以下のステップを順番に実行することで、今日から業務自動化を始められます。コピーして使えるコードと、Claude Codeへの指示文をセットで解説します。

毎月末の損益計算書作成・前期比計算・グラフ更新はどの企業でも発生する反復作業です。Claude Code + openpyxl を使えば、会計システムからエクスポートしたCSVを読み込み、P&L・KPI・グラフ付きの財務レポートを自動生成できます。

ステップ1:売上・費用データから損益を自動計算

💬 Claude Code へのプロンプト売上(B列)と費用項目(C〜H列)から
売上総利益・営業利益・当期純利益・各利益率を自動計算して
Excelに書き込むスクリプトを作成して
import openpyxl
from openpyxl.styles import Font, PatternFill, numbers

wb = openpyxl.load_workbook("財務データ.xlsx")
ws = wb["月次データ"]
result_ws = wb.create_sheet("損益計算書")

result_ws.append(["項目", "金額(千円)", "構成比"])

for row in ws.iter_rows(min_row=2, values_only=True):
    month, sales, cogs, sg_and_a, depreciation, interest, tax = row[:7]
    if not sales:
        continue

    gross_profit    = sales - cogs
    operating_profit = gross_profit - sg_and_a - depreciation
    ordinary_profit  = operating_profit - interest
    net_profit       = ordinary_profit - tax

    result_ws.append([f"{month} 売上高",      sales,            "100.0%"])
    result_ws.append([f"{month} 売上総利益",   gross_profit,     f"{gross_profit/sales*100:.1f}%"])
    result_ws.append([f"{month} 営業利益",     operating_profit, f"{operating_profit/sales*100:.1f}%"])
    result_ws.append([f"{month} 当期純利益",   net_profit,       f"{net_profit/sales*100:.1f}%"])
    result_ws.append([])

wb.save("損益計算書.xlsx")
print("損益計算書生成完了")
✅ 実行結果

12ヶ月分の損益計算書を自動生成。月末の手動計算(3時間)がスクリプト実行10秒に。

😫 Before ─ よくある課題

月次P&Lの予実比較表を手動更新。予算・実績・差異の3行セットを手で修正するたびに計算ミスが発生。

✅ After ─ Claude Code で解決

予算・実績シートを分離し、メインシートに自動集計。差異の色分けも自動で、経理作業を劇的に効率化。

ステップ2:前期比・予算比を自動算出

import pandas as pd

actual = pd.read_excel("実績.xlsx")
budget = pd.read_excel("予算.xlsx")
prev   = pd.read_excel("前期実績.xlsx")

df = actual.merge(budget, on="月", suffixes=("_実績","_予算"))
df = df.merge(prev, on="月", suffixes=("","_前期"))

df["予算達成率"]  = df["売上_実績"] / df["売上_予算"]
df["前期比"]      = df["売上_実績"] / df["売上_前期"]
df["予算差異"]    = df["売上_実績"] - df["売上_予算"]

df.to_excel("財務比較レポート.xlsx", index=False)
print(f"比較レポート完成: {len(df)}ヶ月分")
✅ 実行結果

実績・予算・前期の3軸比較レポートを自動出力。CFOへの説明資料準備が大幅短縮。

ステップ3:グラフ付き財務ダッシュボードを自動生成

import openpyxl
from openpyxl.chart import BarChart, LineChart, Reference

wb = openpyxl.load_workbook("財務比較レポート.xlsx")
ws = wb.active

# 売上棒グラフ
bar = BarChart()
bar.type = "col"
bar.title = "月次売上実績 vs 予算"
bar.y_axis.title = "金額(千円)"
bar.x_axis.title = "月"
data  = Reference(ws, min_col=2, max_col=3, min_row=1, max_row=ws.max_row)
cats  = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row)
bar.add_data(data, titles_from_data=True)
bar.set_categories(cats)
bar.width = 20; bar.height = 12

# 利益率折れ線グラフ
line = LineChart()
line.title = "月次利益率推移"
rate_data = Reference(ws, min_col=5, min_row=1, max_row=ws.max_row)
line.add_data(rate_data, titles_from_data=True)
line.set_categories(cats)
line.width = 20; line.height = 12

chart_ws = wb.create_sheet("グラフ")
chart_ws.add_chart(bar,  "A1")
chart_ws.add_chart(line, "A20")

wb.save("財務ダッシュボード.xlsx")
print("グラフ付き財務ダッシュボード完成")
✅ 実行結果

棒グラフ+折れ線グラフ付き財務ダッシュボードを自動生成。経営会議資料の準備が10分→ゼロに。

ステップ4:Slack・メールへ自動送信

import smtplib, openpyxl
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders

def send_report(filepath, recipients):
    msg = MIMEMultipart()
    msg["Subject"] = "【月次財務レポート】自動配信"
    msg["From"] = "bot@example.com"
    msg["To"]   = ", ".join(recipients)

    with open(filepath, "rb") as f:
        part = MIMEBase("application", "vnd.openxmlformats-officedocument.spreadsheetml.sheet")
        part.set_payload(f.read())
        encoders.encode_base64(part)
        part.add_header("Content-Disposition", "attachment", filename="月次財務レポート.xlsx")
        msg.attach(part)

    with smtplib.SMTP("smtp.example.com", 587) as s:
        s.starttls()
        s.login("bot@example.com", "password")
        s.sendmail("bot@example.com", recipients, msg.as_string())
    print("レポートメール送信完了")

send_report("財務ダッシュボード.xlsx", ["cfo@example.com","manager@example.com"])
✅ 実行結果

月初に自動でExcelレポートをCFO・マネージャーへメール送信。報告業務が完全自動化。

📊 自動化で得られる効果
⏱ 作業時間(Before) 月次P&L作成:4〜5時間/月
⚡ 自動化後(After) 数値入力のみ:30分
作成時間 5時間→30分(90%削減)
計算ミス 手動参照エラー→ゼロ
分析速度 差異の原因特定が即座に

このシステムが解決する課題

財務諸表・財務計算をコードで自動化・検証。この自動化が特に効果的な場面と、解決できる課題を整理します。

❌ よくある課題

  • 財務モデルのExcelに複雑な数式が絡み合っており、修正するとどこかが壊れる
  • 損益計算書・貸借対照表・キャッシュフロー計算書の連動関係の維持が困難
  • 感度分析(変数を変えた場合のシミュレーション)を手動で行うのが大変
  • 財務モデルの検証(バランスチェック)を毎回手動で行っており、ミスが怖い

実務での活用シナリオ

業種・部門 活用方法と効果
事業計画作成 売上・コスト・設備投資の仮定から3期分の財務予測を自動計算。感度分析も一括生成。
M&Aデューデリ 対象企業の財務データから複数シナリオのバリュエーションを自動計算。
月次決算 実績データを入力するだけでBS・PL・CFが自動で更新されるモデルを構築。
資金調達計画 調達額・条件・返済スケジュールを入力するとキャッシュフロー計画が自動生成。
予算・着地見込み管理 予算と実績の差異分析を自動計算し、着地見込みへの影響を即算出。

導入前後の効果比較

😫 Before ─ 従来の課題

財務モデルのExcelは職人技の産物で属人化が極度に進んでいた。作った本人しか修正できず、担当者交代のたびにExcel全体の再作成が必要なケースも発生していた。

✅ After ─ Claude Code で解決

PythonとExcelを連携した財務モデルにより、計算ロジックをコードで明示的に定義。数式の連動関係も追跡可能になり、仮定値変更時の自動再計算とバランスチェックも自動実行。

導入のポイントと注意事項

💡 スムーズに運用するためのコツ

  • 財務モデルの3表(BS・PL・CF)の連動チェックは「CF計算後の現預金 = BSの現預金」が一致することを自動検証するコードを必ず追加する
  • 感度分析は1変数を変化させたときの最終値(NPV・利益など)をテーブル形式で一覧出力するループ処理で効率的に実施できる
  • 財務数値のフォーマットは百万円単位・整数・3桁カンマで統一し、表示用フォーマット関数を1つ作って全体で使い回す
  • 財務モデルの前提条件(仮定値)は別シートに一元管理し、モデルシートからその値を参照する設計にすると変更管理が容易になる

よくある質問(FAQ)

Q. NPV・IRRの計算はできますか?
A. はい。numpyのnpv()・irr()関数、またはpandasで計算できます。Claude Codeに「NPVとIRRを計算して」と指示するだけでコードが生成されます。
Q. 外部データ(Bloombergなど)との連携は可能ですか?
A. BloombergはAPIを提供しており、Pythonで財務データを取得してExcelモデルに自動反映させることが可能です。無料代替としてyfinanceもあります。
Q. モンテカルロシミュレーションも実装できますか?
A. numpyのランダム数生成と組み合わせることで、仮定値の不確実性を考慮したモンテカルロシミュレーションも実装できます。

まとめ

✅ 売上・費用から P&L を自動計算
✅ 実績・予算・前期の3軸比較レポートを自動生成
✅ グラフ付き財務ダッシュボードをワンクリック出力
✅ メール自動送信で報告業務を完全自動化

どんな現場で使われているか:活用シナリオ

対象者 導入前の課題 Claude Code導入後
財務担当 P/L・B/SのExcelモデルを毎月手動更新して数値チェックに時間 データ更新だけで財務モデルが自動計算・グラフが自動更新
経営企画 5ヵ年計画のシミュレーションで仮定を変えるたびに手動計算 パラメータを変えるだけで複数シナリオの財務モデルを即座に試算
CFO・財務役員 月次決算の数値をExcelに転記してレポートを作るのに数日 会計システムのデータを自動取得して財務レポートを自動生成

実装で押さえるべき重要ポイント

  • 1
    財務モデルの数式を明示的にコードで計算:Excelの複雑な数式はデバッグが難しいです。Pythonでロジックを明示的に計算してExcelに値貼り付けすることで、計算ロジックの可視化・テストが容易になります。
  • 2
    シナリオ分析は配列で複数パターンを一括計算:ベース・楽観・悲観の3シナリオをdictに定義してループで一括計算し、それぞれのExcelシートに自動出力することで、シナリオ分析の作業を大幅に効率化できます。
  • 3
    IRR・NPV等の財務指標をnumpyで計算:numpyのnpv()・scipy.optimize.brentqでIRRを計算してExcelに自動記入するコードをClaude Codeが生成します。Excelの財務関数より高精度な結果が得られます。

ビジネスインパクト

数日→数時間
月次財務レポート作成時間
瞬時に試算
シナリオシミュレーション時間
計算ミスゼロ
Python自動計算の精度

この記事のまとめ

  • ✅ 財務モデルのExcelをPythonで自動計算・自動更新できる
  • ✅ 複数シナリオのシミュレーションをパラメータ変更だけで瞬時に実行できる
  • ✅ 会計システムのデータを自動取得して財務レポートを自動生成できる
  • ✅ 月次決算レポートの作成に費やしていた数日間を大幅に短縮できる


関連記事


制作実績サンプル

このクオリティの資料が、あなたの業務でも作れます

Aurant Technologies が実際に制作したコンサルティング資料(全82枚)のサンプルです。Claude Code × AI自動化により、従来の1/5のコスト・時間で同等品質を実現します。

タイトルスライド

タイトル・ダーク背景
3カラム分析

3カラム比較・分析
AI活用フロー

AI活用フロー図解
Before/After

Before/After比較
RFPテンプレート

構造化コンテンツ
全10枚を
見る

御社のテーマでこのレベルの資料を作成できます
制作費・納期・自動化プランは無料相談でご確認いただけます

📊 サンプル全10枚を見る →

Claude Codeで業務自動化を始めよう

自然言語で指示するだけで、あなたの業務に合ったスクリプトを自動生成します。

無料で試してみる →

AT
aurant technologies 編集

上場企業からスタートアップまで、数多くのデータ分析基盤構築・AI導入プロジェクトを主導。単なる技術提供にとどまらず、MA/CRM(Salesforce, Hubspot, kintone, LINE)導入によるマーケティング最適化やバックオフィス業務の自動化など、常に「事業数値(売上・利益)」に直結する改善実績多数。

この記事が役に立ったらシェア: