PowerBI DAX度量 - 过滤列必须具有特定值的行

时间:2018-01-18 20:17:01

标签: 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

1 个答案:

答案 0 :(得分:2)

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

有多种方法可以解决这个问题。您可以在ALLSELECTED内使用ALLEXCEPTFILTER()来获得您想要的内容,但您也可以这样做:

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