最近發生的業務往往需要更及時的關注,所以報告中經常有展示最近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星球」創始人,《Power BI商業數據分析》作者