学习POWER BI有一段时间了,第一次发一点实操,分享给大家。
先上建模关系:
以下是工厂分步成本核算相关业务报表建模关系图,通过款号将期初成本、本期投入成本、本期数量收发存及历史累计数据进行关联。
废话不多说,上代码:
Version:0.9StartHTML:00000097EndHTML:00013811StartFragment:00000199EndFragment:00013773evaluate
//获取款号/获取期初成本
ADDCOLUMNS(ADDCOLUMNS(ADDCOLUMNS(ADDCOLUMNS(ADDCOLUMNS(
//取各阶段涉及材料的款号(投料款号+期初款号+裁剪收发存款号)
summarize(
union(
VALUES('投料透视'[款号]),VALUES('1 1WIP-Material'[Style]),VALUES('2_1 DL OH for cutting'[Style])
)
,[款号]),
//取各阶段期初数量/LOOKUPVALUE查找函数
"裁片期初",LOOKUPVALUE('裁片'[期初结存],'裁片'[款号],[款号]),
"缝制期初",LOOKUPVALUE('缝制'[期初结存数量],'缝制'[款号],[款号]),
"后道期初",LOOKUPVALUE('后道'[期初结存],'后道'[款号],[款号]),
"本期实裁数",LOOKUPVALUE('裁片'[本月实裁数],'裁片'[款号],[款号]),
//取期初成本/SUMX/FILTER筛选上下文求和
"期初面料",SUMX(FILTER('1 1WIP-Material','1 1WIP-Material'[Style]=[款号]),'1 1WIP-Material'[Fabric]),
"期初辅料",SUMX(FILTER('1 1WIP-Material','1 1WIP-Material'[Style]=[款号]),'1 1WIP-Material'[Accessories]),
"期初加工费",SUMX(FILTER('1 1WIP-Material','1 1WIP-Material'[Style]=[款号]),'1 1WIP-Material'[Subcontract]),
"期初外购",SUMX(FILTER('1 1WIP-Material','1 1WIP-Material'[Style]=[款号]),'1 1WIP-Material'[Outsourcing]),
//取本期投料成本/LOOKUPVALUE查找函数
"本期面料投入",LOOKUPVALUE('投料透视'[Fabric],'投料透视'[款号],[款号]),
"本期辅料投入",LOOKUPVALUE('投料透视'[Accessories],'投料透视'[款号],[款号]),
"本期外购投入",LOOKUPVALUE('投料透视'[Outsourcing],'投料透视'[款号],[款号])),
//计算加权平均单价/DIVIDE安全计算单价
"面料单价",DIVIDE([期初面料]+[本期面料投入],[裁片期初]+[缝制期初]+[后道期初]+[本期实裁数]),
"辅料单价",DIVIDE([期初辅料]+[本期辅料投入],[裁片期初]+[缝制期初]+[后道期初]+[本期实裁数]),
"外购单价",DIVIDE([期初外购]+[本期外购投入],[裁片期初]+[缝制期初]+[后道期初]+[本期实裁数]),
"加工费单价",DIVIDE([期初加工费],[裁片期初]+[缝制期初]+[后道期初]+[本期实裁数]),
//取成品入库数量及核算完工成品成本
"成品入库数量",LOOKUPVALUE('成品'[Finished QTY],'成品'[款号],[款号])),
"完工面料成本",[面料单价]*[成品入库数量],
"完工辅料成本",[辅料单价]*[成品入库数量],
"完工外购成本",[外购单价]*[成品入库数量],
"完工加工费成本",[加工费单价]*[成品入库数量],
//取报废及其他数量并核算相应成本/LOOKUPVALUE查找函数
"报废及其他数量",LOOKUPVALUE('裁片'[疵片数量],'裁片'[款号],[款号])+LOOKUPVALUE('裁片'[调整数量],'裁片'[款号],[款号])
+LOOKUPVALUE('缝制'[船样],'缝制'[款号],[款号])+LOOKUPVALUE('缝制'[遗失等],'缝制'[款号],[款号])
+LOOKUPVALUE('后道'[次品数量],'后道'[款号],[款号])+LOOKUPVALUE('后道'[遗失等],'后道'[款号],[款号])),
"报废及其他面料成本",[面料单价]*[报废及其他数量],
"报废及其他辅料成本",[辅料单价]*[报废及其他数量],
"报废及其他外购成本",[外购单价]*[报废及其他数量],
"报废及其他加工费成本",[加工费单价]*[报废及其他数量]),
//取期末结存数量并核算结存成本
"期末裁床数量",LOOKUPVALUE('裁片'[期末结存],'裁片'[款号],[款号]),
"本期缝制数量",LOOKUPVALUE('缝制'[期末结存数量],'缝制'[款号],[款号]),
"本期后道数量",LOOKUPVALUE('后道'[期末结存数量],'后道'[款号],[款号]),
"期末面料成本",[期初面料]+[本期面料投入]-[完工面料成本]-[报废及其他面料成本],
"期末辅料成本",[期初辅料]+[本期辅料投入]-[完工辅料成本]-[报废及其他辅料成本],
"期末外购成本",[期初外购]+[本期外购投入]-[完工外购成本]-[报废及其他外购成本],
"期末加工费成本",[期初加工费]-[完工加工费成本]-[报废及其他加工费成本]
)
此代码最终生成的报表如下 图:
由于涉及到公司内部数据,只截了其中一部分数据,请大家参考。