Power BI中如何通过切片器返回对应列的所有行值?
实现Power BI切片器切换显示不同表的所有行值
这个需求可以实现,你之前用Measure的思路走不通是因为Measure本质是聚合函数,只能返回单个值,没法直接返回多行数据。推荐用合并表+行级筛选的方案,具体步骤如下:
- 创建合并表,统一存储两个表的数据并标记来源
用DAX创建一个计算表,把Table1和Table2合并,同时添加一列标记数据来自哪个表(对应切片器的选项):
CombinedTable = UNION( ADDCOLUMNS(Table1, "SourceTag", "Col1"), -- 给Table1的行打上"Col1"标签 ADDCOLUMNS(Table2, "SourceTag", "Col2") -- 给Table2的行打上"Col2"标签 )
这个表会包含Table1的A/B/C和Table2的D/E/F,每行都有对应的SourceTag值。
- 创建控制显示的度量值
写一个度量值,判断当前切片器选中的选项是否和行的SourceTag匹配:
ShowRow = VAR SelectedOption = SELECTEDVALUE(ColumnList[Col]) -- 获取切片器选中的值 RETURN IF(SelectedOption = MAX(CombinedTable[SourceTag]), 1, 0) -- 匹配返回1,不匹配返回0
- 配置视觉对象和筛选器
- 把CombinedTable里的
Col1字段拖到表格视觉对象中 - 在该表格的视觉对象级筛选器里,添加
ShowRow字段,设置筛选条件为等于1
这样操作后,当你在切片器选择Col1时,表格只会显示SourceTag为Col1的行(也就是Table1的所有数据);选择Col2时,自动切换显示Table2的所有行。
另外补充:如果不想创建合并表,也可以用Power Query的动态参数实现,但这种方式需要手动刷新,不如DAX方案实时响应切片器选择,新手更推荐上面的方法。
内容的提问来源于stack exchange,提问作者Krishna
相关产品推荐
相关产品推荐

