如果值每月出现一次以上,则进行标记-DAX PowerBI中的if语句分组

时间:2019-05-16 09:00:45

标签: if-statement group-by powerbi dax

我有以下示例数据。

 YYYY_MM    Reg    Test
 2019_01    ABC     1
 2019_01    ABC     0
 2019_01    DFG     0
 2019_02    ABC     0
 2019_02    ABC     0
 2019_02    DFG     0
 2019_02    DFG     1
 2019_02    DFG     1
 2019_02    DFG     0
 2019_02    HIJ     0

我要在每个唯一的YYYY_MM(其中test = 1一次或多次)中标记和注册。因此,最终数据集将如下所示。

 YYYY_MM    Reg    Test    Flag
 2019_01    ABC     1       1
 2019_01    ABC     0       1
 2019_01    DFG     0       0
 2019_02    ABC     0       0
 2019_02    ABC     0       0
 2019_02    DFG     0       1
 2019_02    DFG     1       1 
 2019_02    DFG     1       1
 2019_02    DFG     0       1
 2019_02    HIJ     0       0

我当时正在考虑使用GROUPBY函数或SUMMARIZE,但不确定如何将它们用于我需要的工作。不过很高兴朝着完全不同的方向前进。

1 个答案:

答案 0 :(得分:1)

我将假定您需要此标志作为计算列,并且您的表名是“ Data”。

创建一列:

Flag =
VAR Total_Test =
    CALCULATE ( SUM ( Data[Test] ), ALLEXCEPT ( Data, Data[YYYY_MM], Data[Reg] ) )
RETURN
    IF ( Total_Test > 0, 1, 0 )

结果:

enter image description here

工作原理: 我们使用ALLEXCEPT对数据进行分组。我们对列测试的所有值进行汇总,但将过滤器保留在yyyy-mm列和Reg.Store结果中的变量中,然后执行逻辑测试。