Power BI中DAX度量值累积计算配置问题求助
解决DAX度量值的累积计算问题
问题原因
SUM() 函数仅支持对数据表中的物理列进行求和,而 UpdateTicket_ 是你定义的DAX度量值(属于计算结果,并非物理列),因此无法直接作为SUM()的参数。
解决方案
你需要通过筛选日期上下文或使用迭代函数的方式,对UpdateTicket_的结果进行累积求和。以下是两种可行的DAX度量值写法:
方法1:使用SUMX迭代日期维度
假设你的日期列是StartTime_DateOnly,创建累积度量值:
UpdateTicket_Cumulatively = VAR CurrentDate = MAX(Logging[StartTime_DateOnly]) RETURN SUMX( FILTER( ALLSELECTED(Logging[StartTime_DateOnly]), Logging[StartTime_DateOnly] <= CurrentDate ), [UpdateTicket_] )
方法2:使用CALCULATE结合筛选上下文
UpdateTicket_Cumulatively = CALCULATE( [UpdateTicket_], FILTER( ALLSELECTED(Logging[StartTime_DateOnly]), Logging[StartTime_DateOnly] <= MAX(Logging[StartTime_DateOnly]) ) )
公式说明
- CurrentDate:获取当前行对应的日期,作为累积计算的截止点。
- ALLSELECTED(Logging[StartTime_DateOnly]):保留当前报表的筛选上下文(如页面级筛选器),同时解除日期列的行级筛选,以便遍历所有小于等于当前日期的日期值。
- SUMX/FILTER组合:迭代每个符合条件的日期,计算对应的
UpdateTicket_值并累加,最终得到累积结果。
验证效果
应用上述度量值后,报表将得到期望的结果:
| StartTime_DateOnly | UpdateTicket_ | UpdateTicket_Cumulatively |
|---|---|---|
| 08.11.2022 | 950 | 950 |
| 09.11.2022 | 1056 | 2006 |
| 10.11.2022 | 1056 | 3062 |
| 11.11.2022 | 1056 | 4118 |
| 12.11.2022 | 1056 | 5174 |
| 13.11.2022 | 1056 | 6230 |
内容的提问来源于stack exchange,提问作者bombom
相关产品推荐
相关产品推荐

