3

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

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

我添加了两个措施:

措施一:

species selected = SELECTEDVALUE(Table1[species])

措施2:

IsFiltered = ISFILTERED(Table1[species])

案例 1. 两个切片器中的所有项目都被选中。 在此处输入图像描述

案例2.(有问题的案例)。选择水果和选择胡萝卜(当我们解开切片器交互时,这是可能的)。 在此处输入图像描述

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

4

1 回答 1

2

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

如果您不希望您的species selected度量受到影响category,最简单的做法是关闭从category切片器到包含species selected.

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


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

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

表关系

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

于 2018-06-19T20:47:56.653 回答