基于另一个切片器选择的 Power BI 切片器的初始值

Initial value of Power BI slicer based on another slicer choice

我想在较高类别切片器值发生变化时设置较低类别切片器的初始值。假设我们有这个数据:

+----------------+----------------+-------+
| 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/

为了方便起见,这里有一个开始 table 代码:

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"

我认为目前默认切片器无法做到这一点,因为无法以编程方式设置切片器选择,但 this related idea 是目前 "under review" 的一个流行请求。

您可以使用书签伪装它,但您需要使用设置其他切片器状态的书签图标有效地构建一个 'Parent' 切片器

这是它的样子:

应该隐藏顶部的 'Parent' 切片器。

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

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

您实际上可以放弃图标并使用 'Fruit' 和 'Vegetable' 文本。这是它的样子:

未选择:

点击了水果

点击了蔬菜

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

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

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