使用切片器 Power BI 突出显示

Highlighting with slicer Power BI

我有一个具有不同视觉效果的仪表板。 数据由保险公司的不同值组成。 我希望我的 slicers/filters 不过滤所有数据,而是仅突出显示所选公司。

例如,在我的切片器中,我选择保险 ABN。 我不想只在视觉效果中向我展示 ABN 的价值,我希望所有其他值仍然可见,并且 ABN 的价值在视觉效果中突出显示。

有人知道怎么做吗?

您可以使用 conditional formatting 来实现。假设我们将背景颜色更改为 "highlight" 一行(准确地说是单元格)。

首先,我们需要一个切片器,它将而不是过滤我们的数据。我们可以通过复制源 table、删除不必要的列并确保源和副本之间没有关系来做到这一点。因此,如果我们有一个源 table,名为 Table,如下所示:

右击它 select Duplicate:

然后右键单击要保留的列的标题,然后 select Remove Other Columns 仅获取公司名称列表(您也可以删除重复项,但这不是必需的)。然后在模型中删除 tables:

之间的关系

现在您可以放置​​一个 table 来显示您数据源中的公司名称和销售额,以及一个来自副本 table 的公司名称切片器。此时 selecting 切片器中的值不应影响 table.

现在您需要捕获切片器的值并将其用于度量,这将确定是否突出显示当前行。您可以为此使用 SELECTEDVALUE,但请注意,只有当切片器中有一个 selected 时,它才会给您一个值。如果你想支持超过一家公司的高亮显示,那就有点复杂了。

在源 table 中进行新测量,如下所示:

Measure = IF(HASONEVALUE('Table (2)'[Company name]);
    IF(SELECTEDVALUE('Table (2)'[Company name]) = MAX('Table'[Company name]); 1; 0);
    IF(ISFILTERED('Table (2)'[Company name]) && COUNTROWS(FILTER('Table (2)'; 'Table (2)'[Company name] = MAX('Table'[Company name]))); 1; 0))

如果切片器中只有一个值 selected(参见 HASONEVALUE),那么我们的度量将 return 1(突出显示)或 0(不显示) , 将其与当前行进行比较。

否则(即切片器中没有selection,或者有2个或更多公司selected),那么我们将查看过滤后的公司列表(Table (2)) - 如果它包含当前行,则为 1(突出显示),否则为 0(不突出显示)。但我们也会处理切片器中没有值 selected 的情况。在这种情况下,列表将包含所有公司,即所有行都将突出显示。 ISFILTERED 来了。最后,如果列表被过滤并且当前行存在于过滤列表中,则为 1(高亮),否则为 0(不高亮)。

现在,您需要使用此措施来更改列的背景 - 右键单击​​ table 和 select Conditional formatting -> Background color 中的每一列:

然后按规则格式化,其中 Measure >= 1 像这样:

现在,当切片器中没有 selection 时,table 中没有突出显示的行:

如果您select一家公司,则突出显示:

如果有多个公司,它也有效 select编辑:

感谢 Andrey 的逐步解释,这非常有帮助。我想跟进一个进一步的问题,特别是关于下面的评论。

"You can use SELECTEDVALUE for that, but note that it will give you a value only if there is a one selected in the slicer. If you want to support highlighting of more than one company, it gets a bit more complicated."

在我的模型中,我将第三个 table (Table (3)) 链接到 Table (2) 与 [=20= 的多对一关系] (2).因此,当我单击 Table (3) 时,它将过滤 Table (2),它充当 Table (1) 的切片器。

当Table(2)中只过滤了1个值时,它有条件地格式化Table(1)中的单元格。但是,当在Table(2)中筛选出超过1个值时,条件格式化失败。

因为我希望避免在切片器中手动选择多个值 (Table (2)),所以我想知道是否有 SELECTEDVALUE 的解决方法,以便它能够在我过滤时有条件地格式化Table (2) 中的值超过 1 个。