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

Power BI中DAX上年销售额计算问题求助

解决DAX计算上年销售额仅显示总计的问题

核心问题分析

你遇到的问题是因为PRIORYEAR函数默认返回上年全年的日期范围,而非切片器选中日期的上年同期区间,导致按星期维度展示时,每行都继承了“上年全年”的上下文,所以只显示总计值。

解决方案

情况1:计算切片器日期的上年同期销售额(对应2022.10.15-2022.10.21)

使用SAMEPERIODLASTYEAR函数精准匹配上年同期的日期区间,同时确保日期表配置正确:

  1. 先确认日期表配置:

    • 日期表必须标记为「日期表」(Power BI中右键日期表 → 标记为日期表)
    • 日期表的日期列与销售表的交易日期列建立单向关系(日期表 → 销售表)
    • 切片器使用日期表的日期列
  2. DAX公式:

上年总销售额 = 
CALCULATE(
    SUM('销售表'[销售额]),
    SAMEPERIODLASTYEAR('日期表'[日期])
)

情况2:按周数(如2023年第42周)匹配上年同周销售额

如果你的“星期维度”指的是年度周数,需要通过周数+年份的组合过滤:

  1. 在日期表中添加周数列(根据你的周计算规则调整第二个参数,2代表周一为周首日):
年度周数 = WEEKNUM('日期表'[日期], 2)
  1. DAX公式:
上年同周销售额 = 
VAR 当前年度 = YEAR(MAX('日期表'[日期]))
VAR 当前周数 = WEEKNUM(MAX('日期表'[日期]), 2)
RETURN
CALCULATE(
    SUM('销售表'[销售额]),
    FILTER(
        ALL('日期表'),
        YEAR('日期表'[日期]) = 当前年度 - 1 &&
        WEEKNUM('日期表'[日期], 2) = 当前周数
    )
)

额外检查点

  • 确保用于分组的「星期」列(如星期几、年度周数)来自日期表,而非销售表,否则上下文无法正确传递到时间智能函数。
  • 如果仍有问题,检查是否存在其他筛选器(如页面级筛选、视觉对象筛选)干扰了日期上下文。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:40:10