请教如何提取某字段最后时间非0的值,比如
10-1 A 0
10-1 B 50
10-2 A 100
10-2 B 0
提取成
A 100
B 50
请教如何提取某字段最后时间非0的值,比如
10-1 A 0
10-1 B 50
10-2 A 100
10-2 B 0
提取成
A 100
B 50
大概看懂题主的意思了,应该包括两个需求,1、先把为0的值筛选掉,2、再取最大日期中的值。
模拟的数据太少还不足以说明问题,我又补充了几行:
date | name | value |
---|---|---|
2018/10/1 | A | 0 |
2018/10/1 | B | 50 |
2018/10/2 | A | 100 |
2018/10/2 | B | 0 |
2018/10/3 | A | 150 |
2018/10/3 | B | 200 |
2018/10/4 | A | 0 |
2018/10/4 | B | 0 |
代码:
最后非0 =
CALCULATE(
MIN('data'[value]),
TOPN(1,CALCULATETABLE('data','data'[value]>0),'data'[date])
)
结果:
name | 最后非0 |
---|---|
A | 150 |
B | 200 |
1和2 不知道你要哪个。
evaluate
CALCULATETABLE(data,data[value]>0)
evaluate
SUMMARIZECOLUMNS(data[dim],"value",SUM(data[value]))
忘了数据源
这样写如果后面的数据不是0的话,不就是求和了?
大概看懂题主的意思了,应该包括两个需求,1、先把为0的值筛选掉,2、再取最大日期中的值。
模拟的数据太少还不足以说明问题,我又补充了几行:
date | name | value |
---|---|---|
2018/10/1 | A | 0 |
2018/10/1 | B | 50 |
2018/10/2 | A | 100 |
2018/10/2 | B | 0 |
2018/10/3 | A | 150 |
2018/10/3 | B | 200 |
2018/10/4 | A | 0 |
2018/10/4 | B | 0 |
代码:
最后非0 =
CALCULATE(
MIN('data'[value]),
TOPN(1,CALCULATETABLE('data','data'[value]>0),'data'[date])
)
结果:
name | 最后非0 |
---|---|
A | 150 |
B | 200 |