按最后一个值过滤的累计非重复计数 - DAX
Cumulative distinct count filtered by last value - DAX
我有一个数据集:
month name flag
1 abc TRUE
2 xyz TRUE
3 abc TRUE
4 xyz TRUE
5 abc FALSE
6 abc FALSE
我想计算按最后一个 'flag' 值(真)过滤的 'name' 的月累计非重复计数。 IE。我想要一个结果:
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 的 table,但我没有得到想要的结果。
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]
)
)
这适用于您的样本。可能需要对真实数据进行一些调整。随着数据大小的增加,也可能会显着减慢速度。我会继续讨论它,因为这感觉不太对,但这是一个很好的天真实现。
我有一个数据集:
month name flag
1 abc TRUE
2 xyz TRUE
3 abc TRUE
4 xyz TRUE
5 abc FALSE
6 abc FALSE
我想计算按最后一个 'flag' 值(真)过滤的 'name' 的月累计非重复计数。 IE。我想要一个结果:
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 的 table,但我没有得到想要的结果。
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]
)
)
这适用于您的样本。可能需要对真实数据进行一些调整。随着数据大小的增加,也可能会显着减慢速度。我会继续讨论它,因为这感觉不太对,但这是一个很好的天真实现。