我有一个有不同视觉效果的仪表盘。数据由保险公司的不同价值组成。我希望我的切片/过滤器不过滤所有数据,而只是突出显示选定的公司。
例如,在我的切片机,我选择保险荷兰银行。我不只是在我的可视化中向我展示ABN的价值,我希望所有其他的值仍然是可见的,ABN的值在视觉中被突出显示。
有人知道怎么做吗?
发布于 2020-01-27 15:01:15
您可以使用条件格式来实现这一点。让我们说,我们将改变背景色“高亮”一行(或细胞,准确地说)。
首先,我们需要一个切片器,它将而不是过滤我们的数据。我们可以通过复制源表,删除不必要的列,并确保源和副本之间没有关系来做到这一点。因此,如果我们有一个名为Table
的源表,如下所示:
右键单击它并选择Duplicate
然后右键单击要保留的列的标题,并选择Remove Other Columns
来获得公司名称的列表(您也可以删除重复的名称,但这不是必需的)。然后在模型中删除两个表之间的关系:
现在,您可以从数据源中放置一个显示公司名称和销售额的表,以及从重复表中放置一个公司名称切片器。此时,在切割器中选择值不应影响表。
现在您需要捕获切片器的值并在度量中使用它,这将确定当前行是否被高亮显示。您可以为此使用分水岭,但请注意,只有在切片器中选择了一个值时,它才会给出一个值。如果您想支持多家公司的突出显示,它会变得更加复杂。
在源表中进行新的度量,如下所示:
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))
如果切片器中只选择了一个值(请参见哈松瓦鲁),那么我们的度量将返回1(突出显示)或0(不要),并将其与当前行进行比较。
否则(即切割器中没有选择,或者有两个或多个公司被选中),那么我们将查看过滤后的公司列表(Table (2)
) -如果它包含当前行,那么1(突出显示),否则0(不)。但是我们也将处理这样的情况,在切割机中没有选择值。在这种情况下,列表将包含所有公司,即所有行都将高亮显示。ISFILTERED来了。最后,如果对列表进行了筛选,并且筛选后的列表中存在当前行,则1(突出显示),否则为0(不)。
现在,您需要使用此度量来更改列的背景--右键单击表中的每个列,然后选择Conditional formatting
-> Background color
。
然后按规则格式化,其中度量>= 1如下所示:
现在,当切割器中没有选择时,表中没有突出显示的行:
如果您选择一家公司,则会突出显示:
如果有多家公司被选中,它也能发挥作用:
发布于 2020-02-04 18:52:32
谢谢安德烈的一步一步的解释,这是难以置信的帮助。我还想提出一个进一步的问题,特别是关于下面的评论。
“您可以使用SELECTEDVALUE,但请注意,只有在切片机中选择了一个值,它才会给出一个值。如果您想支持多家公司的高亮显示,它会变得更复杂一些。”
在我的模型中,我将第三个表(表(3))和表(2)与表(2)的多到一个关系联系起来。因此,当我单击表(3)时,它将过滤表(2),它充当表(1)的切片器。
当表(2)中只有一个值被过滤时,它会有条件地格式化表(1)中的单元格。但是,当表(2)中筛选的值超过一个时,条件格式设置将失败。
由于我希望避免手动选择切片器中的多个值(表(2)),我想知道SELECTEDVALUE是否有解决办法,以便当我在表(2)中筛选超过一个值时,它能够有条件地格式化。
https://stackoverflow.com/questions/59930844
复制相似问题