PowerBi中SAMEPERIODLASTYEAR怎么使用?

118 阅读2分钟

SAMEPERIODLASTYEAR() 是 Power BI 中 时间智能函数 里的“老大哥”,用来计算 去年同一时间段的值,常用于同比分析(Year-Over-Year / YoY)。

SAMEPERIODLASTYEAR 的全称解释:

Same Period Last Year


🌍 中文翻译:

去年同期
(也可以翻译为“去年相同时间段”)


🔍 拆解理解:

部分含义中文意思
SAME相同一样的
PERIOD时间段一段时间
LAST YEAR去年上一年

所以 SAMEPERIODLASTYEAR(Date[Date]) 就是:
👉 基于当前筛选的日期范围,找出去年相同的时间段


🎯 应用场景举例:

  • 今天是 2025/04/03,使用 SAMEPERIODLASTYEAR(Date[Date]),就会返回 2024/04/03。
  • 如果你筛选的是 2025 年 1 月到 3 月,它会返回 2024 年 1 月到 3 月的数据。

✅ 一句话解释:

SAMEPERIODLASTYEAR() 会返回 当前日期范围的“去年同一时间段” ,通常配合 CALCULATE() 使用。


🧠 函数语法:

SAMEPERIODLASTYEAR(<dates>)
  • dates:通常是日期列(比如 Date[Date]

🎯 常见使用场景:去年销售额、利润等对比

📌 示例 1:计算去年销售额

假设你有一个 Sales[Amount] 销售额字段,还有一个 Date 日期表。

销售额_去年 = 
CALCULATE(
    SUM(Sales[Amount]),
    SAMEPERIODLASTYEAR(Date[Date])
)

➤ 它的逻辑是:
在当前筛选的时间范围内,去找“去年同一时间段”,然后计算那段时间的销售额。


📊 示例 2:同比增长率(YoY %)

销售额_YoY百分比 = 
DIVIDE(
    [销售额] - [销售额_去年],
    [销售额_去年]
)

前提是你已经创建了 [销售额][销售额_去年] 两个度量值


✅ 使用条件说明

要点是否必须
有独立的日期表(Date Table)✅ 必须
日期表和事实表建立好关系✅ 必须
使用连续日期(日维度)✅ 推荐

⚠️ 注意:如果你的日期表不是连续的,比如只有月或年,可能会出错或不返回正确值!


🔄 对比其他时间函数

函数名说明
SAMEPERIODLASTYEAR()当前时间范围的“去年”
PARALLELPERIOD(...,-1,YEAR)返回同样长度的去年区间
DATEADD(...,-1,YEAR)往前移一年,可以更灵活
PREVIOUSYEAR()整个上一年的全部时间

🧠 什么时候该用 SAMEPERIODLASTYEAR

场景推荐
做折线图、柱状图,显示“今年 vs 去年销售趋势”
对比本月 vs 去年同月的利润、订单等
自定义月份或季度对比(但时间跨度不能变)
日期表不是连续日(如只有月份或年)❌ 不推荐,容易出错

🧪 如果你没有日期表怎么办?

强烈建议用以下语句创建:

Date = CALENDAR(DATE(2019,1,1), DATE(2025,12,31))

然后加上:

Year = YEAR(Date[Date])
Month = FORMAT(Date[Date], "MMM")

并将你的销售表中的日期字段 Sales[OrderDate]Date[Date] 建立关系。


✅ 总结口诀:

🔹 SAMEPERIODLASTYEAR = 当前时间段 ➜ 去年对应时间段
🔹 常配合 CALCULATE() 使用
🔹 做同比必备工具,离不开“日期表”!