Power BI中如何为计算度量值计算滚动总计?求正确DAX公式
计算度量值的滚动总计DAX方案
核心结论
完全可以基于计算度量值实现滚动总计,问题通常出在时间上下文的筛选逻辑上,以下是正确的DAX公式及说明:
步骤1:确认基础度量值
假设你已创建的基础比率度量值为:
工时_数量比率 = DIVIDE([Total Hrs], [Quantity], BLANK())
步骤2:日期维度的滚动总计公式
如果你的模型中有标准日期表(命名为Date,包含Date列),滚动总计度量值可按以下方式编写:
工时_数量比率_滚动总计 = VAR 当前日期 = MAX('Date'[Date]) RETURN CALCULATE( [工时_数量比率], FILTER( ALL('Date'), 'Date'[Date] <= 当前日期 ) )
步骤3:适配不同时间粒度(如月度)
如果需要按月度计算滚动总计,可调整为:
工时_数量比率_月度滚动总计 = VAR 当前月末 = EOMONTH(MAX('Date'[Date]), 0) RETURN CALCULATE( [工时_数量比率], FILTER( ALL('Date'), EOMONTH('Date'[Date], 0) <= 当前月末 ) )
关键注意事项
- 若需保留其他维度(如产品、部门)的筛选,不要用
ALL('Date'),改用ALLEXCEPT保留指定维度的筛选上下文:工时_数量比率_滚动总计(保留产品筛选) = VAR 当前日期 = MAX('Date'[Date]) RETURN CALCULATE( [工时_数量比率], FILTER( ALLEXCEPT('Date', '产品表'[产品ID]), 'Date'[Date] <= 当前日期 ) ) - 确保日期表已正确标记为模型的日期表,否则时间筛选可能出现异常。
内容的提问来源于stack exchange,提问作者Sangari Parameswaran
相关产品推荐
相关产品推荐

