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

Python Python
スポンサーリンク

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の棒グラフ

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

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