PowerBI"包含"切片机

时间:2017-12-08 21:54:08

标签: powerbi

我有一个表,其列是每行的分号分隔的标记列表。我想创建一个切片器,允许我做一个"包含"在标签列上输入切片。

示例记录:

Title       | Tags
foobar      | thingA; thingB
barfoo      | thingC; thingA; otherThing

切片机

thingA |  thingB | thingC  

选择" thingA"应该导致显示两行。

我可以看到如何创建一个新查询以使用不同的操作填充切片器的值,但现在如何创建一个回到原始表的关系以允许我切片。

1 个答案:

答案 0 :(得分:2)

解决此问题的一种方法是使用记录表的第二个不透明版本。

步骤1:创建一个未公开的记录表

您可以使用查询编辑器取消标记。

    转换工具栏上的
  1. 按分隔符拆分列(具体来说,将标记列拆分为";"的分隔符)。
  2. 选择产生的多个标签列,然后选择格式> 修剪以摆脱任何多余的前导或尾随空格,这可能会搞砸。
  3. 选择多个标签列,然后选择取消透视列
  4. 结果应如下所示:

    Title  | Tag
    -------|-----------
    foobar | thingA
    foobar | thingB
    barfoo | thingC
    barfoo | thingA
    barfoo | otherThing
    

    只要你达到最终结果,你到达那里并不重要。

    请注意,此表格在您的问题中的原始表格的添加中 - 它不是替代品。

    第2步:关联表格

    您的 Unpivoted_Records 表应该与您的切片器表(标签上的单个/多对一)以及原始记录表(标题上的多对一)有关系。

    神奇的成分是Unpivoted_Records和Records之间的关系应该具有 Both 的交叉过滤方向(双击该行以更改它)。

    Image shows the Edit Relationship dialog box, with Cross-Filter direction of both highlighted.

    两者都不是默认值。这意味着应用于 Unpivoted_Records 的任何过滤器都会向后传播到原始记录表,也会过滤该表。

    Picture shows 3 tables: Slicer, Records, and Records_Unpivoted. Slicer & Records are both joined with a line to Records_Unpivoted, but not to each other. The line between Records and Records_Unpvioted has a double arrow. 你的人际关系应该如何看待的图表:注意圆圈区域,表明交叉过滤方向是"两者都是"

    第3步:切片

    此时,您可以在视觉中显示Records表以及Slicer表。在切片器上选择一个值时,它将过滤Records表。 您无需在任何位置显示不显示的记录表,因为切片器选项会过滤到原始记录表。

    Picture of a tag slicer, with ThingB selected. The Records table is filtered to foobar.

    关于交叉过滤方向的说​​明

    两者的交叉滤波器关系可能会产生副作用,我无法根据您的实际数据模型预测这些副作用。它不应该在这个特定的例子中,因为Records_Unpivoted只是为了促进切片器表和Records表之间的关系而存在。但是,如果你在其他地方使用两种关系,并注意切片和&过滤,尝试将关系转回单一,以查看交叉过滤方向是否是根本原因。