我需要采取措施,将以下各列SaldoConta
中的表pcsa
中列conta
中的最后一个非空白值相加。
定义最后一个非空白的条件是在列AnoMes
中具有最大值的条件。
conta ano mes AnoMes SaldoConta
110 2017 2 201702 112,56
110 2017 0 201700 112,56
111 2017 4 201704 70,47
111 2017 0 201700 78,06
111 2017 1 201701 70,47
111 2017 2 201702 70,47
112 2017 8 201708 100,00
112 2017 3 201703 242,16
112 2017 10 201710 100,00
112 2017 2 201702 200,00
112 2017 11 201711 100,00
112 2017 12 201712 100,00
112 2017 5 201705 240,75
112 2017 1 201701 200,00
112 2017 4 201704 242,16
112 2017 0 201700 100,00
112 2017 9 201709 200,00
112 2017 6 201706 683,67
112 2017 7 201707 200,00
113 2017 2 201702 72 865,90
113 2017 0 201700 21 114,37
113 2017 3 201703 55 572,24
113 2017 1 201701 39 967,48
114 2017 11 201711 0,00
114 2017 0 201700 92,59
114 2017 8 201708 46,40
114 2017 7 201707 84,50
115 2017 0 201700 12,00
116 2017 0 201700 8,27
我尝试了100万种不同的DAX表达式,但似乎无法获得我想要的。
它应该仅在AnoMes中添加LAST非空白值,因此对于conta
110,它应该为112,56
。
因此,上表应为:
conta ano mes AnoMes SaldoConta
110 2017 2 201702 112,56
111 2017 4 201704 70,47
112 2017 12 201712 100,00
113 2017 3 201703 55 572,24
114 2017 11 201711 0,00
115 2017 0 201700 12,00
116 2017 0 201700 8,27
答案 0 :(得分:1)
如果您将conta
作为矩阵或表格视图中的行,则可以按以下方式定义Last SaldoConta
:
= SUMX(FILTER(pcsa, pcsa[AnoMes] = MAX(pcsa[AnoMes])), pcsa[SaldoConta])
如果您没有conta
的过滤器上下文,或者需要将其正确分类,那么您需要做更多的工作,但是想法是相同的。
Last SaldoConta =
VAR Summary = SUMMARIZE(pcsa,
pcsa[conta],
"LastSaldoConta",
SUMX(
FILTER(pcsa, pcsa[AnoMes] = MAX(pcsa[AnoMes])),
pcsa[SaldoConta]))
RETURN SUMX(Summary, [LastSaldoConta])
在SUMMARIZE
内,我们为每个不同的conta
值创建了过滤器上下文,并计算了最后一个SaldoConta
。然后我们将所有这些加起来。