PowerBI“包含”切片器

And*_*ear 1 powerbi

我有一个表,其中有一列是每行的分号分隔的标签列表。我想创建一个切片器,允许我在标签列上执行“包含”类型切片。

记录示例:

Title       | Tags
foobar      | thingA; thingB
barfoo      | thingC; thingA; otherThing
Run Code Online (Sandbox Code Playgroud)

切片机

thingA |  thingB | thingC  
Run Code Online (Sandbox Code Playgroud)

选择“thingA”应该会显示两行。

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

Leo*_*ard 5

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

第 1 步:创建未透视记录表

您可以使用查询编辑器取消透视标签。

  1. 在转换工具栏上按分隔符拆分列(具体来说,按分隔符“;”拆分标签列)。
  2. 选择生成的多个标签列,然后选择“格式” > “修剪”以删除任何可能造成混乱的多余的前导或尾随空格。
  3. 选择多个“标签”列,然后选择“逆透视列”

结果应该是这样的:

Title  | Tag
-------|-----------
foobar | thingA
foobar | thingB
barfoo | thingC
barfoo | thingA
barfoo | otherThing
Run Code Online (Sandbox Code Playgroud)

只要你达到了最终的结果,如何到达并不重要。

请注意,此表是您问题中原始表的补充- 它不是替代品。

第 2 步:关联表格

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

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

该图显示了“编辑关系”对话框,其中突出显示了两者的“交叉过滤器”方向。

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

图片显示了 3 个表:Slicer、Records 和 Records_Unpivoted。 切片器和记录都通过一条线连接到 Records_Unpivoted,但彼此不连接。 Records 和 Records_Unpvioted 之间的线有一个双箭头。 您的关系应该是什么样子的图表:注意圆圈区域,表明交叉过滤器方向是“两者”

第三步:切掉

此时,您可以在视觉对象中显示记录表以及切片器表。当您在切片器上选择一个值时,它将过滤记录表。您不需要在任何地方显示未转置的记录表,因为切片器选择会筛选到原始记录表。

标签切片器的图片,其中选择了 ThingB。 Records 表被过滤到 foobar。

关于交叉过滤器方向的注意事项

两者的跨过滤器关系可能会产生我无法预测的副作用,具体取决于您的实际数据模型。在这个特定的示例中不应该出现这种情况,因为 Records_Unpivoted 的存在只是为了促进切片器表和 Records 表之间的关系。但是,如果您在其他地方使用“两者”关系,并注意到切片和过滤发生奇怪的情况,请尝试将关系恢复为单一关系,以查看交叉过滤器方向是否是根本原因。