Power BI筛选特定标签时如何关联显示相关标签数据?
Power BI筛选关联标签时如何显示关联行
现有数据与需求
Words表结构与数据
包含index-id(数值型)和tag(文本型)两列,数据如下:
| index-id | tag |
|---|---|
| 168 | Palestine |
| 1000 | Special + |
| 1159 | Channel |
| 192 | News |
| 340 | Search |
需求
当筛选tag为Special +时,需要同时显示其关联标签Channel的行。
已创建的关联表tag_grouping
用于定义标签关联关系,包含index-id和id两列:
index-id对应Words表中标签的index-idid对应关联组的主标签index-id(这里Special +的index-id为1000)
数据如下:
| index-id | id |
|---|---|
| 1159 | 1000 |
| 1000 | 1000 |
当前问题:已配置模型关系,但筛选Special +时仅显示自身行,未包含Channel行。
解决方案
1. 调整模型关系
在Power BI数据模型中建立两个关系:
- 活跃关系:Words[
index-id] ↔ tag_grouping[index-id](默认勾选"确保此关系是活动的") - 非活跃关系:Words[
index-id] ↔ tag_grouping[id](取消勾选"确保此关系是活动的")
2. 通过DAX激活非活跃关系
可选择以下两种方式实现:
方式一:创建计算列标记标签组
在Words表中添加计算列标签组ID:
标签组ID = LOOKUPVALUE(tag_grouping[id], tag_grouping[index-id], Words[index-id])
该列会将每个标签映射到其所属的组ID(比如Channel和Special +的组ID都是1000)。之后在视觉对象的筛选器中,选择标签组ID等于Special +对应的index-id(1000),即可同时显示两个标签的行。
方式二:创建度量值控制可见性
创建度量值关联标签可见性:
关联标签可见性 = CALCULATE( COUNTROWS(Words), USERELATIONSHIP(Words[index-id], tag_grouping[id]) )
在视觉对象的筛选器中,设置关联标签可见性为"不为空"。当筛选Special +时,该度量值会激活非活跃关系,将同组的Channel行纳入结果。
3. 验证效果
完成配置后,选择Special +标签,视觉对象应同时显示index-id为1000(Special +)和1159(Channel)的两行数据。
内容的提问来源于stack exchange,提问作者user25037366
相关产品推荐
相关产品推荐

