You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI中筛选月份时如何计算上一年度全年销售总额?

解决Power BI中筛选月份时无法获取上一年度全年销售额的问题

问题原因

你当前的DAX公式里,DATEADD是基于当前筛选的日期区间(比如选中的1月)做年份偏移,所以只会返回去年对应月份的数据。REMOVEFILTERS(dim_date[month_name])无法覆盖DATEADD依赖当前上下文日期的限制,导致达不到预期效果。

解决方案

通过明确锁定上一年的完整日期范围,脱离当前月份筛选的上下文限制,以下是两种可靠写法:

写法一:基于年份变量筛选(直观易维护)

total_sales_last_year =
VAR CurrentYear = YEAR(MAX(dim_date[formatted_date]))
VAR LastYear = CurrentYear - 1
RETURN
CALCULATE(
    SUM(fact_sale_order[sales_amount]),
    FILTER(
        ALL(dim_date),
        YEAR(dim_date[formatted_date]) = LastYear
    )
)
  • 逻辑:先获取当前筛选上下文里的年份,计算出上一年后,用FILTER(ALL(dim_date))筛选出上一年的所有日期,确保返回全年销售额。

写法二:使用全量日期的同周期上年

total_sales_last_year =
CALCULATE(
    SUM(fact_sale_order[sales_amount]),
    SAMEPERIODLASTYEAR(ALL(dim_date[formatted_date])),
    REMOVEFILTERS(dim_date)
)
  • 逻辑:用ALL(dim_date[formatted_date])获取日期表的全量日期,通过SAMEPERIODLASTYEAR定位到上一年的完整日期范围,同时移除日期表的所有筛选。

验证方法

筛选任意月份(如1月),查看该度量值是否返回上一年度全年的销售总额,而非仅对应月份的数据。

内容的提问来源于stack exchange,提问作者CLT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:30:58