首页 文章

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

提问于
浏览
1

我有一个像下面这样的措施

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 的值,并继续调整到部门切片器 .

编辑2:我在下面有一些问题的照片:

关系

enter image description here

下面的图像显示值和1和2_Target都是500.而只有值应该显示500和1和2_Target应该是3000.我希望图表只是忽略日期切片器的dax公式 .

enter image description here

1 回答

  • 2

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

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

    = CALCULATE(SUM(Sales[Value]); Sales[Month] IN {"01"; "02"})
    

    在这种情况下,您只是将 [Month] 过滤器上下文替换为您想要的内容而不是触及 [Department] 的过滤器上下文 .


    Edit: 如果以上操作无效,请尝试重置 Sales[Month] 过滤器上下文,然后按如下方式应用特定过滤器:

    = CALCULATE(SUM(Sales[Value]); ALL(Sales[Month]); Sales[Month] IN {"01"; "02"})
    

    如果切片器中有月份,则会将这些月传递给过滤器上下文 . ALL() 函数清除 [Month] 的过滤器上下文,然后应用您想要的特定过滤器上下文 .


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

相关问题