2017-04-05 34 views
0

这可能很简单,但我需要你的帮助!基于多个标准的DAX计数发生

我需要添加一个列到我的原始数据,其中包含每个唯一ID的唯一子事件的总数,当子事件类型=类型A时,结果应显示在第一个类型A上找到列表并显示这些ID的剩余行上的零。

希望模拟表的例子可以说明我的原始数据是如何构成的,什么我需要为结果(j列)

Table Example

回答

0

下面的计算列应该做的伎俩:

Type A Events by ID = 
VAR FirstRow = 
CALCULATE(
    MIN('Log'[Index]), 
    FILTER('Log', 'Log'[ID] = EARLIER('Log'[ID]) && 'Log'[Sub Event Type] = "Type A") 
) 
RETURN 
IF(
    'Log'[Index] = FirstRow, 
    CALCULATE(
     DISTINCTCOUNT('Log'[Sub Event]), 
     FILTER('Log', 'Log'[ID] = EARLIER('Log'[ID]) && 'Log'[Sub Event Type] = "Type A") 
    ), 
    0 
) 

不知道如何确定找到的第一个Type A行,因此我添加了一个索引列并检索到具有最小索引的限定行。 (这就是FirstRow正在做)

然后,它会以相同的IDSub Event Type返回Sub Event重复计数是A型,如果是第一行,否则返回0

随意澄清或修改它适合你的情况。

结果:

result

+0

嗨@Marcelo阿吉拉尔这是否解决您的问题,毕竟? –

+0

嗨,建议的解决方案适用于我用于测试的小数据集,不幸的是,当扩展它时,它太慢了...到目前为止,我在我的数据的一些分区上使用它来完成工作。谢谢! –