在Power BI中,如何滾動求和

滾動年度求和,也經常用於財務上的滾動預算,看完這篇文章,你以後會很輕鬆的計算出需要的數據了。

模擬一份2018年1月至2019年7月的訂單數據,

利用CALENDARAUTO生成一份日期表,按日期列建立關係,那麼如何計算向前滾動12月的銷售額合計呢?

其實很簡單,新建度量值,

MAT =

IF(MIN('日期表'[日期])<=[訂單最大日期],

    CALCULATE(

        [收入],

        DATESINPERIOD(

            '日期表'[日期],

            LASTDATE('日期表'[日期]),-1,YEAR)

       )

)

這裏直接用了上篇文章的思路,先判斷最大訂單日期,這樣就可以避免最新訂單日期之後的計算。

這個度量值的關鍵是DATESINPERIOD函數的使用,它用來返回移動一定間隔的時間段,在上面的度量值中,正好利用它返回向前滾動一整年的日期。

關於這個時間智能函數的用法,可以參考函數卡片:

結果如下:

因爲是從2018年1月纔開始有數據,所以2018年12月之前的滾動求和都是不滿12個月的數據。如果要求不滿12月,就不要顯示數據,從達到12個月以後再開始計算,可以優化一下這個度量值,

MAT 優化 =

IF(MIN('日期表'[日期])<=[訂單最大日期],

    CALCULATE(

        IF(

            COUNTROWS(

                FILTER(VALUES('日期表'[月份]),[收入]>0)

            )=12,

           [收入]),

        DATESINPERIOD(

            '日期表'[日期],

            LASTDATE('日期表'[日期]),-1,YEAR)

    )

)

結果如下:

除了滾動求和,求移動平均同樣是很常見的需求,求往前推一年的平均數,只要把上面度量值中,CALCULATE的第一個參數,改成使用AVERAGE來聚合。

在實際計算時,求往前推一年的平均值並不是必須要求滿12個月纔開始計算,所以直接使用上面第一個度量值的寫法,

滾動平均 年度=

IF(MIN('日期表'[日期])<=[訂單最大日期],

    CALCULATE(

        AVERAGE('訂單表'[銷售額]),

        DATESINPERIOD(

            '日期表'[日期],

            LASTDATE('日期表'[日期]),-1,YEAR)

    )

)

上面的例子都是按照一年計算滾動粒度的,如果你需要其他數量和粒度的計算,正常情況下更改一下DATESINPERIOD函數的參數就行了。

《PowerBI商業數據分析》上市了

-精彩推薦-

PowerBI數據分析和可視化實戰案例

Power BI商業數據分析模型:RFM客戶價值分析

如何用PowerBI 打造高大上的財務報表分析報告?

採悟 from PowerBI星球

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章