如何在所有情况下都通过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])
情况2。(有问题的情况)。选择了水果和胡萝卜(当我们取消切片器的交互作用时可能)。
如果我们从一个切片机中选择水果类别,而从另一个切片机中选择胡萝卜,则会出现问题。这组项目显然是空的。但是,肯定已从物种中选择了胡萝卜,并且已通过IsFiltered度量将其确认为真。有没有办法在DAX度量中捕获该值?
答案 0 :(得分:1)
由于category
和species
切片器均来自同一表的列,因此,如果同时选择了fruit
和carrot
,则结果表为空且因此,任何措施(除去两个过滤器的措施除外)都将与空白配合使用。您不能同时使用两个滤镜并期望它们独立运行(即使两个切片器的视觉效果没有交叉滤镜)。
如果您不希望species selected
的度量受到category
的影响,最简单的方法是关闭{{1}中的过滤(在“格式”>“编辑交互”下) }切片器包含category
的视觉对象。
这并不总是您想要的,因此另一种可能性是为species selected
切片器创建一个新表,该表没有来自species
的过滤关系。如果需要的话,这将允许您分别使用切片器选项。 (在我希望切片器表现得更像参数而不是过滤器之前,我绝对必须这样做。)
编辑:要执行我的建议,请在查询编辑器中创建一个引用Table1
的新Table2
,删除除Table1
以外的所有列,然后删除必要时重复。现在,您应该具有一个包含唯一物种列表的单列表。
关闭并应用时,Power BI可能会自动在两个表之间创建一个关系,但是您需要确保它正是您想要的。单个过滤器方向必须是多对一的关系。
完成此操作后,您需要将species
切片器替换为Table1[species]
切片器,并在必要时更改度量中的引用。