窗口函数的应用

Power BI 中的时间序列分析

Kevin Barlow

Data Analytics Professional

背景与重要性

扩展窗与滚动窗函数可用于多种场景!

可对特定时间段进行多种计算:

- RANK()
- LOOKUPVALUE()
- CHISQ.INV()
- GEOMEAN()
Power BI 中的时间序列分析

SAMEPERIODLASTYEAR 与 PARALLELPERIOD

SAMEPERIODLASTYEAR()

返回一个表,该表在当前上下文中包含将指定日期列向前回溯一年后的日期列。

SAMEPERIODLASTYEAR(<dates>)

PARALLELPERIOD()

返回一个表,该表在当前上下文中包含与指定日期列平行的期间,其日期按给定的间隔数前移或后移。

PARALLELPERIOD(<dates>,
    <number_of_intervals>,
    <interval>)
1 https://learn.microsoft.com/dax
Power BI 中的时间序列分析

分析去年的同窗

我们可能想查看去年的同一时间窗。

  • 将窗口函数应用于历史数据。
  • 帮助了解当时相同计算的结果。
  • 快速在不同时点处理计算。

此类分析的典型步骤:

  1. 计算当年的关键度量或 KPI。
  2. 将相同计算应用于其他相似时间段。
  3. 计算这些值的差异以理解变化幅度。
Power BI 中的时间序列分析

分析去年的同窗示例

在业界,这类分析很常见。它提供两个关键数据点:

  1. 本年度在特定 KPI 上的表现如何?
  2. 与去年的同一时期和同一 KPI 相比,我们表现如何?是否在提升?
Avg Cost = CALCULATE(
    AVERAGE(stores[cost]),
    stores[date] >= 
        DATEADD(TODAY(), -30, DAY))

LY Avg Cost = CALCULATE([Avg Cost],
    SAMEPERIODLASTYEAR(stores[date]))
Power BI 中的时间序列分析

计算同比变化

通过对历史数据应用时间窗,我们可精确计算与去年的变化。

  • 即同比(YoY)计算
  • 提供相对历史的进展感知
  • 通常以百分比变化展示
# Assuming current month is February

CY Jan Revenue = CALCULATE(
    SUM(sales[revenue]),
    PREVIOUSMONTH(sales[date]))

LY Jan Revenue = CALCULATE(
    [CY Jan Revenue],
    SAMEPERIODLASTYEAR(sales[date]))

Jan Revenue YoY = (
    ([CY Jan Revenue]-[LY Jan Revenue])
        / [LY Jan Revenue])
Power BI 中的时间序列分析

Vamos praticar!

Power BI 中的时间序列分析

Preparing Video For Download...