Power BI上年累计营收度量值优化:限制仅显示至当前对应月份
问题:Power BI上年累计营收折线图显示限制问题
我需要创建一个对比三个度量值的折线图:
- 浅蓝线:当年截至当前月的累计营收
- 深蓝线:当年截至当前月的累计目标
- 橙线:上年的累计营收
目前的问题是无法设置条件限制橙线仅显示至当前对应月份(其他月份不能重复显示数值)。
已实现的当年累计营收度量值
实际营收基础度量值
Faturamento Realizado = CALCULATE( SUM(tb_Base_Faturamento[FATURAMENTO LÍQUIDO]) ,'tb_Base_Faturamento'[VISÃO] = "REAL" )
当年累计营收度量值
Faturamento Yeartodate Atual = VAR FinalMesAtual = [Final Mes Atual] RETURN CALCULATE( TOTALYTD( [Faturamento Realizado], tb_Calendario_Faturamento[Data], "30/06" ), FILTER( tb_Calendario_Faturamento, tb_Calendario_Faturamento[Data] <= FinalMesAtual ) )
尝试的上年累计营收度量值(存在问题)
AnoAnteriorFaturamentoYeartodate = VAR FinalMesAtualAnoAnterior = CALCULATE( MAX(tb_Calendario_Faturamento[Data]), MONTH(tb_Calendario_Faturamento[Data]) = MONTH(TODAY()) && YEAR(tb_Calendario_Faturamento[Data]) = YEAR(TODAY()) - 1 ) RETURN CALCULATE( [Faturamento Realizado], FILTER( ALL(tb_Calendario_Faturamento), tb_Calendario_Faturamento[Data] <= FinalMesAtualAnoAnterior ), SAMEPERIODLASTYEAR(DATESYTD(tb_Calendario_Faturamento[Data],"30/06")) )
这个度量值要么无法计算结果,要么无法实现仅显示到对应月份的限制。
解决方案:修正上年累计营收度量值
核心思路:先计算上年同期的累计营收,再判断当前图表中的月份是否超过当年当前月的对应上年月份,超过则返回空值。
AnoAnteriorFaturamentoYeartodate = VAR MesAtual = MONTH(TODAY()) VAR AnoAtual = YEAR(TODAY()) -- 获取当前上下文的月份和年份 VAR MesContexto = MONTH(SELECTEDVALUE(tb_Calendario_Faturamento[Data])) VAR AnoContexto = YEAR(SELECTEDVALUE(tb_Calendario_Faturamento[Data])) -- 计算上年同期的累计营收 VAR ValorYTDAnterior = CALCULATE( TOTALYTD( [Faturamento Realizado], tb_Calendario_Faturamento[Data], "30/06" ), SAMEPERIODLASTYEAR(DATESYTD(tb_Calendario_Faturamento[Data], "30/06")) ) -- 仅在上年且月份不超过当年当前月时返回数值,否则返回空 RETURN IF( AnoContexto = AnoAtual - 1 && MesContexto <= MesAtual, ValorYTDAnterior, BLANK() )
关键说明
- 用
SELECTEDVALUE精准获取折线图每个数据点对应的日期上下文,确保判断逻辑适配图表的显示维度。 - 结合
TOTALYTD和SAMEPERIODLASTYEAR直接计算上年累计营收,简化复杂的日期过滤。 - 通过
IF条件控制返回值:只有当数据点属于上年且月份不超过当年当前月时,才显示累计值;超出的月份返回BLANK(),折线图对应位置就不会有数据,自然避免重复显示。
如果你的财年结束日期不是6月30日,只需修改TOTALYTD中的第三个参数即可适配。
内容的提问来源于stack exchange,提问作者Felipe Augusto Violin
相关产品推荐
相关产品推荐

