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,该度量仍应显示月份 0102 的值,并继续调整到部门切片器。

Edit2:下面是我的问题的一些图片:

人际关系

下图显示 Value 和 1&2_Target 都是 500。而只有 Value 应该显示 500,而 1&2_Target 应该是 3000。我希望图表简单地忽略日期切片器通过dax公式。

我相信发生的事情是您的 ALL(Sales) 部分正在从切片器中剥离部门过滤器上下文。

有多种方法可以解决此问题。您可以在 FILTER() 中使用 ALLSELECTEDALLEXCEPT 来获得您想要的内容,但您也可以简单地这样做:

= 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"})