原価計算をPythonで自動化する方法【製造業向け・非エンジニア実践手順】

毎月の原価計算、手作業のExcel集計に何時間かかっていますか。

材料費・加工費・製品別の原価を複数シートからVLOOKUPで引っ張り、合計して……という作業を月次でやっている方は多いと思います。私も生産管理7年の中で、この作業に毎月3〜4時間かけていた時期がありました。

Pythonを使うと、この集計処理を数分に短縮できます。この記事では、製造業の原価計算集計をPythonで自動化する実践手順を、非エンジニア向けに解説します。

自動化の対象:原価計算の何をPythonで処理するか

「原価計算の自動化」といっても範囲は広いです。まず、Pythonで現実的に自動化できる範囲を整理します。

  • できること: 複数Excelからデータを読み込んで集計・計算・出力する処理
  • 難しいこと: 会計システムとのリアルタイム連携・複雑な原価配賦ロジック

今回は「複数Excelに記録された材料費・加工費を読み込んで製品別原価を自動集計する」というユースケースで解説します。

実装手順

STEP1. データの前準備

以下のような形式でExcelデータが整っていることを前提とします。

  • 材料費ファイル: 製品コード・材料名・使用量・単価
  • 加工費ファイル: 製品コード・工程名・工数・時間単価

STEP2. Pythonで読み込んで集計する

import pandas as pd

# 材料費データ読み込み
zairyo = pd.read_excel("材料費.xlsx")
zairyo["材料費合計"] = zairyo["使用量"] * zairyo["単価"]

# 加工費データ読み込み
kako = pd.read_excel("加工費.xlsx")
kako["加工費合計"] = kako["工数"] * kako["時間単価"]

# 製品別に集計
genka = pd.concat([
    zairyo.groupby("製品コード")["材料費合計"].sum(),
    kako.groupby("製品コード")["加工費合計"].sum()
], axis=1).fillna(0)

genka["総原価"] = genka["材料費合計"] + genka["加工費合計"]

# 結果を出力
genka.to_excel("製品別原価.xlsx")

このコードは「製品コードをキーに材料費と加工費を集計して、製品別原価Excelを出力する」という処理です。既存のExcelファイル名と列名を合わせれば、そのまま動きます。

STEP3. 月次で実行できるようにする

毎月同じフォルダに材料費・加工費Excelが保存される運用なら、ファイルパスを変数にしておくと月次処理が1クリックになります。Windowsのタスクスケジューラで自動実行も可能です。

よくある失敗と対処

  • 列名が月によって変わる: 読み込み時に列名を固定してリネーム処理を追加する
  • 製品コードの表記揺れ: 前処理でstrip()・upper()で統一する
  • 合計が合わない: groupby後にfillna(0)を忘れると欠損が出る

まとめ

製造業の原価計算集計は、Pythonのpandasを使えば非エンジニアでも自動化できます。データの形式が整っていれば、基本的な集計処理は20〜30行のコードで実現できます。

Excel転記の基礎は「PythonでExcel転記を自動化する方法」で詳しく解説しています。