【问题标题】:PowerBI "contains" slicerPowerBI“包含”切片器
【发布时间】:2018-03-13 18:57:48
【问题描述】:

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

示例记录:

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

切片器

thingA |  thingB | thingC  

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

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

【问题讨论】:

    标签: powerbi


    【解决方案1】:

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

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

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

    1. 转换工具栏上的按分隔符拆分列(具体来说,用分隔符“;”拆分标签列)。
    2. 选择生成的多个标签列,然后选择Format > Trim 删除任何可能搞砸的多余的前导或尾随空格。
    3. 选择多个标签列,然后选择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 关系并注意到切片和过滤的异常情况,请尝试将关系转回单一关系以查看交叉过滤器方向是否是根本原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      相关资源
      最近更新 更多