1

每当上类别切片器值发生变化时,我想设置下类别切片器的初始值。假设我们有这些数据:

+----------------+----------------+-------+
| upper category | lower category | units |
+----------------+----------------+-------+
| fruit          | apple          |     1 |
| fruit          | banana         |     1 |
| vegetable      | carrot         |     1 |
| vegetable      | potato         |     1 |
+----------------+----------------+-------+

我们向报告中添加了两个切片器视觉效果。它看起来像这样: 在此处输入图像描述

我想要的结果是这样的:每当用户fruit从上层类别中选择时,然后apple从下层类别切片器中选择。所以我们最终得到了这个: 在此处输入图像描述

现在我们vegetable在上类切片器中点击,并自动carrot被选为下类切片器的初始过滤值。所以我们最终得到了这个: 在此处输入图像描述

概括:

  1. 上类别切片器显示所有项目,无论下类别切片器选择如何。
  2. 较低的类别切片器仅显示适用的项目,基于较高的类别切片器选择。
  3. 从上类切片器中选择项目后,总是选择下类切片器的一个初始适用值。

谷歌搜索后,我发现这是解决方案的一个有希望的线索: https ://www.kasperonbi.com/embed-your-power-bi-report-with-predefined-filters/

我不必坚持切片机视觉。它可能是别的东西。我想要的是保持这个功能。我可以想象它可以通过这里表达的概念用 R visual 来完成:https ://dataveld.com/2016/02/10/r-visuals-in-power-bi-beyond-plots/

为方便起见,这是一个起始表代码:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSisqzSxR0lFKLCjISQXShkqxOgjRpMQ8IIQLl6Wmp5YkJoEVJicWFeWXYJUqyC9JLMmHSMUCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"upper category" = _t, #"lower category" = _t, units = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"upper category", type text}, {"lower category", type text}, {"units", Int64.Type}})
in
    #"Changed Type"
4

2 回答 2

2

我认为默认切片器目前无法实现这一点,因为无法以编程方式设置切片器选择,但这个相关想法是目前“正在审查”的一个流行请求。

于 2018-08-13T15:08:51.093 回答
2

您可以使用书签来伪造它,但您需要使用设置其他切片器状态的书签图标有效地构建“父”切片器

看起来是这样的:

在此处输入图像描述

顶部的“父”切片器应该被隐藏。

如果我单击 Fruit 下的 i 图标,会发生以下情况:

在此处输入图像描述

...如果我单击另一个书签,会发生以下情况:

在此处输入图像描述

您实际上可以放弃图标并使用“水果”和“蔬菜”文本。看起来是这样的:

未选择任何内容:

在此处输入图像描述

水果点击

在此处输入图像描述

蔬菜点击

在此处输入图像描述

...尽管实际上您可能需要将假切片器项目隔得更远,因为底部的标题栏可能会导致顶部的交互性问题,即使您看不到它。这是编辑模式下的图片,所以你知道我的意思:

在此处输入图像描述

此外,我发现“Pin Visual”提示很烦人,而且(还)没有办法将其关闭:

在此处输入图像描述

您可以变得更漂亮,并具有某种视觉效果,以某种方式突出显示假切片器中的哪个项目被选中。但不利的一面是,这种方法不允许您处理切片器项目的动态列表......您必须提前设置每个。

于 2018-08-13T22:49:37.833 回答