DAX实现截至当前月份累计计数,总计行异常问题求助
解决DAX月度累计总计行仅统计到当前月份的问题
原度量值在月度明细行的累计逻辑正常,但总计行仍会计算全年累计,原因是总计行上下文没有单个选中的月份,SELECTEDVALUE(dCalendario[Mês])返回空值,导致IF条件判断失效,最终执行了全年的累计计算。
修改后的DAX度量值
Previsto_Acumulado = VAR CurrentMonth = MONTH(TODAY()) VAR CurrentYear = YEAR(TODAY()) RETURN IF( // 判断当前上下文是否为单个月份的明细行 ISINSCOPE(dCalendario[Nome do Mês]), // 明细行逻辑:仅当月度<=当前月份时计算累计 IF( SELECTEDVALUE(dCalendario[Mês]) <= CurrentMonth, CALCULATE( [Previsto], FILTER( ALL('dCalendario'), 'dCalendario'[Ano] = CurrentYear && 'dCalendario'[Mês] <= MAX('dCalendario'[Mês]) ) ), BLANK() ), // 总计行逻辑:直接累计到当前月份 CALCULATE( [Previsto], FILTER( ALL('dCalendario'), 'dCalendario'[Ano] = CurrentYear && 'dCalendario'[Mês] <= CurrentMonth ) ) )
关键逻辑说明
- 上下文区分:用
ISINSCOPE(dCalendario[Nome do Mês])判断当前是明细行还是总计行,分别执行不同的累计逻辑 - 年度过滤:新增年度匹配条件
'dCalendario'[Ano] = CurrentYear,避免跨年度的错误累计(比如去年12月和今年1月的累计混淆) - 总计行控制:总计行直接筛选当前年度中月份≤当前实际月份的数据,确保仅统计到当月的累计值
效果验证
假设当前实际月份是7月(julho),修改后总计行将返回19420,而非原度量值计算的全年累计值。
内容的提问来源于stack exchange,提问作者DSCintra
相关产品推荐
相关产品推荐

