我有一个如下的措施
CALCULATE(SUM(Sales[Value]); FILTER(ALL(Sales); Sales[Month] IN {"01"; "02"}))
在切片器上过滤时,例如Department
Sales 值没有变化,它始终停留在 3500。即使 Sales[Month] 列只能是 01 02
,是否有办法过滤行
下面是两个表的一对多关系。
员工
Employee(Unique) Department
Cosmo A1
Kramer A1
Kessler B1
销售
Employee Month Value
Kramer 01 2500
Kramer 03 5000
Kessler 01 500
Cosmo 02 500
使用该度量给我第 1,3 行和第 4 行,并返回值 3500。如果我选择部门 B1,我希望它返回第 3 行 (500) 和 A1 第 1 行和第 4 行 (3000)。
有什么办法可以实现这一点吗?我无法在格式中使用“编辑交互”,因为此度量将在使用其他度量的视觉对象中使用。我希望该措施单独负责这种交互。
编辑:如果我仅在切片器中检查月份 03
,则度量值仍应显示月份 01
和 02
的值并继续调整到部门切片器。
Edit2:下面是我的问题的一些图片:
关系
下图显示 Value 和 1&2_Target 均为 500。而只有 Value 应显示 500,1&2_Target 应为 3000。我希望该图表简单地忽略 dax 公式的日期切片器。
最佳答案
我相信正在发生的事情是您的 ALL(Sales)
部分正在从切片器中剥离部门过滤器上下文。
有多种方法可以解决此问题。您可能可以在 FILTER()
中使用 ALLSELECTED
或 ALLEXCEPT
来获得您想要的内容,但您也可以简单地执行以下操作:
= CALCULATE(SUM(Sales[Value]); Sales[Month] IN {"01"; "02"})
在这种情况下,您只需将 [Month]
过滤器上下文替换为您想要的内容,而不触及 [Department]
的过滤器上下文。
编辑:如果上述方法不起作用,请尝试重置 Sales[Month]
筛选器上下文,然后应用特定筛选器,如下所示:
= CALCULATE(SUM(Sales[Value]); ALL(Sales[Month]); Sales[Month] IN {"01"; "02"})
如果您的切片器中有几个月,这些将被传递到过滤器上下文。 ALL()
函数清除 [Month]
的过滤器上下文,然后应用您想要的特定过滤器上下文。
编辑 2:我看到您有一个Date
表。请尝试更换
1&2_Target = CALCULATE(SUM(Sales[Value]), ALL(Sales[Date]), Sales[Date] IN {"1", "2"})
有了这个
1&2_Target = CALCULATE(SUM(Sales[Value]), ALL('Date'[Date]), Sales[Date] IN {"1", "2"})
关于PowerBI DAX 度量 - 筛选列必须具有特定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48329623/