FILTER内部的子条件(使用不相关的表)

时间:2019-05-15 19:48:21

标签: filter powerbi dax

我有以下两个表Rec和DD,它们没有任何关系:

具有两个字段的表Rec:

Date        col1
-------     -----
1/1/2019    1
12/12/2018  2
15/5/2019   3
1/1/2019    4
12/12/2018  5
15/5/2019   6

具有两个字段的表DD:

Date        Flag
-------     -----
1/1/2019    true
12/12/2018  false
15/5/2019   false

我想找出Rec [col1]的和,其中Rec [Date] = DD [Date]和DD [Flag]为TRUE。此布尔型字段为TRUE时,应该只有一个斜率。

我在想类似下面的内容,但不确定如何完成它:

calculate(
    SUM(Rec[col1])
    , filter(Rec, Rec[Date] = { date from DD where Flag is TRUE   }
    )
)

也尝试了以下方法,但效果不佳:

var sd= CALCULATE(max(dd[date]), filter(DD, dd[Flag] = TRUE()))
return

    calculate(
        SUM(Rec[col1])
        , filter(Rec, Rec[Date] = sd
        )
    )

编辑1:

我应该提到Flag是一项措施:

Flag = if( max(DD[Date]) = SELECTEDVALUE(SlicerV[Date]),
    True,
    FALSE
)

编辑2

我正在使用通过切片器选择的日期来给我所需的日期。

1 个答案:

答案 0 :(得分:0)

我找到了解决此问题的方法。 我创建了一个MEASURE来代替CALCULATED列,它可以像

一样简单
Measure = sum(rec(col1])) 

这会自动应用FILTER CONTEXT。

因此,我们吸取了一个教训:“首先,不是尝试计算列,而是尝试找出是否可以通过度量来完成”。