PowerBI如何基于最新日期获取度量值ConversionRate的最新非空值
DAX 最新非空转化率度量值修复方案
错误原因
原有写法的核心问题是没有清除行上下文限制:
FILTER 执行时会继承当前行的筛选条件,其中的MAX( Table[FullDate] )实际取的是当前行的日期,最终计算结果自然和当前行的ConversionRate完全一致,无法获取全局的最新有效数值。
正确度量值写法
以下写法同时适配表格展示和卡片视觉对象使用:
LastValue = // 获取全局范围内Visits不为0的最晚日期 VAR LatestValidDate = CALCULATE( MAX('Table'[FullDate]), REMOVEFILTERS('Table'), 'Table'[Visits] <> 0 ) // 计算该最晚日期对应的转化率 VAR LatestRate = CALCULATE( [ConversionRate], REMOVEFILTERS('Table'), 'Table'[FullDate] = LatestValidDate ) // 匹配期望的表格展示逻辑:当前行Visits为0时返回0,否则返回最新转化率 RETURN IF(MAX('Table'[Visits]) = 0, 0, LatestRate)
如果仅在卡片视觉对象中使用,不需要适配表格行展示,可以用简化版本:
LastValue_Card = CALCULATE( [ConversionRate], TOPN(1, FILTER(ALL('Table'), 'Table'[Visits]<>0), [FullDate], DESC) )
效果验证
使用上述度量值后,表格输出会完全匹配你给出的期望结果,放在卡片中也会直接返回最新的非空转化率0.09。
内容的提问来源于stack exchange,提问作者HelpASisterOut
相关产品推荐
相关产品推荐

