如何讓Power BI的切片器默認顯示為最新日期?

經常碰到這樣的需求,在報告中設置一個切片器,當用戶打開報告時,默認顯示的是最近一個期間的數據,比如當2020年11月30日打開報告時,顯示的是2020年11月的數據,第二天再打開刷新,自動顯示2020年12月的數據。

目前PowerBI沒有辦法動態的改變切片器的選項,當你選擇某一個具體的期間時,下次再打開依然還是這個期間,不能自動變為最新的。

這個需求很普遍,很多人受此困擾,幾年前就有很多人在微軟PowerBI社區中提出過該需求,但這麼多年過去了,現在的版本仍然還沒有這個功能,那麼我們就通過一個變通的方式來實現它吧。

最終目的是要動態的篩選數據,由於切片器的選項不能自動改變,那麼換一個思路,可以將該選項所代表的區間動態化,以顯示本月的數據為例,只需要在日期表中添加一個計算列就可以了:

年月 =

IF([年度月份]=FORMAT(TODAY(),"YYYYMM"),"本月",[年度月份])


這列的含義是,如果當前的年度月份是今天所有在年度月份,就返回本月,否則正常返回年度月份的值,結果如下:

然後利用這一列,製作切片器即可。


因為計算列中的「本月」會根據TODAY的值動態計算,所以任何時候打開這個報告刷新,默認都會顯示「本月」的數據,這樣就實現了報告的自動篩選

還有個常見的情形是動態顯示業務最後一天的數據,每次打開刷新後,報表自動顯示最後一天的數據,而無需再選擇切片器。

同樣的思路,在日期表中新建一列:

這個新建列的含義是,如果小於業務最後一天的日期,就正常返回該日期,如果等於最後一天的日期,返回「最新業務日期」,如果大於最後一天的日期,則返回空值BLANK。


其中 MAXX(ALL('訂單表'),'訂單表'[訂單日期]) 用於計算訂單表中的最新日期,當然你也可以先把這個日期用度量值寫出來,計算列中直接引用也可以的。

這個示例中,業務最後一天的日期是2020年12月8日,在日期表中這一列顯示如下:

如果訂單表中業務更新到12月9日,則這一列自動在12月9日顯示為「最新業務日期」,因此用這一列做切片器,並選擇為「最新業務日期」,報表就可以自動隨着訂單表中的最新日期而自動切換數據。


因為這一列中有空值,所以切片器中會顯示一個BLANK選項,如果不想顯示,可以在篩選器中把它去掉。

或者使用內置的切片器,使用下拉模式,只顯示最新業務日期的選項,為了讓用戶知道最新業務日期是哪一天,可以在報表中放個卡片圖,來顯示出這個日期:



當然,如果你想選擇其他日期,點開切片器選擇就行了,用戶仍有查看其他日期數據的自由。

上面是兩種常見需求的解決方案,切片器的選項是固定的,但該選項代表的區間是動態變化的。同理,如果你的業務需求是在報表中默認顯示為今日、昨日、上個月、本年等各種效果,都可以借鑒這種思路實現。

更多推薦

采悟@PowerBI星球

the end