为 Power BI 中的多个相似列创建单个切片器
Create single slicer for multiple similar columns in Power BI
在 Power BI 中,我有一个清单,每个产品都有多个可能的所有者。
示例数据:
产品
主要所有者
备用所有者
小部件 1
弗兰克
莎莉
小部件 2
莎莉
约翰
小部件 3
约翰
小部件 4
弗兰克
安娜
期望的结果: 在 table 中显示完整库存,并提供用户可以用来过滤 table 的切片器。 The slicer would be a list of all owners (both primary and backup), and when a user is selected the table would display any row where that user is present (whether they are present in the Primary Owner or Backup Owner field .
对于上面的示例,如果您按 John 进行过滤,您将看到小部件 2 和小部件 3,而按 Sally 进行过滤将显示小部件 1 和小部件 2。
失败尝试: 使用两个不同的切片器对此不起作用,因为它会隐藏另一列中的数据。如果 John 将自己过滤为主要所有者,那么他将不再看到他是次要所有者的 Widget 2 的数据。将 Primary 和 Secondary 连接到一个连接列中也不起作用,因为我会得到像 Frank|Sally 或 Sally|John 这样的项目,并且组合数据作为切片器中的选项对用户来说没有意义。
最后,我尝试创建一个单独的 table,将所有主要所有者和次要所有者的组合列表包含到一个列中,然后将其与主要 table 相关联,但是我不能有两个活动的一次关系。我知道 Measures 可以通过 Calculate 访问非活动关系,但我不知道如何(或者如果有可能)从中创建切片器。
编辑:在重新阅读您的 post 之后,计算一个新的 table 来处理这个问题可能是有意义的。 table 将有两列,Product
和 Person
(在您的情况下为 Owner
):
Slicer Table =
UNION (
SELECTCOLUMNS (
FILTER( 'Table' , 'Table'[Primary Owner] <> BLANK() ) ,
"Product" , 'Table'[Product] ,
"Person" , 'Table'[Primary Owner]
),
SELECTCOLUMNS (
FILTER ( 'Table' , 'Table'[Backup Owner] <> BLANK() ) ,
"Product" , 'Table'[Product] ,
"Person" , 'Table'[Backup Owner]
)
)
计算完后,在 Product
列之间创建这些 table 之间的关系。由于这纯粹是为了过滤感兴趣的人的 table,使其成为多对多并具有 Slicer Table
过滤器 Table
:
使用 Slicer Table
中的 Person
列创建切片器并测试功能:
此方法对两列非常有效!我正在尝试做同样的事情,但有 8 个不同的列(家庭单位按行,个人及其保险名称按列)
示例:
编号 |消费者1 | C1 保险 |消费者2 | C2保险等...
我 运行 遇到的问题是,在第二个切片器列并集之后,计数开始变得不正确,即使是之前正确计数的列也是如此。对此有何建议?
在 Power BI 中,我有一个清单,每个产品都有多个可能的所有者。
示例数据:
产品 | 主要所有者 | 备用所有者 |
---|---|---|
小部件 1 | 弗兰克 | 莎莉 |
小部件 2 | 莎莉 | 约翰 |
小部件 3 | 约翰 | |
小部件 4 | 弗兰克 | 安娜 |
期望的结果: 在 table 中显示完整库存,并提供用户可以用来过滤 table 的切片器。 The slicer would be a list of all owners (both primary and backup), and when a user is selected the table would display any row where that user is present (whether they are present in the Primary Owner or Backup Owner field .
对于上面的示例,如果您按 John 进行过滤,您将看到小部件 2 和小部件 3,而按 Sally 进行过滤将显示小部件 1 和小部件 2。
失败尝试: 使用两个不同的切片器对此不起作用,因为它会隐藏另一列中的数据。如果 John 将自己过滤为主要所有者,那么他将不再看到他是次要所有者的 Widget 2 的数据。将 Primary 和 Secondary 连接到一个连接列中也不起作用,因为我会得到像 Frank|Sally 或 Sally|John 这样的项目,并且组合数据作为切片器中的选项对用户来说没有意义。
最后,我尝试创建一个单独的 table,将所有主要所有者和次要所有者的组合列表包含到一个列中,然后将其与主要 table 相关联,但是我不能有两个活动的一次关系。我知道 Measures 可以通过 Calculate 访问非活动关系,但我不知道如何(或者如果有可能)从中创建切片器。
编辑:在重新阅读您的 post 之后,计算一个新的 table 来处理这个问题可能是有意义的。 table 将有两列,Product
和 Person
(在您的情况下为 Owner
):
Slicer Table =
UNION (
SELECTCOLUMNS (
FILTER( 'Table' , 'Table'[Primary Owner] <> BLANK() ) ,
"Product" , 'Table'[Product] ,
"Person" , 'Table'[Primary Owner]
),
SELECTCOLUMNS (
FILTER ( 'Table' , 'Table'[Backup Owner] <> BLANK() ) ,
"Product" , 'Table'[Product] ,
"Person" , 'Table'[Backup Owner]
)
)
计算完后,在 Product
列之间创建这些 table 之间的关系。由于这纯粹是为了过滤感兴趣的人的 table,使其成为多对多并具有 Slicer Table
过滤器 Table
:
使用 Slicer Table
中的 Person
列创建切片器并测试功能:
此方法对两列非常有效!我正在尝试做同样的事情,但有 8 个不同的列(家庭单位按行,个人及其保险名称按列)
示例:
编号 |消费者1 | C1 保险 |消费者2 | C2保险等...
我 运行 遇到的问题是,在第二个切片器列并集之后,计数开始变得不正确,即使是之前正确计数的列也是如此。对此有何建议?