【问题标题】:How to capture slicer value by DAX measure如何通过 DAX 度量捕获切片器值
【发布时间】:2018-06-19 13:05:57
【问题描述】:

如何在所有情况下通过 DAX 度量捕获切片器值?让我们有样本数据:

+-----------+---------+-------+
| category  | species | units |
+-----------+---------+-------+
| fruit     | apple   |     1 |
| fruit     | banana  |     1 |
| vegetable | carrot  |     1 |
| vegetable | potato  |     1 |
+-----------+---------+-------+

我添加了两个措施:

措施 1:

species selected = SELECTEDVALUE(Table1[species])

措施 2:

IsFiltered = ISFILTERED(Table1[species])

案例 1. 两个切片器中的所有项目都被选中。

案例 2。(有问题的案例)。 Fruits 已选中,Carrots 已选中(当我们解开切片器交互时,这是可能的)。

如果我们从一个切片机中选择 fruit 类别并从另一个切片机中选择 carrot 类别,则会出现问题。这组物品显然是空的。然而,绝对从物种中选择了carrot,并通过评估为 True 的 IsFiltered 度量进行确认。有没有办法在 DAX 度量中捕获该值?

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    由于categoryspecies 切片器都来自同一个表上的列,如果您同时选择了fruitcarrot,那么生成的表是空的并且任何度量(除了同时删除两者的表)过滤器)因此将使用空白。您不能同时应用两个过滤器并期望它们独立运行(即使两个切片器视觉效果没有交叉过滤)。

    如果您不希望您的species selected 度量受到category 的影响,最简单的做法是关闭从category 切片器到包含的视觉对象的过滤(在格式> 编辑交互下) species selected.

    但这并不总是您想要的,因此另一种可能性是为species 切片器创建一个新表,该表与Table1 没有过滤关系。如果您需要这样做,这将允许您单独使用切片器选择。 (当我希望切片器表现得更像参数而不是过滤器时,我肯定必须这样做。)


    编辑:按照我的建议,在引用Table1 的查询编辑器中创建一个新的Table2,删除除species 之外的所有列,并在必要时删除重复项。您现在应该有一个包含独特物种列表的单列表。

    当您关闭并应用时,Power BI 可能会自动在两个表之间创建关系,但您需要确保它正是您想要的。它必须是具有单个过滤器方向的多对一关系。

    完成此操作后,您需要将 Table1[species] 切片器替换为 Table2[species] 切片器,并在必要时更改度量中的引用。

    【讨论】:

    • 因此您建议添加仅包含物种列的 Table2。物种切片器将过滤两个表。但是过滤后 Table1 会是空的,而 Table2 仍然会包含胡萝卜,因为它不会有类别列。
    • 难道没有办法为水果(比如苹果)和蔬菜(比如胡萝卜)设置默认的物种切片器值吗?
    • 如何追求为从切片机(物种)构建动态 dax 表的逻辑,其中 row_no 为 1、2、3 ... 并动态分配标签,例如为 1 的苹果和其他列表。如果从主切片器中选择蔬菜,则 row_no 1 将动态分配胡萝卜。问题是是否可以从切片器中选择 1 并在该位置显示另一个值。
    • 对不起,我不太听从你的建议。
    猜你喜欢
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    相关资源
    最近更新 更多