Power BI如何动态排除指定行,实现项目A、B二选一展示?
实现方案(Power BI/Tableau等BI工具逻辑通用,以下以Power BI为例)
1. 新建独立的项目选择参数表
不需要和你的原资源分配表建立关联,直接手动创建一个单列的独立表,仅包含「项目A」、「项目B」两个值,用DAX创建的代码如下:项目选择表 = DATATABLE("可选项目", STRING, {{"项目A"}, {"项目B"}})
如果是用手动输入数据的方式,直接填两行值即可。
2. 编写显示控制度量值
这个度量值用来判断每一行数据要不要展示,逻辑是:常规项目一律保留,项目A/B只有和选中值一致时才保留,代码如下:
显示控制 = VAR 选中的目标项目 = SELECTEDVALUE('项目选择表'[可选项目]) VAR 当前行所属项目 = MAX('资源分配表'[项目]) RETURN IF( // 判断是不是需要切换的特定项目 当前行所属项目 IN {"项目A", "项目B"}, // 是特定项目就匹配选中值,一致返回1,否则0 IF(当前行所属项目 = 选中的目标项目, 1, 0), // 常规项目直接返回1保留 1 )
3. 绑定控件和筛选逻辑
- 把「项目选择表」的「可选项目」字段拖到画布上生成切片器,设置切片器为单选模式
- 打开你要展示的表格/图表的筛选面板,把「显示控制」度量值拖进去,筛选条件设置为「等于1」,应用筛选即可生效
进阶:用按钮替代切片器(可选)
如果不想用下拉/列表式的切片器,可以做两个按钮分别对应项目A、B:
- 选中按钮,在「操作」设置里选择「更改筛选器」,目标字段选「项目选择表」[可选项目],对应值分别设为项目A、项目B即可,点击按钮就会自动切换展示内容。
如果使用Tableau实现,逻辑完全一致:先创建项目切换参数,再写对应的IF判断计算字段,把计算字段拖到筛选器选「真」即可。
内容的提问来源于stack exchange,提问作者KieranIngram
相关产品推荐
相关产品推荐

