在 Power BI 中过滤关联值

Filtering associated values in Power BI

假设您有一个庞大的数据集,其中包含学生和他们就读的 classes。我想创建一个过滤器,当您过滤学生时,只显示他们参加的 classes。但是,我也想让其他参加那些间接过滤的学生 classes.

例子

数据集:

Pupil ID Class ID
1 1
1 2
2 1
3 1
3 4
4 4
etc. etc

所以当我过滤 学生 ID = 1 时,输出应该是:

Pupil ID Class ID
1 1
1 2
2 1
3 1
etc. etc

目前我的思路是每个class是一个组,每个组都是重叠的。通过选择学生 ID,您间接选择了一组组。

有没有人知道如何避免删除由选定(过滤)学生间接选择的组中的未选定学生?

注意:我已经构建了数据模型,所以有DIM_Pupil和DIM_Class表。

为了简单起见,假设上面示例中的数据都存在于一个 table (Table) 中。问题是,如果您根据 Table[Pupil ID] 进行过滤,那么您实际上是在告诉 Power BI,您唯一想看到的是具有选定 Pupil ID 的行。

要解决此问题,您需要创建一个新的 table 并以您可以根据需要进行过滤的方式关联它。在你的情况下,创建一个新的 table(例如 Filter),它看起来与你原来的 Table.然后,在 Power BI 的模型选项卡中,以 many-to-many 关系将 Table[Class ID] 关联到过滤器 [Class ID] .

Table

Pupil ID Class ID
1 1
1 2
2 1
3 1
3 4
4 4
etc. etc

过滤器

Pupil ID Class ID
1 1
1 2
2 1
3 1
3 4
4 4
etc. etc

Class ID <--> Class ID

现在您需要做的就是使用 Table table 显示数据并使用 Filter[学生 ID] 列。这会给你想要的结果。

请注意,此解决方案需要根据您的实际 table 结构略作调整,但概念保持不变。