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

PowerBI & DAX:如何让度量值按近12个月规则在图表中展示

实现过去12个月滚动计算的DAX度量修改方案

首先给Event表添加一个日期计算列,把分散的年月转换成统一的日期值,方便后续时间范围计算:

Event Date = DATE(Event[Event Year], Event[Event Month], 1)

接下来修改度量值,通过时间智能函数定义过去12个月的滚动范围,替换原有的当月上下文:

Frequency Rate (Rolling 12 Months) = 
VAR CurrentEndDate = EOMONTH(MAX(Event[Event Date]), 0)
VAR Rolling12Months = DATESINPERIOD(Event[Event Date], CurrentEndDate, -12, MONTH)
VAR AvgTotalHours = CALCULATE(AVERAGE(Event[Event Total Hours]), Rolling12Months)
VAR TypeACount = CALCULATE(COUNT(Event[Event ID]), Rolling12Months, Event[Event Type] = "Type A")
RETURN
IF(AvgTotalHours <> BLANK(),
    10^6 * (TypeACount / AvgTotalHours),
    BLANK()
)

关键逻辑说明:

  • CurrentEndDate:获取当前图表节点对应年月的最后一天,作为滚动周期的结束时间点
  • Rolling12Months:用DATESINPERIOD生成从结束点往前推12个月的完整日期范围(包含当前年月)
  • 后续的AvgTotalHours和TypeACount都基于这个滚动范围计算,替代了原度量仅统计当月的逻辑

优化建议:

如果数据量较大,建议创建独立的日期表并与Event表关联,时间智能函数的计算效率和准确性会更高:

Date Table = 
ADDCOLUMNS(
    CALENDAR(DATE(2020,1,1), DATE(2030,12,31)), -- 按需调整日期范围
    "Year", YEAR([Date]),
    "Month", MONTH([Date]),
    "Year-Month", FORMAT([Date], "YYYY-MM")
)

关联后,图表的X轴改用日期表的Year和Month字段即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 15:38:11