在实际使用PowerBI的时候,随着一个报表时间的推移,里面的数据维度会不断增加。如果我们一味的增加画布空间来放筛选器的话,很影响画布的使用效率,并且非常的丑陋,如果一下出现几十个筛选器在使用者这里,用户会很迷茫。
这个时候我们就需要合理进行规划了,把筛选器进行分类,比如分成时间日期类、产品类、区域类等等。然后通过书签做成切片筛选,用户筛选的时候按照大类选择进行筛选就行了。而且这样还有个好处,如果需要新增维度,只需要再新增一个书签即可,筛选器的画布位置可以保持不变,这对报表的灵活扩展性也是很有帮助的。
这里还会伴随一个问题,画布中只会展示我们已经选择大类的筛选器内容,我们不能看出整个页面使用了哪些筛选器,对我们使用数据也是一个很大的困扰。所以我们还需要做一个提示框,来展示整个页面我们已经有哪些筛选器做了什么筛选。
下面使用产品和时间两个维度进行演示。产品和时间分别是4个维度,然后我们使用书签做成两个大分类的筛选。关于书签的这类应用前面已经讲过几次了,这里略过,效果如下↓
这里我们就实现了在固定的区域可以放多个大类的筛选器,下面是本篇和主要内容,如何通过度量值的方式展示我们已经筛选了内容。我们先通过品类这一个筛选器来说明,DAX语句和结果如下↓
显示筛选 =
IF(
ISFILTERED('product'[品类]),
VAR items = VALUES('product'[品类])
VAR items_combined = CONCATENATEX(items,'product'[品类],"、")
RETURN "【品类】"&items_combined & ";" &UNICHAR(10)
)
效果已经是我们想要的了,解释一下,通过IF语言做个判断,用ISFILTERED的函数来判断我们是否对品类做了筛选,如果做了筛选,我们就返回筛选的值,如果没有筛选,就不返回任何值。CONCATENATEX函数就是把多选的品类连接起来。最后的返回值里面我们把加一个【品类】标题用以更清晰的判断是哪个筛选器在起作用。
有了这个思路,下面就只需要把我们其他筛选器复制粘贴改一下名称,再连接到一起就可以了。我们这里只用了6个度量值,后续如果有新增的也很简单,直接在度量值后面复制新增就可以了。整体的DAX语句和结果如下↓
显示筛选 =
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('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)
)
到此,我们的需求已经实现了,最后再新增一个书签,用来还原所有的筛选。因为如果筛选器太多我们需要一个一个去取消筛选还是一件很麻烦的事情。这个思路也很简单,就是新建一个没有做任何筛选的书签,然后通过一个按钮进行跳转就行了,最后结果如下↓
好了,最后就是根据整体报表的风格和布局,选择合适的位置和色彩搭配就可以了。
End
![](https://i-blog.csdnimg.cn/blog_migrate/3bb5d46c8fe0c44cd920c9e18c0dd4cf.gif)