Power BI如何動態計算任意粒度的上期資料?

之前分享了透過切換不同的粒度型別,來動態顯示最近的N個粒度期間的資料(PowerBI動態顯示最近N期的資料),在這個案例中,用了獨立的日期表作為切片器,這個做法也可以進一步最佳化,改用建立關係的日期粒度表來作為切片器,以便與報表的其他圖表互動。

原模型不變,這裡將切片器中的欄位都改為來自日期粒度表,並寫一個度量值:

並用這個度量值作為柱形圖的值,未建立的關係的獨立日期粒度表作為座標軸,同樣可以實現上篇文章的效果:

Power BI如何動態計算任意粒度的上期資料?

此外,最近被星友問到,對於這種動態的粒度,如何選擇不同粒度型別,來正確計算出上年同期以及上期的資料呢?

對於上年同期的資料,相對比較簡單,只需要這樣寫一個度量值就可以了:

收入 上年同期=

CALCULATE(

[收入],

CALCULATETABLE(

SAMEPERIODLASTYEAR(‘日期表’[日期]),

TREATAS(VALUES(‘日期粒度表’[日期]),‘日期表’[日期])

),

ALL(‘日期粒度表’)

這個度量值的邏輯是將當前日期粒度表所篩選的日期範圍,視同日期表的日期範圍,並利用時間智慧函式返回該範圍的上年同期的時間段;當然,為了避免日期粒度表同時篩選,用ALL來忽略掉它。

這樣,無論選擇任何粒度,都可以輕鬆計算出上年同期的資料。

計算當前粒度的上期,同樣可以使用上面度量值的思路,但是稍微麻煩的一點是,對於不同的粒度,計算上期用到的時間智慧函式是不同的,所以還需要先判斷當前所選擇的粒度型別。

上期的度量值寫法如下:

當粒度型別為年時,上期就是上年同期,所以直接用上面建的上年同期度量值,當為其他粒度型別,則透過DATEADD函式來相應的計算該粒度的上期的時間段。

用本期、上期以及上年同期這三個度量值做個柱形圖,來看看動態效果:

Power BI如何動態計算任意粒度的上期資料?

有上期和上年同期的資料以後,再計算任何粒度的同比和環比也就可以很輕鬆的實現了。

幫你從0到1,輕鬆上手PowerBI

如果你對PowerBI感興趣,歡迎加入我的PowerBI學習社群

,獲取更多學習資源,和4000+ 愛好者一起精進~