我有一个数据集:
month name flag
1 abc TRUE
2 xyz TRUE
3 abc TRUE
4 xyz TRUE
5 abc FALSE
6 abc FALSE
我想计算过去'flag'值(TRUE)过滤的'name'的月累积不同计数。即我想得到一个结果:
month count
1 1
2 2
3 2
4 2
5 1
6 1
在第5个月和第6个月,应排除'abc',因为在第5个月,该标志已切换为“FALSE”。我正在尝试使用此处给出的示例来实现:
http://www.daxpatterns.com/cumulative-total/
但我正在苦苦挣扎。我当时认为也许函数TOPN可用于过滤可以使用DISTINCTCOUNT的表格,但我没有得到预期的结果。
答案 0 :(得分:1)
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]
)
)
这适用于您的样本。可能需要对实际数据进行一些调整。随着数据量的增加,也可能会显着放缓。我会继续对它进行涂鸦,因为这并不是很正确,但这是一个很好的天真实现。