Power BI中实现产品切片器关联交易记录的双列筛选需求
在Power BI中实现按产品筛选完整交易记录
要实现选择某产品时展示所有包含该产品的完整交易(而非仅该产品的单一行),可按以下步骤操作:
前提假设
你的数据结构示例如下(四列):
| 交易编号 | 产品 | 数量 | 金额 |
|---|---|---|---|
| 1 | 苹果 | 2 | 10 |
| 1 | 香蕉 | 3 | 15 |
| 2 | 橙子 | 1 | 8 |
| 3 | 香蕉 | 2 | 10 |
| 3 | 葡萄 | 4 | 20 |
具体步骤
1. (可选但推荐)创建独立产品维度表
避免切片器出现重复产品值,新建一张产品维度表:
产品表 = DISTINCT('你的原始表名'[产品])
在模型视图中,建立原始表与产品表的关系:将原始表的产品字段关联到产品表的产品字段(多对一关系)。
2. 创建筛选度量值
新建DAX度量值,判断当前交易是否包含选中的产品:
交易符合筛选条件 = VAR 选中产品集合 = VALUES('产品表'[产品]) VAR 目标交易编号 = CALCULATETABLE( DISTINCT('你的原始表名'[交易编号]), '你的原始表名'[产品] IN 选中产品集合 ) RETURN IF( ISFILTERED('产品表'[产品]), COUNTROWS(INTERSECT(DISTINCT('你的原始表名'[交易编号]), 目标交易编号)) > 0, TRUE() )
原理:先获取切片器选中的产品,再找出所有包含这些产品的交易编号,最后判断当前行的交易编号是否在目标列表中。未选择任何产品时,返回
TRUE显示所有数据。
3. 应用筛选到视觉对象
- 添加切片器,选择产品表的
产品字段作为筛选依据。 - 添加表格视觉对象,放入原始表的所有列(交易编号、产品、数量、金额等)。
- 在表格的筛选器面板中,找到创建的
交易符合筛选条件度量值,设置为“等于True”。
效果验证
选择切片器中的「香蕉」,表格会自动显示交易编号1和3的所有行,包含苹果、香蕉、葡萄等所有产品的记录,符合需求。
内容的提问来源于stack exchange,提问作者Dipesh Bhambhani
相关产品推荐
相关产品推荐

