用PowerPivot计算销售总额的同比增长率和环比增长率。

要完成这一分析,我们需要4大步骤。

1.导入数据,创建关系

我们需要导入3张数据表,[01-订单明细]、[02-商品价格]、[03-日历表]。其中日历表中的日期列里日期必须是连续的且唯一无重复的,日期范围要大于等于被分析对象的日期范围

我们创建的关系是一对多关系,一端是 [02-商品价格] 表和[03-日历表],因为表格里对应的 [产品编号] 和 [日期] 是唯一值,多端是 [01-订单明细] 表,里面的 [产品ID] 和 [日期] 不是唯一值。实际操作中需注意多对一的方向,尤其是日期表的关系。

表格导入需要创建如下图所示的关系:

promethues promql 环比 power bi环比_数据

  1. 计算[销售总额]
    新建度量值,销售总额=SUM([金额]),记得修改度量值的显示格式哦!
  2. promethues promql 环比 power bi环比_excel_02

promethues promql 环比 power bi环比_数据_03

  1. 计算去年、上季度、上月、上周销售总额
    3.11、标记日期表
    这一步操作是将时间智能功能 (如 TOTALYTD、PREVIOUSMONTH 和 DATESBETWEEN) 所需的元数据设置为正常工作。当使用这些函数之一运行计算时, Power Pivot 的公式引擎知道获取所需日期的位置。
    日历表可以自己用DAX中建日期表常用的函数:CALENDAR,具体语法和用法如下:

如果未设置此属性, 则使用 DAX 时间智能函数的度量值可能不会返回正确的结果。具体步骤参见如下动图演示:

promethues promql 环比 power bi环比_数据_04


3.2计算去年销售总额

去年销售总额的计算需要用到两个新的函数,一个是CALCULATE, 另外一个是DATEADD。

上月销售:
上月 = CALCULATE([销售金额],DATEADD(‘日历’[Date],-1,MONTH))
 上季度销售:
 上季度 = CALCULATE([销售金额],DATEADD(‘日历’[Date],-1,QUARTER))
 上年销售:
 上年 = CALCULATE([销售金额],DATEADD(‘日历’[Date],-1,YEAR))
 这三个度量值有着相同的结构:CALAULATE+DATEADD


DATEADD 函数返回一张表,该表包含由日期构成的一列,这些日期是在时间上从当前上下文中的日期往前或往后推移指定间隔数。

例如:日历表中的日期是从2017/1/1-2019/12/31,使用DATEADD函数往前推一年,得到的日期为2017/1/1-2018/12/31, 往前推一个季度,得到的日期为2017/1/1-2019/9/30。

CALCULATE函数,第一参数是一个表达式,表达式可以理解为一种汇总方式,这里我们放了度量值[销售总额],其实就是[销售额]列求和,第二参数是筛选条件,也就是根据DATEADD函数生成的日期对[销售总额]进行筛选。
3.2计算环比、同比:
月度环比,IF函数与BLANK函数是为了清除没有上月数据的情况,DIVIDE函数就是除法函数:
月环比 = if([上月]=BLANK,BLANK,DIVIDE([销售金额],[上月])-1)

  1. 透视表指标可视化

度量值都创建好了,接着我们创建透视表并用自定义格式显示增长率的变化情况。
注意年/月/日的字段要选择日历表中的相应字段,而不要选择多端表里的时间字段,不然容易算错
2017年之前没有订单明细的数据,所以2017年的同期%没有显示。如果透视表中只放年字段,相当于年环比计算(即2019年和2018年对比,2018年和2017年对比)

季度同比举例:2018年第一季度和2017年第一季度对比,2019年第四季度和2018年第四季度对比

月同比举例:2019年7月和2018年7月对比,2018年6月和2017年6月对比

promethues promql 环比 power bi环比_PowerPivot_05