Excel KPIレポートは「経営判断に必要な指標を自動生成し、意思決定を高速化する」ための最強スキル
KPIレポートの自動化は“最も価値の高いExcel業務自動化” です。
KPIレポートは、単なる集計ではなく
売上・利益・成長率・粗利率・達成率など
“経営判断に必要な数字だけを抽出してまとめた資料” です。
Pythonを使えば、
集計 → KPI算出 → グラフ生成 → レイアウト → 保存
まで完全自動化できます。
初心者でも理解できるように、
実務でそのまま使えるテンプレート形式で丁寧に解説します。
KPIレポート自動化の全体像(最重要ポイント)
KPIレポートは次の4つの要素で構成される
集計(pandas)でデータをまとめ、
KPI(重要指標)を算出し、
グラフ(openpyxl.chart)で可視化し、
レイアウト(openpyxl)で提出できる形に整えます。
この4つを組み合わせることで、KPIレポートが完全自動化されます。
KPIレポートの基本テンプレート(最小構成)
売上・利益・粗利率を集計してレポート化する例
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()
summary["粗利率"] = summary["利益"] / summary["売上"]
wb = Workbook()
ws = wb.active
ws.title = "KPIレポート"
ws["A1"].value = "月次KPIレポート"
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 = "利益"
ws["D3"].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.cell(row=i, column=4, value=round(row["粗利率"] * 100, 2))
ws["F3"].value = "売上合計"
ws["G3"].value = summary["売上"].sum()
ws["F3"].font = Font(bold=True)
ws["F4"].value = "利益合計"
ws["G4"].value = summary["利益"].sum()
ws["F4"].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, "I3")
wb.save("kpi_report.xlsx")
Python深掘りポイント
折れ線グラフは「推移」を見せるのに最適で、KPIレポートでは必須です。
売上と利益を同じグラフに載せることで、経営状況を一目で把握できます。
粗利率を追加することで、売上だけでは見えない“質”の変化が分かります。
KPI(経営指標)を追加してレポートの質を劇的に上げる
売上総利益率・利益率・成長率・達成率を自動計算
gross_margin = summary["利益"].sum() / summary["売上"].sum()
growth_rate = (summary["売上"].iloc[-1] - summary["売上"].iloc[0]) / summary["売上"].iloc[0]
target = 1000000
achievement = summary["売上"].sum() / target
ws["F5"].value = "売上総利益率"
ws["G5"].value = round(gross_margin * 100, 2)
ws["F6"].value = "売上成長率"
ws["G6"].value = round(growth_rate * 100, 2)
ws["F7"].value = "売上達成率"
ws["G7"].value = round(achievement * 100, 2)
ws["F5"].font = Font(bold=True)
ws["F6"].font = Font(bold=True)
ws["F7"].font = Font(bold=True)
Python深掘りポイント
KPIレポートは「数字の意味」が重要です。
利益率や成長率を入れることで、経営状況の良し悪しが一瞬で分かります。
達成率を入れると、目標に対する進捗が明確になります。
商品別KPIの棒グラフを追加して分析を強化する
商品別売上・利益を集計して棒グラフ化
product_summary = df.groupby("商品")[["売上", "利益"]].sum()
ws["A15"].value = "商品"
ws["B15"].value = "売上"
ws["C15"].value = "利益"
for i, (product, row) in enumerate(product_summary.iterrows(), start=16):
ws.cell(row=i, column=1, value=product)
ws.cell(row=i, column=2, value=row["売上"])
ws.cell(row=i, column=3, value=row["利益"])
from openpyxl.chart import BarChart
bar = BarChart()
bar.title = "商品別KPI"
bar_values = Reference(ws, min_col=2, min_row=15, max_col=3, 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=True)
bar.set_categories(bar_labels)
ws.add_chart(bar, "I15")
Python深掘りポイント
棒グラフは「比較」に最適で、どの商品が稼いでいるかが一目で分かります。
利益と売上を並べることで、売上が高くても利益が低い商品が見つかります。
レイアウトを整えて「提出できるKPIレポート」に仕上げる
列幅・罫線・フォント調整
ws.column_dimensions["A"].width = 12
ws.column_dimensions["B"].width = 12
ws.column_dimensions["C"].width = 12
ws.column_dimensions["F"].width = 18
ws.column_dimensions["G"].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:D" + str(3 + len(summary))]:
for cell in row:
cell.border = border
Python深掘りポイント
KPIレポートは「見た目」が非常に重要です。
罫線・列幅・フォントを整えるだけで、提出できる品質になります。
Excel KPIレポート自動化の設計ポイント
上部:KPI(利益率・成長率・達成率・売上合計・利益合計)
経営判断に必要な情報を最初に配置します。
左側:月次売上・利益の表
データの根拠となる部分です。
右側:売上・利益の折れ線グラフ
推移を視覚的に理解できます。
下部:商品別KPIの棒グラフ
売上構成の分析に最適です。
