powerbi计算毛利率(BI计算折扣相关的问题)
本文介绍一个经常会遇到的折扣计算问题,我曾被很多人问过类似的计算,这里我通过一个简化的数据,介绍在PowerBI中实现折扣计算的思路。
假设订单表结构如下:
记录有每个产品在各个平台上的原价和每日销售数量。
另外还有一个折扣表,记录了促销期间每种产品在各个平台的折扣率:
每个平台上的折扣不同,并且促销起止日期也有差异,如何通过以上两个表快速计算各种维度下扣除折扣后的净销售额呢?
下面是实现步骤。
1. 构造模型
构造模型是PowerBI数据分析的基础,先梳理需要分析的维度,建立合适的模型,而不建议拿到数据,直接就利用这些表开始写度量值计算。
就以上的分析需求来说,分析维度是三个:日期、平台和产品,所以先做三个维度表,都可以利用DAX来生成。
日期表制作很简单,以前专门介绍过:玩PowerBI必备的日期表制作方式汇总
平台表和产品表都可以从订单表中抽取不重复的数据作为维度表,比如产品表直接这样写就可以了:
维度表做好以后,可以这样来建立模型:
其中日期表与折扣表并不存在直接的对应关系,就不用建立关系了,利用DAX来实现日期的查找,下面会看到。
2、建立度量值
首先写一个基础度量值来计算折扣前的原始销售额:
毛销售额 =
SUMX('订单表','订单表'[单价]*'订单表'[销售数量])
然后是折扣率的计算,如何计算出每个订单所对应的折扣率是重点,度量值可以这样写:
核心逻辑是通过上下文的信息去筛选折扣表,找出筛选后的折扣表所对应的折扣率。
有了这个折扣率,就可以计算净销售额了:
这里并不能简单的用毛销售额乘以折扣率来计算,因为如果没有明细的上下文,是无法准确的计算折扣率的。这个度量值中SUMMARIZE返回的表,是构造折扣率计算所需要的内部行上下文,无论外部筛选上下文是什么,在这个度量值内部,总能提供包含日期、平台、产品维度的上下文。
并且这样的写法也能确保总计等于明细行之和。
3、展示计算结果
完成了上面的步骤,最后这一步就非常简单了,选择合适的可视化类型展现就可以了。
这里用矩阵来展示结果,将维度表中的字段放到矩阵的行中,毛销售额和净销售额度量值放到值中,就可以利用上下钻取来查看每一个维度折扣前后的销售额。
以上就是PowerBI折扣计算的实现思路,其实各种业务分析,抛开细节的业务逻辑,主要的步骤均是如此,关键是要多思考多练习,做到举一反三。
更多推荐Power BI分析应用:盈亏平衡分析
Power BI数据分析:任意时间段对比分析
分析报告还不会用动态分析?利用Power BI参数轻松实现
采悟 | PowerBI星球
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com