視窗函式的應用

Power BI 的時間序列分析

Kevin Barlow

Data Analytics Professional

脈絡與重要性

擴展與滾動視窗函式可用在許多情境!

你可以在特定期間套用下列計算:

- RANK()
- LOOKUPVALUE()
- CHISQ.INV()
- GEOMEAN()
Power BI 的時間序列分析

SAMEPERIODLASTYEAR vs. PARALLELPERIOD

SAMEPERIODLASTYEAR()

在目前脈絡中,回傳一個資料表,其中包含將指定日期欄位往回推 1 年後的日期欄。

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)變化

將視窗套用到歷史資料,就能精確計算與去年相比的變化。

  • 稱為 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 的時間序列分析

一起來練習吧!

Power BI 的時間序列分析

Preparing Video For Download...