毎月の原価計算、手作業の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転記を自動化する方法」で詳しく解説しています。