DAX如何获取最新日期对应的非空值 现有公式返回空值如何修正
错误原因
你两次写法的核心问题都是日期最大值的计算逻辑顺序错了:
MAX('Table1'[Date])默认是在当前原始上下文(未做额外筛选的表范围)里计算全局最大日期,也就是你数据里的19/12/2021- 你后续加的
Value <> BLANK()筛选和最大日期匹配是同时生效的,不存在同时满足「日期是19/12/2021」且「Value非空」的行,所以最终返回空值,并不会先过滤非空值再动态调整最大日期。
正确实现方式
你可以先用变量先计算所有非空值对应的最大日期,再用这个日期匹配取值,写法如下:
Latest Value = -- 先计算Value非空的行里的最大日期 VAR MaxDateWithValue = CALCULATE( MAX('Table1'[Date]), 'Table1'[Value] <> BLANK() ) RETURN -- 用上面拿到的最大日期取对应值 CALCULATE( SUM('Table1'[Value]), 'Table1'[Date] = MaxDateWithValue )
如果你的需求需要忽略当前报表的切片器、行标签等外部筛选全局计算,就在上面两个CALCULATE的筛选参数里加上ALL('Table1')即可。
内容的提问来源于stack exchange,提问作者SCool
相关产品推荐
相关产品推荐

