由上一个值过滤的累计不同计数 – DAX

我有一个数据集:

month name flag 1 abc TRUE 2 xyz TRUE 3 abc TRUE 4 xyz TRUE 5 abc FALSE 6 abc FALSE 

我想计算按上一个“标志”值(TRUE)过滤的“名称”的月份累计不同计数。 即我想有一个结果:

 month count 1 1 2 2 3 2 4 2 5 1 6 1 

在第5个月和第6个'abc'应该被排除,因为在第5个月中该标志转换为'FALSE'。我试图用这里给出的例子来实现某些东西:

Cumulative Total

但我正在苦苦挣扎。 我在想,也许函数TOPN可以用来筛选DISTINCTCOUNT可以使用的表,但我没有得到所需的结果。

 MyFilteredCumulativeMeasure = COUNTROWS( FILTER( GENERATE( ALL( 'MyTable'[name] ) ,CALCULATETABLE( SAMPLE( 1 ,SUMMARIZE( 'MyTable' ,'MyTable'[month] ,'MyTable'[flag] ) ,'MyTable'[month] ,DESC ) ,FILTER( ALL( 'MyTable'[month] ) ,'MyTable'[month] <= MAX( 'MyTable'[month] ) ) ) ) ,'MyTable'[flag] ) ) 

这适用于你的示例。 可能需要调整一下真实的数据。 随着数据量的增加,也可能显着减慢。 我会继续讨论它,因为这不太合适,但这是一个很好的实现。