根据另一列的最大值求和一列的值

时间:2018-07-12 15:17:39

标签: powerbi dax

我需要采取措施,将以下各列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   

1 个答案:

答案 0 :(得分:1)

如果您将conta作为矩阵或表格视图中的行,则可以按以下方式定义Last SaldoConta

= SUMX(FILTER(pcsa, pcsa[AnoMes] = MAX(pcsa[AnoMes])), pcsa[SaldoConta])

Matrix Visual

如果您没有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。然后我们将所有这些加起来。