PowerBI中基于DATEDIFF的条件聚合度量值计算错误修复咨询
问题原因
合计行不存在单个流程的行上下文,原度量值仅对全局聚合后的AGE值做一次判断,而非逐行校验每个流程的符合情况后汇总,因此合计结果不符合预期。
修正方案
你可以通过SUMX迭代每个独立流程,逐行判断后累加计数,以下提供两种实现方式:
方案1:复用原有AGE度量值(代码更简洁)
NEW = SUMX ( VALUES(Workflow[PROCESS]), -- 迭代所有唯一流程ID IF([AGE] <= 3, 1, 0) -- 逐流程判断后计数 )
OLD = SUMX ( VALUES(Workflow[PROCESS]), IF([AGE] > 3, 1, 0) )
方案2:逻辑内置减少嵌套调用(性能更优)
NEW = VAR SELECTED_DATE = CALCULATE(MAX(DATUM[Date]), ALLSELECTED(DATUM)) RETURN SUMX ( VALUES(Workflow[PROCESS]), VAR CURRENT_START = CALCULATE(MAX(Workflow[MIN_TIMESTAMP]), ALL(DATUM[Date])) VAR CURRENT_AGE = DATEDIFF(CURRENT_START, SELECTED_DATE, DAY) RETURN IF(CURRENT_AGE <=3, 1, 0) )
OLD = VAR SELECTED_DATE = CALCULATE(MAX(DATUM[Date]), ALLSELECTED(DATUM)) RETURN SUMX ( VALUES(Workflow[PROCESS]), VAR CURRENT_START = CALCULATE(MAX(Workflow[MIN_TIMESTAMP]), ALL(DATUM[Date])) VAR CURRENT_AGE = DATEDIFF(CURRENT_START, SELECTED_DATE, DAY) RETURN IF(CURRENT_AGE >3, 1, 0) )
内容的提问来源于stack exchange,提问作者Lulu
相关产品推荐
相关产品推荐

