多品种成本差异:用 Python 一次算清所有材料的量差和价差

举报
yd_281775175 发表于 2026/10/30 10:59:45 2026/10/30
【摘要】 上一篇把一种材料的成本差异拆成了量差和价差。实际工作中很少只有一种材料,十几种材料混在一起时,逐个手算既慢又容易漏。这篇把方法扩展到多品种:每个品种单独算,金额差异再汇总。先定一条规矩:不同材料不能加数量,只能加金额。钢材 520 公斤和铜材 190 公斤加起来没有意义,但它们的量差、价差都是钱,可以汇总。汇总时还要注意一个陷阱:净额会掩盖问题。下面这组数就是例子。三种材料的标准与实际如下:...

上一篇把一种材料的成本差异拆成了量差和价差。实际工作中很少只有一种材料,十几种材料混在一起时,逐个手算既慢又容易漏。这篇把方法扩展到多品种:每个品种单独算,金额差异再汇总。

先定一条规矩:不同材料不能加数量,只能加金额。钢材 520 公斤和铜材 190 公斤加起来没有意义,但它们的量差、价差都是钱,可以汇总。汇总时还要注意一个陷阱:净额会掩盖问题。下面这组数就是例子。

三种材料的标准与实际如下:钢材标准 500 公斤、每公斤 20 元,实际 520 公斤、每公斤 21 元;铜材标准 200 公斤、每公斤 50 元,实际 190 公斤、每公斤 52 元;塑料标准 1000 公斤、每公斤 5 元,实际 1050 公斤、每公斤 5 元。

逐个算,公式和上一篇一样,量差 =(实际用量 − 标准用量)× 标准单价,价差 =(实际单价 − 标准单价)× 实际用量:钢材量差 +400 元、价差 +520 元,合计 +920 元;铜材量差 −500 元、价差 +380 元,合计 −120 元;塑料量差 +250 元、价差 0 元,合计 +250 元。汇总:标准成本 25000 元,实际成本 26050 元,总差异 +1050 元;量差合计 +150 元,价差合计 +900 元,150 + 900 = 1050,对得上。

只看汇总会误事:量差净额只有 +150 元,看起来没什么问题,但里面其实是钢材 +400、塑料 +250 和铜材 −500 互相抵消的结果。铜材用量省了 500 元值得肯定,钢材和塑料多用的 650 元同样要查,净额一句话就把两边都藏起来了。所以多品种分析一定要先看分品种明细,再看汇总,排查按差异绝对值从大到小排,价差合计 +900 元是本月的主要矛盾,先找采购和市场。

写成 Python 就是一个循环,不用为每个品种重复写公式:

items = [
    # (名称, 标准用量, 标准单价, 实际用量, 实际单价)
    ("钢材", 500, 20, 520, 21),
    ("铜材", 200, 50, 190, 52),
    ("塑料", 1000, 5, 1050, 5),
]
qty_total = price_total = 0
for name, qs, ps, qa, pa in items:
    qty_var = (qa - qs) * ps
    price_var = (pa - ps) * qa
    qty_total += qty_var
    price_total += price_var
    print(name, qty_var, price_var, qty_var + price_var)
print("汇总", qty_total, price_total, qty_total + price_total)  # 150 900 1050

最后留一个自检习惯:每次算完都核对“量差合计 + 价差合计 = 实际总成本 − 标准总成本”,对不上就是公式或数据抄错了,先别往下分析。多品种时方法不变,只是把单品种的公式放进循环,明细不丢、汇总可信,成本超支的责任才分得清。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。