Power BI中按日期维度表实现成本累计求和的问题
解决DAX累计求和在日期维度表下失效的问题
你的问题出在度量值的筛选逻辑完全绑定了成本表(Cost)的Date字段,当切换到日期维度表的日期字段时,维度表的日期上下文无法传递到Cost表的筛选条件中,导致累计逻辑失效,只能得到单期求和结果。
修正方案1:基于日期维度表实现累计(推荐)
日期维度表是Power BI中做时间分析的标准维度,直接基于它编写累计逻辑更可靠:
Cumulative Total = CALCULATE ( SUM(Cost[Cost]), FILTER ( ALL('Date'[Date]), -- 清除日期维度表的日期筛选 'Date'[Date] <= MAX('Date'[Date]) -- 筛选当前及之前的所有维度表日期 ) )
原理:利用成本表和日期表的DateKey关联,维度表的日期上下文会自动传递到成本表,此时筛选维度表中所有小于等于当前最大日期的记录,就能正确计算累计值。
修正方案2:兼容成本表日期和维度表日期的场景
如果需要同时支持两种日期字段的使用,可以通过判断当前上下文动态切换筛选逻辑:
Cumulative Total = VAR CurrentContextDate = IF( ISINSCOPE(Cost[Date]), MAX(Cost[Date]), MAX('Date'[Date]) ) VAR TargetFilterTable = IF( ISINSCOPE(Cost[Date]), ALL(Cost[Date]), ALL('Date'[Date]) ) RETURN CALCULATE ( SUM(Cost[Cost]), FILTER ( TargetFilterTable, IF( ISINSCOPE(Cost[Date]), Cost[Date] <= CurrentContextDate, 'Date'[Date] <= CurrentContextDate ) ) )
内容的提问来源于stack exchange,提问作者ninelondon
相关产品推荐
相关产品推荐

