Power BI中如何分两列放置切片器并实现或逻辑筛选?
实现Power BI切片器的OR逻辑筛选需求
可以实现这个需求。默认情况下Power BI的切片器是AND逻辑(要求同时满足所有切片器的筛选条件),而你需要的是OR逻辑(满足任一切片器的条件即可),具体操作步骤如下:
1. 创建独立的维度表
首先要为两个切片器分别创建独立的维度表,避开原表的筛选上下文限制:
- 创建StudentID维度表:
在Power BI的「建模」选项卡中点击「新建表」,输入以下DAX公式:StudentID_Dim = DISTINCT(School_Table[StudentID]) - 创建Schl code维度表:
同样新建表,输入公式:
注意:这两个维度表不需要和SchlCode_Dim = DISTINCT(School_Table[Schl code])School_Table建立任何关系。
2. 生成符合条件的结果表(两种方法可选)
方法一:直接创建计算表
新建表,输入以下DAX公式,生成满足OR逻辑的结果表:
Filtered_School_Table = VAR SelectedStudents = VALUES(StudentID_Dim[StudentID]) VAR SelectedSchools = VALUES(SchlCode_Dim[Schl code]) RETURN FILTER( School_Table, School_Table[StudentID] IN SelectedStudents || School_Table[Schl code] IN SelectedSchools )
之后直接使用这个Filtered_School_Table制作可视化表格,切片器分别选择StudentID_Dim[StudentID]和SchlCode_Dim[Schl code]即可。
方法二:用度量值过滤原表
如果不想新建表,可以创建一个度量值来控制原表的显示:
IsQualified = VAR SelectedStudents = VALUES(StudentID_Dim[StudentID]) VAR SelectedSchools = VALUES(SchlCode_Dim[Schl code]) RETURN IF( MAX(School_Table[StudentID]) IN SelectedStudents || MAX(School_Table[Schl code]) IN SelectedSchools, 1, 0 )
然后在原School_Table的可视化表格中,将这个度量值添加到「筛选器」面板,设置筛选条件为IsQualified = 1,切片器同样使用两个维度表的字段。
效果验证
当你在StudentID切片器选择1、2,Schl code切片器选择103、104时,结果表会包含StudentID为1、2、5、6的所有记录,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Parker
相关产品推荐
相关产品推荐

