根据日期累计求和_Power Query如何进行累计计算

本文介绍了在Power Query中进行日期累计求和的两种方法:一是利用List.Accumulate函数,结合List.Range创建逐行列表并进行累计计算;二是直接使用List.Sum与List.Range的组合,对每行对应的列表求和,从而达到累计效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Excel中我们在做一列数据的累计时会这样写公式:

fcaf1f09a8b8307e02cf1bb8f545ece2.png

=SUM(A$1:A1)

固定首行然后下拉实现上面数据的累计。

在Power Query中当然也有实现累计的方法,我们来学习两种方法:

List.Accumulate

List.Accumulate函数是能够实现累计计算的函数,这个函数有三个参数:

第一参数:列表

第二参数:起始值

第三参数:自定义函数

为了实现这种逐行累加的效果,我们要先取出逐行对应的列表,然后计算:

dbfbdea0eacd3ab3463d21550a746402.png

= List.Transform({1..20},(x)=>List.Range(L,0,x))

我们用List.Range函数取出对应的数值列表,因为在实际运算中,不可能是例子中的等差数列,应该是很多不规则数据组成的列表,我们要根据行来返回对应的列表,然后再计算。

7a65e6b90a60859748d27159aa016aec.png

= List.Transform({1..20},(z)=>List.Accumulate(List.Range(L,0,z),0,(x,y)=>x+y))

List.Range部分,就是上面说的不断增加元素的列表,从0开始计算,后面的函数部分很容易理解,对于列表中数据进行累计计算。

还有一种使用List.Accumulate实现累计的办法:

1afc83547422e464993938e9414bea0b.png

= List.Accumulate(L,{},(x,y)=>x&{List.Sum({List.Last(x),y})})

x从一个空列表开始,逐渐增加元素,同时不断从L列表中取出y与x列表的最后的元素求和计算,并把结果添加到x列表中。这就是这个公式的运算过程。

List.Sum+List.Range

通过前面的例子,我们知道只要找到对应的列表,直接求和就能得到累计的结果:

db5f1d58f21c9e624575eefc36b76ddc.png

= List.Transform({1..20},(x)=>List.Sum(List.Range(L,0,x)))

这可能是最好理解的累计方法了,对List.Range产生列表进行求和计算,就得到对应行的累计结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值