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

如何在Power BI中创建偏移-1周的同比销售度量值及对应日期?

Power BI 周销售同比(偏移-1周)实现指南

一、生成上年偏移-1周的对应日期

在你的日期表中添加计算列,用于匹配本年日期对应的上年同星期几、提前1周的日期:

上年偏移-1周日期 = 
VAR CurrentDate = '日期表'[日期]
VAR CurrentYear = YEAR(CurrentDate)
VAR CurrentWeek = WEEKNUM(CurrentDate, 2) -- 周一为一周起始
VAR TargetWeek = IF(CurrentWeek = 1, WEEKNUM(DATE(CurrentYear-1, 12, 31), 2), CurrentWeek - 1)
VAR CurrentWeekday = WEEKDAY(CurrentDate, 2) -- 1=周一,2=周二...
RETURN
CALCULATE(
    MAX('日期表'[日期]),
    FILTER(
        ALL('日期表'),
        YEAR('日期表'[日期]) = CurrentYear - 1 &&
        WEEKNUM('日期表'[日期], 2) = TargetWeek &&
        WEEKDAY('日期表'[日期], 2) = CurrentWeekday
    )
)

该公式会自动处理跨年周场景(比如本年第一周对应上年最后一周),确保日期的星期几完全匹配。

二、核心度量值编写

1. 本年销售额

支持动态年份选择(默认取当前年份):

本年销售额 = 
VAR SelectedYear = SELECTEDVALUE('日期表'[年份], YEAR(TODAY()))
RETURN
CALCULATE(
    SUM('销售表'[销售额]),
    YEAR('日期表'[日期]) = SelectedYear
)

2. 上年偏移-1周销售额

方案A:基于计算列(性能更优)

利用已生成的上年偏移-1周日期计算列关联销售额:

上年偏移-1周销售额 = 
CALCULATE(
    SUM('销售表'[销售额]),
    '销售表'[日期] = MAX('日期表'[上年偏移-1周日期])
)

方案B:纯度量值(无需计算列)

直接在度量值中计算对应日期的销售额:

上年偏移-1周销售额 = 
VAR CurrentDate = MAX('日期表'[日期])
VAR CurrentYear = YEAR(CurrentDate)
VAR CurrentWeek = WEEKNUM(CurrentDate, 2)
VAR TargetWeek = IF(CurrentWeek = 1, WEEKNUM(DATE(CurrentYear-1, 12, 31), 2), CurrentWeek - 1)
VAR CurrentWeekday = WEEKDAY(CurrentDate, 2)
VAR TargetDate = 
    CALCULATE(
        MAX('日期表'[日期]),
        FILTER(
            ALL('日期表'),
            YEAR('日期表'[日期]) = CurrentYear - 1 &&
            WEEKNUM('日期表'[日期], 2) = TargetWeek &&
            WEEKDAY('日期表'[日期], 2) = CurrentWeekday
        )
    )
RETURN
CALCULATE(
    SUM('销售表'[销售额]),
    '销售表'[日期] = TargetDate
)

3. 销售差值计算

绝对差值

销售绝对差值 = [本年销售额] - [上年偏移-1周销售额]

百分比差值(避免除以0错误)

销售百分比差值 = 
VAR PrevSales = [上年偏移-1周销售额]
RETURN
IF(PrevSales = 0, BLANK(), DIVIDE([本年销售额] - PrevSales, PrevSales))

三、报表展示配置

  1. 添加日期列:在表格/矩阵可视化中,直接添加日期表的日期(本年日期)和上年偏移-1周日期列,即可展示日期对应关系。
  2. 动态交互设置:
    • 添加年份切片器(基于日期表的年份列),用户可切换年份实现动态计算。
    • 添加日期范围切片器,限定本年的日期范围,对应上年销售额会自动匹配过滤后的日期。
  3. 关系检查:确保日期表与销售表基于日期列建立了正确的一对一关系,这是所有DAX计算生效的前提。

四、关键注意事项

  • 统一周数规则:WEEKNUM和WEEKDAY函数的第二个参数要保持一致(比如都用2表示周一为一周起始),避免日期匹配错误。
  • 空值处理:如果上年对应日期无销售额,度量值会返回BLANK(),可在报表格式设置中选择显示为0或空置。
  • 性能优化:优先使用计算列方案(方案A),纯度量值方案在大数据量下可能性能稍差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:55:56