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

如何在Power BI中编写DAX度量值计算指定日期区间的YTD平均值?

实现Power BI中年度累计(YTD)平均值的DAX度量值

核心逻辑

要实现每个月份的年度累计平均值,核心是对当前月份及同年度之前所有月份的对应数据计算平均值,同时适配外部设置的日期筛选区间。需借助DAX的时间智能函数界定YTD范围,再结合平均值计算逻辑。

前置要求

确保数据模型满足:

  • 导入的Excel事实表包含需计算的数值列、日期列,以及性别等分组维度列
  • 存在标记为日期表的独立日历表(推荐单独创建,避免直接使用事实表日期列导致的筛选异常)

DAX度量值编写

假设:

  • 事实表名为业务数据表(替换为你的实际表名)
  • 需计算平均值的数值列名为指标值(替换为对应列名)
  • 日历表名为日历表,日期列名为日期

基础实现版本

YTD平均值 = 
VAR 当前年份 = YEAR(MAX('日历表'[日期]))
VAR 当前月份 = MONTH(MAX('日历表'[日期]))
VAR YTD时间范围 = 
    FILTER(
        ALL('日历表'),
        YEAR('日历表'[日期]) = 当前年份 && MONTH('日历表'[日期]) <= 当前月份
    )
RETURN
    CALCULATE(
        AVERAGE('业务数据表'[指标值]),
        YTD时间范围,
        ALLSELECTED('日历表') // 保留外部设置的日期筛选区间
    )

简化版本(依赖标记好的日历表)

若已将日历表正确标记为日期表,可直接用内置时间智能函数简化:

YTD平均值 = 
CALCULATE(
    AVERAGE('业务数据表'[指标值]),
    DATESYTD('日历表'[日期]),
    ALLSELECTED('日历表')
)

使用验证步骤

  1. 将日历表的「月份」字段(或日期字段按月份分组)拖入表格视觉对象
  2. 添加性别等分组维度字段(如需要按维度拆分计算)
  3. 拖入上述YTD平均值度量值
  4. 设置日期筛选器为目标区间(如2023年1月1日至2023年3月1日),即可得到:
    • 1月:仅1月数据的平均值
    • 2月:1-2月数据的平均值
    • 3月:1-3月数据的平均值

注意事项

  • 若无独立日历表,可通过建模选项卡的「新建表」,用CALENDAR(起始日期, 结束日期)生成,再标记为日期表
  • 确保事实表的日期列与日历表的日期列建立「多对一」关系
  • 维度分组(如性别)会自动被度量值识别,无需额外修改公式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:05:56