解决此问题的一种方法是使用记录表的第二个非透视版本。
第 1 步:创建非透视记录表
您可以使用查询编辑器取消透视您的标签。
-
转换工具栏上的按分隔符拆分列(具体来说,用分隔符“;”拆分标签列)。
- 选择生成的多个标签列,然后选择Format > Trim 删除任何可能搞砸的多余的前导或尾随空格。
- 选择多个标签列,然后选择Unpivot Columns。
结果应该是这样的:
Title | Tag
-------|-----------
foobar | thingA
foobar | thingB
barfoo | thingC
barfoo | thingA
barfoo | otherThing
只要你达到了最终的结果,你如何到达那里并不重要。
请注意,此表格是您问题中原始表格的补充 - 它不是替代品。
第 2 步:关联您的表格
您的 Unpivoted_Records 表应该与您的 Slicer 表(标签上的单/多对一)以及您的原始记录表(标题上的多对一)有关系。
神奇的成分是Unpivoted_Records和Records之间的关系应该有一个Both的交叉过滤方向(双击该行可以改变它)。
两者都不是默认值。这意味着应用于 Unpivoted_Records 的任何过滤器都会向后传播到原始 Records 表,同时过滤该表。
你的关系应该是什么样子的图表:注意圆圈区域,表示交叉过滤器方向是“Both”
第 3 步:切片
此时,您可以在视觉对象中显示 Records 表以及 Slicer 表。当您在切片器上选择一个值时,它将过滤记录表。 您不需要在任何地方显示未透视的 Records 表,因为切片器选择会过滤到您的原始 Records 表。
交叉过滤器方向注意事项
两者的交叉过滤关系可能会产生我无法预料的副作用,具体取决于您的实际数据模型。在这个特定的例子中不应该,因为 Records_Unpivoted 的存在只是为了促进切片器表和 Records 表之间的关系。但是,如果您在其他地方使用 Both 关系并注意到切片和过滤的异常情况,请尝试将关系转回单一关系以查看交叉过滤器方向是否是根本原因。