简述
本文主要介绍如何使用DAX构建筛选信息栏。筛选信息栏,就是能够在整个报表或某个页面以可视文本形式展示目前数据所被应用的筛选上下文,其作用主要有二:
1.展示当前页面或特定可视化控件的筛选上下文,以便于进行数据及DAX公式的验证与错误排查;
2.便于用户掌握目前数据的筛选情况,当筛选器较多,经常需要用到多选或不同的可视化控件应用不同的筛选条件时十分有用。
本案例目标是在对下表进行筛选时,让信息栏显示当前"城市"、"子类别"及"月份"的筛选信息:
过程
实现这个功能实际上不需要自己写代码,因为如果你有使用过DAX Studio,你会发现这个功能已经被内置其中,如下:
代码会在右方自动生成,可直接根据你的个人需要进行修改,快捷省时:
对于本案例我们只需要"城市"、"子类别"及"月份"的筛选信息,如下:
Filter_Test =
VAR Filters_Limit = 5
RETURN
IF (
ISFILTERED ( 'Data'[城市] ),
VAR ___f = FILTERS ( 'Data'[城市] )
VAR ___r = COUNTROWS ( ___f )
VAR ___t = TOPN ( Filters_Limit, ___f, 'Data'[城市] )
VAR ___d = CONCATENATEX ( ___t, 'Data'[城市], ", " )
VAR ___x = "[城市]: " & ___d & IF(___r > Filters_Limit, ", ... [" & ___r & " 项已被选定]") & " "
RETURN ___x & UNICHAR(13)