Power BI DAX月度累计求和实现问题求助
Power BI月度累计求和DAX修正方案
原度量值返回总计的核心问题:FILTER子句中,两边的'Calendar Table'[Date]均来自ALLSELECTED后的日期表,没有绑定当前视觉对象上下文的月份日期,导致过滤条件等价于保留所有日期,最终计算出全局总计。
修正方案一:基于当前月份上下文的累计
通过变量捕获当前月份的最大日期(即当月最后一天),再筛选所有早于或等于该日期的记录:
RT FAC = VAR CurrentMonthEnd = MAX('Calendar Table'[Date]) RETURN CALCULATE ( SUM('Injuries'[Total]), 'Injuries'[Classification] = "FAC", ALLSELECTED('Calendar Table'), 'Calendar Table'[Date] <= CurrentMonthEnd )
修正方案二:年度内累计(简化写法)
如果仅需要自然年度内的月度累计,可使用TOTALYTD函数直接实现:
RT FAC = TOTALYTD( SUM('Injuries'[Total]), 'Calendar Table'[Date], ALLSELECTED('Calendar Table'), 'Injuries'[Classification] = "FAC" )
修正方案三:跨年度全周期累计
若需要从数据起始日期到当前月份的累计(不受年度限制):
RT FAC = VAR CurrentDate = MAX('Calendar Table'[Date]) VAR StartDate = MINX(ALLSELECTED('Calendar Table'), 'Calendar Table'[Date]) RETURN CALCULATE ( SUM('Injuries'[Total]), 'Injuries'[Classification] = "FAC", 'Calendar Table'[Date] >= StartDate && 'Calendar Table'[Date] <= CurrentDate )
关键注意事项
- 确保视觉对象的轴使用日期表的月份层级(如「年份-月份」组合字段),而非单独的日期列,让Power BI正确识别每个月份的上下文范围。
- 需将
Calendar Table标记为Power BI的日期表(建模选项卡 → 标记为日期表),保障时间智能函数正常运行。
内容的提问来源于stack exchange,提问作者B.Germ
相关产品推荐
相关产品推荐

