在實(shí)際使用PowerBI的時(shí)候,隨著一個(gè)報(bào)表時(shí)間的推移,里面的數(shù)據(jù)維度會(huì)不斷增加。如果我們一味的增加畫(huà)布空間來(lái)放篩選器的話(huà),很影響畫(huà)布的使用效率,并且非常的丑陋,如果一下出現(xiàn)幾十個(gè)篩選器在使用者這里,用戶(hù)會(huì)很迷茫。

這個(gè)時(shí)候我們就需要合理進(jìn)行規(guī)劃了,把篩選器進(jìn)行分類(lèi),比如分成時(shí)間日期類(lèi)、產(chǎn)品類(lèi)、區(qū)域類(lèi)等等。然后通過(guò)書(shū)簽做成切片篩選,用戶(hù)篩選的時(shí)候按照大類(lèi)選擇進(jìn)行篩選就行了。而且這樣還有個(gè)好處,如果需要新增維度,只需要再新增一個(gè)書(shū)簽即可,篩選器的畫(huà)布位置可以保持不變,這對(duì)報(bào)表的靈活擴(kuò)展性也是很有幫助的。
這里還會(huì)伴隨一個(gè)問(wèn)題,畫(huà)布中只會(huì)展示我們已經(jīng)選擇大類(lèi)的篩選器內(nèi)容,我們不能看出整個(gè)頁(yè)面使用了哪些篩選器,對(duì)我們使用數(shù)據(jù)也是一個(gè)很大的困擾。所以我們還需要做一個(gè)提示框,來(lái)展示整個(gè)頁(yè)面我們已經(jīng)有哪些篩選器做了什么篩選。
下面使用產(chǎn)品和時(shí)間兩個(gè)維度進(jìn)行演示。產(chǎn)品和時(shí)間分別是4個(gè)維度,然后我們使用書(shū)簽做成兩個(gè)大分類(lèi)的篩選。關(guān)于書(shū)簽的這類(lèi)應(yīng)用前面已經(jīng)講過(guò)幾次了,這里略過(guò),效果如下↓

這里我們就實(shí)現(xiàn)了在固定的區(qū)域可以放多個(gè)大類(lèi)的篩選器,下面是本篇和主要內(nèi)容,如何通過(guò)度量值的方式展示我們已經(jīng)篩選了內(nèi)容。我們先通過(guò)品類(lèi)這一個(gè)篩選器來(lái)說(shuō)明,DAX語(yǔ)句和結(jié)果如下↓
顯示篩選 =
IF(
ISFILTERED('product'[品類(lèi)]),
VAR items = VALUES('product'[品類(lèi)])
VAR items_combined = CONCATENATEX(items,'product'[品類(lèi)],"、")
RETURN "【品類(lèi)】"&items_combined & ";" &UNICHAR(10)
)

效果已經(jīng)是我們想要的了,解釋一下,通過(guò)IF語(yǔ)言做個(gè)判斷,用ISFILTERED的函數(shù)來(lái)判斷我們是否對(duì)品類(lèi)做了篩選,如果做了篩選,我們就返回篩選的值,如果沒(méi)有篩選,就不返回任何值。CONCATENATEX函數(shù)就是把多選的品類(lèi)連接起來(lái)。最后的返回值里面我們把加一個(gè)【品類(lèi)】標(biāo)題用以更清晰的判斷是哪個(gè)篩選器在起作用。
有了這個(gè)思路,下面就只需要把我們其他篩選器復(fù)制粘貼改一下名稱(chēng),再連接到一起就可以了。我們這里只用了6個(gè)度量值,后續(xù)如果有新增的也很簡(jiǎn)單,直接在度量值后面復(fù)制新增就可以了。整體的DAX語(yǔ)句和結(jié)果如下↓
顯示篩選 =
IF(
ISFILTERED('product'[品類(lèi)]),
VAR items = VALUES('product'[品類(lèi)])
VAR items_combined = CONCATENATEX(items,'product'[品類(lèi)],"、")
RETURN "【品類(lèi)】"&items_combined & ";" &UNICHAR(10)
)&
IF(
ISFILTERED('product'[品牌]),
VAR items = VALUES('product'[品牌])
VAR items_combined = CONCATENATEX(items,'product'[品牌],"、")
RETURN "【品牌】"&items_combined & ";"& UNICHAR(10)
)&
IF(
ISFILTERED('product'[系列]),
VAR items = VALUES('product'[系列])
VAR items_combined = CONCATENATEX(items,'product'[系列],"、")
RETURN "【系列】"&items_combined & ";"& UNICHAR(10)
)&
IF(
ISFILTERED('Date'[年份]),
VAR items = VALUES('Date'[年份])
VAR items_combined = CONCATENATEX(items,'Date'[年份],"、")
RETURN "【年份】"&items_combined& ";" & UNICHAR(10)
)&
IF(
ISFILTERED('Date'[季度]),
VAR items = VALUES('Date'[季度])
VAR items_combined = CONCATENATEX(items,'Date'[季度],"、")
RETURN "【季度】"&items_combined & ";"& UNICHAR(10)
)&
IF(
ISFILTERED('Date'[年月]),
VAR items = VALUES('Date'[年月])
VAR items_combined = CONCATENATEX(items,'Date'[年月],"、")
RETURN "【年月】"&items_combined & ";"& UNICHAR(10)
)

到此,我們的需求已經(jīng)實(shí)現(xiàn)了,最后再新增一個(gè)書(shū)簽,用來(lái)還原所有的篩選。因?yàn)槿绻Y選器太多我們需要一個(gè)一個(gè)去取消篩選還是一件很麻煩的事情。這個(gè)思路也很簡(jiǎn)單,就是新建一個(gè)沒(méi)有做任何篩選的書(shū)簽,然后通過(guò)一個(gè)按鈕進(jìn)行跳轉(zhuǎn)就行了,最后結(jié)果如下↓

好了,最后就是根據(jù)整體報(bào)表的風(fēng)格和布局,選擇合適的位置和色彩搭配就可以了。
End

◆ PowerBI_RFM客戶(hù)關(guān)系模型
◆ PowerBI餅圖、圈圖、旭日?qǐng)D
◆ Excel時(shí)間序列預(yù)測(cè)函數(shù)
◆ Python操作MySQL數(shù)據(jù)庫(kù)
◆ Python企業(yè)微信機(jī)器人