毎月同じKPIをExcelで手作業集計していませんか。
生産量・不良率・稼働率・工数……これらを複数のシートから手でコピー&貼り付けして、グラフを更新して、という月次作業を何年も繰り返している製造業の担当者は多いと思います。
Pythonを使うと、「データを読み込んでKPIを計算し、グラフ付きレポートを出力する」という一連の処理を自動化できます。私は生産管理7年で実際にこの仕組みを構築し、毎月4時間かかっていた集計作業を30分以下にしました。
自動化できるKPIの種類
製造業で代表的なKPIとPythonでの自動化可否を整理します。
| KPI | 自動化の難易度 | 備考 |
|---|---|---|
| 生産量・実績集計 | 低 | 日報ExcelをGroupbyで集計 |
| 不良率・不良件数 | 低 | 検査記録から計算 |
| 稼働率 | 中 | 計画時間と実績時間が必要 |
| 工数・人時集計 | 低 | 工数表から集計 |
| 原価・コスト差異 | 中 | 複数ファイルの結合が必要 |
実装例:月次KPIレポートの自動生成
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'MS Gothic'
# 実績データ読み込み
df = pd.read_excel("月次実績.xlsx")
# KPI計算
df["不良率"] = df["不良数"] / df["生産数"] * 100
monthly = df.groupby("月").agg(
生産数=("生産数", "sum"),
不良数=("不良数", "sum"),
工数=("工数", "sum")
).reset_index()
monthly["不良率"] = monthly["不良数"] / monthly["生産数"] * 100
# グラフ出力
fig, axes = plt.subplots(1, 2, figsize=(12, 4))
axes[0].bar(monthly["月"], monthly["生産数"])
axes[0].set_title("月次生産量")
axes[1].plot(monthly["月"], monthly["不良率"], marker="o", color="red")
axes[1].set_title("月次不良率(%)")
plt.tight_layout()
plt.savefig("KPIレポート.png", dpi=150)
print("KPIレポートを出力しました")
このコードは月次実績ExcelからKPIを計算し、グラフ画像を出力します。実際のExcelの列名に合わせて変数を変えれば動きます。
グラフをExcelレポートに埋め込む
openpyxlを使うと、生成したグラフをExcelファイルに自動で貼り付けることができます。これで「グラフ付きExcelレポートの自動生成」が完成します。
まとめ
製造業のKPI集計は、Pythonのpandasとmatplotlibを組み合わせることで、読み込み→集計→グラフ化→出力まで自動化できます。月次業務の繰り返し作業に特に効果的です。
工数集計の具体的な実装は「工数集計をPythonで自動化する方法」で詳しく解説しています。