You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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返回的日期范围内计算平均值,这样每个月度行都会显示对应时间段的整体平均,而非当月值。

使用方法

  1. 将日期表中的月份字段拖入行字段区域;
  2. 将月度销售额、近3个月平均销售额、近6个月平均销售额拖入值字段区域;
  3. 此时每个月度行都会同时显示当月销售额,以及往前推3/6个月的平均销售额,总计行也会正确计算对应范围的平均值。

内容的提问来源于stack exchange,提问作者Alexandre Rosa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:32:00