如何在Power BI中基于字段参数筛选表格行?
问题背景与需求
现有数据与配置
假设存在如下Products表:
ID Tags 1 Red; Blue; Green 2 Blue;Purple 3 Yellow 4 no color
已在Power BI中创建IsRed、IsBlue等布尔计算列,用于判断Tags列是否包含对应颜色,示例公式:
IsBlue = CONTAINSSTRING(Products[Tags], "Blue")
同时已创建字段参数ColorParameter:
ColorParameter = { ("Green", NAMEOF('Products'[IsGreen]), 0), ("Purple", NAMEOF('Products'[IsPurple]), 1), ("Blue", NAMEOF('Products'[IsBlue]), 2), ("Red", NAMEOF('Products'[IsRed]), 3), ("Yellow", NAMEOF('Products'[IsYellow]), 4) }
当前问题
添加该字段参数后,Power BI表格仍显示所有记录,无法根据选中的参数值筛选出对应布尔列为True的行。需要实现:仅显示选中颜色对应的行,且表格中无需显示任何布尔列。
解决方案
要实现按选中的颜色参数筛选行,需通过创建度量值+配置筛选器来完成,具体步骤如下:
创建颜色筛选度量值
在Power BI中新建一个度量值,用于动态判断当前行是否符合选中的颜色条件:颜色筛选度量值 = VAR 选中颜色列 = SELECTEDVALUE(ColorParameter[Parameter]) RETURN IF( ISBLANK(选中颜色列), 1, // 未选颜色时显示所有行 CALCULATE( MAX(Products[IsGreen]), // 此处任意选一个布尔列即可,后续会被动态替换 TREATAS({选中颜色列}, Products[IsGreen]) ) )给表格添加视觉对象筛选器
- 选中需要筛选的表格可视化组件
- 在右侧「筛选器」面板中,找到刚创建的「颜色筛选度量值」,将其添加到「视觉对象级别筛选器」
- 设置筛选条件为等于1
验证效果
此时选择ColorParameter中的任意颜色,表格会自动筛选出对应布尔列为True的行;未选中任何颜色时,显示所有行,且表格中无需展示任何布尔列。
原理说明
字段参数仅提供字段选择的交互能力,不会自动筛选行。通过TREATAS函数可以把选中的参数值(布尔列名称)动态映射到对应的布尔列,配合度量值判断是否符合条件,再通过筛选器控制表格的显示内容。
内容的提问来源于stack exchange,提问作者Gus
相关产品推荐
相关产品推荐

