PowerBI DAX 度量 - 筛选列必须具有特定值的行

标签 powerbi dax

我有一个如下的措施

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

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

关系

enter image description here

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

enter image description here

最佳答案

我相信正在发生的事情是您的 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 表。请尝试更换

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/

相关文章:

powerbi - 计算 Power Bi 中的行差异

powerbi - OLE DB 或 ODBC 错误 : We cannot convert the value null to type Logical

charts - 如何将颜色饱和度分布的图例添加到 power bi 填充 map 图表中

powerbi - 持续时间错误地转换为日期时间类型

json - 使用 Power BI 使用的 JSON Web API 进行 AAD 身份验证

powerpivot - 在 Powerpivot 中计算时间段时测量为日期变量

powerbi - 在 Power BI 中的非相关表之间进行计算

powerbi - Power BI 在 LIKE 子句上连接两个表

excel - DAX 或 Excel 查询

sql-server - Excel Power Query - 将日期时间从 UTC 转换为本地时间