PowerBI DAX 度量 - 过滤列必须具有特定值的行
PowerBI DAX measure - Filter rows where column has to have a specific value
我有如下测量
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 行,returns 的值为 3500。如果我选择部门 B1,我希望它到 return 第 3 (500) 行和 A1 行1 和 4 (3000)。
有什么方法可以做到这一点吗?我不能使用 "Edit interactions" 格式,因为此度量将用于使用其他度量的视觉对象。我希望该措施单独负责这种互动。
编辑:如果我只检查我的切片器中的月份 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
table。请尝试替换
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"})
我有如下测量
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 行,returns 的值为 3500。如果我选择部门 B1,我希望它到 return 第 3 (500) 行和 A1 行1 和 4 (3000)。
有什么方法可以做到这一点吗?我不能使用 "Edit interactions" 格式,因为此度量将用于使用其他度量的视觉对象。我希望该措施单独负责这种互动。
编辑:如果我只检查我的切片器中的月份 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
table。请尝试替换
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"})