Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excel経営レポート

Python Python
スポンサーリンク

Excel経営レポートは「経営判断に必要なKPI・分析・グラフを自動生成し、意思決定を高速化する」ための最強スキル

経営レポートの自動化は“最も価値の高いExcel業務自動化” です。

経営レポートは、単なる集計ではなく
売上・利益・コスト・KPI・推移・構成比
などをまとめた「経営判断のための資料」です。

Pythonを使えば、
集計 → KPI算出 → グラフ生成 → レイアウト → 保存
まで完全自動化できます。

初心者でも理解できるように、
実務でそのまま使えるテンプレート形式で丁寧に解説します。


経営レポート自動化の全体像(最重要ポイント)

経営レポートは次の4つの要素で構成されます。

集計(pandas)

売上・利益・粗利・コストなどを自動集計します。

KPI(重要指標)

売上総利益率、営業利益率、成長率などを算出します。

グラフ(openpyxl.chart)

折れ線・棒・円グラフを自動生成します。

レイアウト(openpyxl)

タイトル、罫線、列幅調整などを整えて「提出できるレポート」に仕上げます。

この4つを組み合わせることで、経営レポートが完全自動化されます。


経営レポートの基本テンプレート(最小構成)

売上・利益を集計してレポート化する例

import pandas as pd
from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference
from openpyxl.styles import Font, Alignment

df = pd.read_excel("finance.xlsx")
df["月"] = df["日付"].dt.month

summary = df.groupby("月")[["売上", "利益"]].sum()

wb = Workbook()
ws = wb.active
ws.title = "経営レポート"

ws["A1"].value = "月次経営レポート"
ws["A1"].font = Font(size=16, bold=True)
ws.merge_cells("A1:F1")
ws["A1"].alignment = Alignment(horizontal="center")

ws["A3"].value = "月"
ws["B3"].value = "売上"
ws["C3"].value = "利益"

for i, (month, row) in enumerate(summary.iterrows(), start=4):
    ws.cell(row=i, column=1, value=month)
    ws.cell(row=i, column=2, value=row["売上"])
    ws.cell(row=i, column=3, value=row["利益"])

ws["E3"].value = "売上合計"
ws["F3"].value = summary["売上"].sum()
ws["E3"].font = Font(bold=True)

ws["E4"].value = "利益合計"
ws["F4"].value = summary["利益"].sum()
ws["E4"].font = Font(bold=True)

chart = LineChart()
chart.title = "売上・利益推移"

values = Reference(ws, min_col=2, min_row=3, max_col=3, max_row=3 + len(summary))
labels = Reference(ws, min_col=1, min_row=4, max_row=3 + len(summary))

chart.add_data(values, titles_from_data=True)
chart.set_categories(labels)

ws.add_chart(chart, "H3")

wb.save("management_report.xlsx")
Python

深掘りポイント

折れ線グラフは「推移」を見せるのに最適で、経営レポートでは必須です。
売上と利益を同じグラフに載せることで、経営状況を一目で把握できます。
KPIを右上に配置することで、意思決定者が最初に見るべき情報が明確になります。


KPI(経営指標)を追加してレポートの質を劇的に上げる

売上総利益率・利益率・成長率を自動計算

gross_margin = summary["利益"].sum() / summary["売上"].sum()
growth_rate = (summary["売上"].iloc[-1] - summary["売上"].iloc[0]) / summary["売上"].iloc[0]

ws["E5"].value = "売上総利益率"
ws["F5"].value = round(gross_margin * 100, 2)

ws["E6"].value = "売上成長率"
ws["F6"].value = round(growth_rate * 100, 2)

ws["E5"].font = Font(bold=True)
ws["E6"].font = Font(bold=True)
Python

深掘りポイント

経営レポートは「数字の意味」が重要です。
利益率や成長率を入れることで、経営状況の良し悪しが一瞬で分かります。


商品別売上の棒グラフを追加して経営分析を強化する

商品別売上を集計して棒グラフ化

product_summary = df.groupby("商品")["売上"].sum()

ws["A15"].value = "商品"
ws["B15"].value = "売上"

for i, (product, value) in enumerate(product_summary.items(), start=16):
    ws.cell(row=i, column=1, value=product)
    ws.cell(row=i, column=2, value=value)

from openpyxl.chart import BarChart

bar = BarChart()
bar.title = "商品別売上"

bar_values = Reference(ws, min_col=2, min_row=16, max_row=15 + len(product_summary))
bar_labels = Reference(ws, min_col=1, min_row=16, max_row=15 + len(product_summary))

bar.add_data(bar_values, titles_from_data=False)
bar.set_categories(bar_labels)

ws.add_chart(bar, "H15")
Python

深掘りポイント

棒グラフは「比較」に最適で、どの商品が稼いでいるかが一目で分かります。
経営レポートに必ず入れるべき分析です。


レイアウトを整えて「提出できる経営レポート」に仕上げる

列幅・罫線・フォント調整

ws.column_dimensions["A"].width = 12
ws.column_dimensions["B"].width = 12
ws.column_dimensions["C"].width = 12
ws.column_dimensions["E"].width = 18
ws.column_dimensions["F"].width = 18
Python

罫線を付けると帳票としての完成度が一気に上がります。

from openpyxl.styles import Border, Side

border = Border(
    left=Side(style="thin"),
    right=Side(style="thin"),
    top=Side(style="thin"),
    bottom=Side(style="thin")
)

for row in ws["A3:C" + str(3 + len(summary))]:
    for cell in row:
        cell.border = border
Python

深掘りポイント

経営レポートは「見た目」が非常に重要です。
罫線・列幅・フォントを整えるだけで、提出できる品質になります。


Excel経営レポート自動化の設計ポイント

経営レポートは次の構成にすると最も見やすくなります。

上部:KPI(利益率・成長率・売上合計・利益合計)

経営判断に必要な情報を最初に配置します。

左側:月次売上・利益の表

データの根拠となる部分です。

右側:売上・利益の折れ線グラフ

推移を視覚的に理解できます。

下部:商品別売上の棒グラフ

売上構成の分析に最適です。

タイトルとURLをコピーしました