使用Power BI做生产产品的毛利分析,或报价分析
摘要:本文介绍了一种基于历史BOM数据自动计算产品当前成本的方法。通过假设物料消耗量不变,结合最新采购价或供应商报价,利用Power BI工具实现快速成本核算。文章详细演示了BOM数据处理、价格表构建、数据建模和可视化分析的全过程,展示了如何通过不同BOM路径对比成本差异,并为决策提供直观的毛利率分析。该方法可有效解决传统会计核算时效性问题,为产品定价和毛利分析提供实时数据支持。文末提供了完整的游
无论是分析现有产品的毛利情况、还是要按当前的料工费情况为客户报价,我们都需要确切核算产品当前的成本。会计核算计算的一般都是历史成本,而不是这里所说的当前成本。如果要计算这个当前成本需要投入大量的时间成本的话,这个工作可能就不一定值得去做了。那我们有没有办法,根据已经资料实现自动计算呢?当然是可以的。我们可以假定历史成本的BOM(量的消耗)是不变的。价格数据可以取最近一次的入库成本单价或者供应商最新的报价。使用合适的工具就可以自动计算出所有产品的当前成本了。下文将以游戏数据进行演示,结尾可以下载演示文件的附件。
1. BOM的处理
我们有所有产品的直接原材料。
直接原材料还可以再分解为它的材料。
通过PQ处理,我们可以将BOM衍生为各层级原材料组合的所有BOM。如下图:用魔纹布卷直接做,和用魔纹布做成布卷再做产品的2个BOM都有了。在半成品可以直接外购或直接出售的情况下,这种分析会有其意义。
在分析层级较多的情况下,同一个产品衍生出的BOM组合可能比较多。示例文件中可以看到有些复杂的产品可以衍生出几百上千种可能。最后的可视化图表中,我们将对它们进行对比。
比如:这个产品在当前的毛利率是18.48%。
通过钻取到分路径页。
我们可以看到在利用不同的半成品的情况下,其成本的差异:
2. 价格表
价格可以是最近一次的入库成本单价或者供应商最新的报价,大致如下表所示:
这些数据可以入库流水或报价文件夹中提取。
在完成数据导入与关系创建之后,就可以直接使用DAX取到最近时间的价格了。
salePrice = LASTNONBLANKVALUE(PriceData[time],SELECTEDVALUE(PriceData[minBuyout]))
3. 数据建模
3.1. 创建关系
将这些表格导入模型。这里有 Items 表的存在,是因为我的BOM表里都是产品或材料的名称,而在价格表里,只有产品的编号,所以导入了这两个表格进行匹配。这里有 ProductFormula 表的存在,是因为我的BOM表里都是配方名称,而配方名称有时与产品名称并不相同。如果情况合适的话,这两个表都不是必须的。为这些表创建关系如下图:
3.2. 创建度量值进行自动计算。
计算成本的度量值如下:
productCost =
VAR saleprice=[salePriceOfProduct]
RETURN
MINX(
VALUES(BOM[Detail]),
CALCULATE(
SUMX(
CALCULATETABLE('Material',CALCULATETABLE('BOM')),
CALCULATE(LASTNONBLANKVALUE(PriceData[time],SELECTEDVALUE(PriceData[marketValue]))))*CALCULATE(SUM('BOM'[pcsCost])
),
CROSSFILTER('Product'[product],'Items'[itemName],NONE)
)
)
其余度量值参考附件。
可视化效果
选中任何一个分支,就可以看到各种产品当前最新的成本、售价、毛利和毛利率情况。如上文所述,可以钻取到分路径页面查看不同BOM的成本情况。
将鼠标停留在某产品上面。就可以看到该产品的成本明细情况,和该产品的介绍以及图片。
附件下载
链接:WOW_Business_Analysis
提取码: n999
更多推荐



所有评论(0)