Power BI設計技巧:利用DAX使切片器動態篩選 -精彩推薦-

經常碰到這樣的需求,在報告中設置一個切片器,當用戶打開報告時,默認顯示的是最近一個期間的數據,比如當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數據分析和可視化實戰案例

PowerBI時間相關的度量值,都在這裏了

PDF轉Excel,這個祕籍推薦給你

採悟 

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