Power BI中DAX公式计算按日期累计值结果异常问题
Power BI 累计求和返回全量总和问题修复
原公式返回全量总和的问题出在ALL('test')的用法错误:该函数会清除test表所有现有筛选上下文,包括可视化表格按行生成的日期维度筛选,此时公式中MAX(test[Date])取到的永远是全表最大日期,每一行的计算范围都是全量数据,无法实现逐期累计。
可直接使用以下两种经过验证的正确写法:
- 单表无独立日期维度表场景:用
ALLSELECTED限定日期筛选范围,保留其他外部筛选器的作用
cumulative = CALCULATE( SUM(test[Number]), FILTER( ALLSELECTED(test[Date]), test[Date] <= MAX(test[Date]) ) )
- 已搭建独立日期维度表场景(建模规范推荐方案):直接对日期表做范围筛选,计算性能更稳定
cumulative = CALCULATE( SUM(test[Number]), FILTER( ALL('日期表'[Date]), '日期表'[Date] <= MAX('日期表'[Date]) ) )
注意:累计计算不要直接对整张事实表使用
ALL(),一方面会丢失筛选上下文导致计算结果错误,另一方面数据量较大时会明显降低报表渲染速度,优先针对日期列设置筛选范围。
原问题运行效果参考:
内容的提问来源于stack exchange,提问作者Taisa
相关产品推荐
相关产品推荐

