PowerBI中基于最大日期的度量值总计显示异常问题排查
解决PowerBI中客户最新交易总金额的总计错误问题
你当前的需求是计算每个客户各自最新交易的金额总和,但现有度量值导致总计行仅显示全局最新日期的交易金额(75),而非所有客户最新交易的累计总额(235)。
问题根源
你的原度量值:
_Latest amount = VAR _maxd = maxx(Sheet1, Sheet1[Date].[Date]) RETURN CALCULATE (SUMX(Sheet1, Sheet1[Amount]), Sheet1[Date] = _maxd)
问题出在_maxd = maxx(Sheet1, Sheet1[Date].[Date])——这个变量取的是整个数据表的全局最大日期,而非每个客户单独的最新交易日期。在表格按客户分组时,每行的上下文会筛选单个客户,临时让_maxd变成该客户的最大日期;但总计行的上下文是整个表,所以只会计算全局最新日期的交易金额,而非所有客户各自最新交易的总和。
解决方案:按客户单独计算最新交易金额
修改度量值,让逻辑变为遍历每个客户,计算该客户的最新交易日期对应的金额,最后累加所有客户的结果:
方法1(推荐)
_Latest amount = SUMX ( VALUES ( Sheet1[Customer ID] ), -- 遍历每个唯一客户 VAR _CustomerLatestDate = CALCULATE ( MAX ( Sheet1[Date].[Date] ) ) -- 获取当前客户的最新交易日期 RETURN CALCULATE ( SUM ( Sheet1[Amount] ), Sheet1[Date].[Date] = _CustomerLatestDate ) -- 计算该客户最新日期的交易金额 )
方法2(用EARLIER筛选客户)
_Latest amount = SUMX ( VALUES ( Sheet1[Customer ID] ), VAR _CustomerLatestDate = MAXX ( FILTER ( Sheet1, Sheet1[Customer ID] = EARLIER(Sheet1[Customer ID]) ), Sheet1[Date].[Date] ) RETURN CALCULATE ( SUM ( Sheet1[Amount] ), Sheet1[Date].[Date] = _CustomerLatestDate ) )
修改后,表格的总计行就会正确显示所有客户最新交易的金额总和(235),同时每个客户行也会显示自己最新交易的金额。
内容的提问来源于stack exchange,提问作者Lexi E.
相关产品推荐
相关产品推荐

