利用Power Query,PowerBI輕鬆展示最近N天

最近發生的業務往往需要更及時的關注,所以報告中經常有展示最近N天數據的需求,之前曾介紹過利用DAX動態的顯示最近N天:

Power BI動態顯示最近N天的數據

如果在報告中只需要分析最近N天的數據,其實也可以不用這麼麻煩,還可以利用PowerQuery的日期篩選器,更方便的實現。

數據導入到PowerQuery後,按數據中的日期字段來篩選數據。比如這個訂單表,只需要點擊訂單日期列右側的下拉箭頭,即可找到日期篩選器:


在日期篩選器中內置有各種粒度的篩選,比如昨天、今天、本周、上周、本月、本年等等,甚至也可以細化到按小時、分鐘、秒來篩選行,還可以自定義篩選。


如果僅需要最近5天的訂單數據,只需要選擇「在之前的」,然後在彈出的窗口中輸入5天就可以了:


然後上載,模型中就是最近5天的數據,直接做可視化展示即可。

上面用的之前5天不包括今天,如果想要包含今天的最近5天數據,可以這樣設置:之前的4天以及今天。



如果打算修改為最近15天的數據,點擊「轉換數據」進入PowerQuery編輯器,點擊篩選行這個步驟旁邊的小齒輪,可以再次進入篩選行的按鈕,將5修改為15就可以了。

也可以直接修改這個步驟的M代碼,將其中的5改為15:


還可以利用PowerQuery的參數,將這個最近N天動態化,先在PowerQuery里建個參數:

然後修改M代碼為:


就可以根據參數的值來動態的篩選最近N天了。

這種做法加載到模型中的數據永遠就是最近N天的,會隨着日期的變化而動態變化,更加簡單輕巧,但簡單也伴隨着單調,它無法靈活的根據用戶交互來展示某個日期之前的最近N天,也無法僅利用這張表做其他的分析,比如同期對比分析等。

具體用哪種方式,如何建立模型,依然是根據實際業務的需要來衡量。

當然如果你的歷史數據非常多,而你只需要分析最近3年的,同樣可以利用日期篩選器來動態的提取最近3年的數據,而無需將全部歷史數據都加載到數據模型中,這樣可以顯著的提升模型性能。

關於PowerQuery日期篩選器,其他的粒度和篩選方式可以自己嘗試一下。

更多推薦

我的新書《PowerBI商業數據分析》上市了

PowerBI如何進行財年分析?

PowerBI 運行速度慢?15個改善的最佳實踐送給你

采悟,「PowerBI星球」創始人,《Power BI商業數據分析》作者