Power BI按月份行展示近3/6个月销售额平均值的方法
Power BI 实现月度销售额与近N个月平均值的明细行展示
问题核心是默认的平均值计算会被行上下文(单月份筛选)限制,只能计算当前月的平均值(实际就是当月销售额),要让每个月度行都能计算近3/6个月的整体平均,需要用DAX修改筛选上下文,具体实现如下:
1. 准备基础度量值(月度销售额)
先创建基础的销售额求和度量值,用于对比:
月度销售额 = SUM('销售表'[销售额])
2. 近3个月平均销售额度量值
使用CALCULATE、AVERAGE和DATESINPERIOD函数,强制计算当前月份往前推3个月的平均销售额:
近3个月平均销售额 = CALCULATE( AVERAGE('销售表'[销售额]), DATESINPERIOD( '日期表'[日期], LASTDATE('日期表'[日期]), -3, MONTH ) )
3. 近6个月平均销售额度量值
同理,修改月份参数即可:
近6个月平均销售额 = CALCULATE( AVERAGE('销售表'[销售额]), DATESINPERIOD( '日期表'[日期], LASTDATE('日期表'[日期]), -6, MONTH ) )
关键逻辑说明
DATESINPERIOD:以当前行的最后一天为基准,往前取指定月数的连续日期范围,这里的'日期表'[日期]必须是连续且无缺失的日期表字段,且已和销售表建立关联。CALCULATE:打破当前行的单月份筛选上下文,强制在DATESINPERIOD返回的日期范围内计算平均值,这样每个月度行都会显示对应时间段的整体平均,而非当月值。
使用方法
- 将日期表中的
月份字段拖入行字段区域; - 将
月度销售额、近3个月平均销售额、近6个月平均销售额拖入值字段区域; - 此时每个月度行都会同时显示当月销售额,以及往前推3/6个月的平均销售额,总计行也会正确计算对应范围的平均值。
内容的提问来源于stack exchange,提问作者Alexandre Rosa
相关产品推荐
相关产品推荐

