Power BI Desktop:创建可筛选多列的唯一值切片器
多经办人列的切片器实现方案
针对你的多经办人列(Assignee.1、Assignee.2...)的筛选需求,以下是两种实用的实现方法:
方法一:用Power Query重构数据(推荐,适合大量经办人列)
这种方法通过逆透视将多列经办人数据转为单列表格,从根源解决筛选问题:
- 选中你的任务表格,打开Power Query编辑器(Excel:数据→从表格/范围;Power BI:主页→转换数据)
- 按住Ctrl选中所有以
Assignee.开头的列 - 点击「转换」选项卡→「逆透视列」→「逆透视其他列」,此时表格会生成新的
Attribute(原经办人列名)和Value(经办人姓名)两列 - 筛选
Value列,去掉空值行 - 关闭并上载重构后的表格到Excel/Power BI
- 用新表格的
Value列创建切片器,即可筛选出所有包含该经办人的任务,无论姓名出现在哪一列
方法二:用DAX创建计算表与度量值(无需修改原表)
如果不想改动原数据结构,可以用DAX生成唯一经办人列表并实现筛选:
- 创建唯一经办人计算表
在Power BI或Excel的DAX编辑器中输入以下公式(替换TaskTable为你的表名,按需添加所有Assignee列):Unique Assignees = DISTINCT( UNION( VALUES('TaskTable'[Assignee.1]), VALUES('TaskTable'[Assignee.2]), VALUES('TaskTable'[Assignee.3]) ) ) - 创建筛选度量值
继续输入以下度量值:包含选中经办人 = VAR 选中经办人 = SELECTEDVALUE('Unique Assignees'[Value]) RETURN IF( 选中经办人 = BLANK(), 1, COUNTROWS( FILTER( 'TaskTable', 'TaskTable'[Assignee.1] = 选中经办人 || 'TaskTable'[Assignee.2] = 选中经办人 || 'TaskTable'[Assignee.3] = 选中经办人 ) ) > 0 ) - 配置筛选
将「包含选中经办人」度量值拖到筛选器面板,设置为「等于1」;用Unique Assignees表的Value列创建切片器,即可实现跨列筛选
内容的提问来源于stack exchange,提问作者Marcelo Bastos
相关产品推荐
相关产品推荐

