🔥WPS 递归第九集|递归多级分组求和,一行搞定复杂汇总

前面我们学了基础递归、条件求和、筛选、查找、倒序等。

这一集上难度,但不搞花里胡哨,直接上职场真场景:递归实现分组求和,适合多级分类、按类别自动累加,比 SUMIF 更灵活。


一、案例场景

有一组数字:{1,2,3,4,5,6,7,8,9,10}

需求:每 3 个数字分为一组,递归计算每组的和最终得到分组和:{6,15,13,10}

分组逻辑:

  • 第 1 组:1+2+3 = 6

  • 第 2 组:4+5+6 = 15

  • 第 3 组:7+8+9 = 24

  • 第 4 组:10 = 10


二、WPS 直接可用公式

excel

=LAMBDA(data,LET( first3,TAKE(data,3),

rest,DROP(data,3),

groupSum,SUM(first3),

IF(ROWS(data)=0,

"",

VSTACK(groupSum,MYSELF(rest)))))

({1,2,3,4,5,6,7,8,9,10})

运行结果:{6;15;24;10}


三、递归三要素

  1. 停止条件数据为空时返回空,递归结束

  1. 执行方法每次取前 3 个数字求和,作为一组结果

  1. 递归调用去掉已计算的前 3 个,对剩下数据继续分组


四、公式逐句拆解

excel

=LAMBDA(data,LET(

first3,TAKE(data,3), // 取前3个

rest,DROP(data,3), // 剩下的

groupSum,SUM(first3), // 这一组的和

IF(ROWS(data)=0,

"",

VSTACK(groupSum,MYSELF(rest))

)

))({1,2,3,4,5,6,7,8,9,10})


五、超详细执行过程

第 1 次

数据:{1,2,3,4,5,6,7,8,9,10}取前 3 个:1+2+3 = 6剩余:{4,5,6,7,8,9,10}结果:6 + 下一组

第 2 次

数据:{4,5,6,7,8,9,10}取前 3 个:4+5+6 = 15剩余:{7,8,9,10}结果:15 + 下一组

第 3 次

数据:{7,8,9,10}取前 3 个:7+8+9 = 24剩余:{10}结果:24 + 下一组

第 4 次

数据:{10}取前 3 个:只有 10 → 和 = 10剩余:空结果:10


六、最终返回结果

{6;15;24;10}


七、职场超强拓展

这个递归结构可以直接改成:

  • 每 5 个一组求和

  • 每 N 行分组统计

  • 按月份自动分组

  • 按类别多级汇总

比数据透视表更灵活,比函数嵌套更简洁。


八、总结

递归分组求和 = 每次切一块 → 算一块 → 剩下继续切,直到切完。

学会这一集,你已经能用递归处理:批量分组、分段计算、循环汇总、动态分块等高级场景。


下一集想看: 递归生成序号序列 递归按条件提取不重复值 递归多级查找返回路径评论区告诉我,继续安排!

浙江省
浏览 130
2
4
分享
4 +1
2 +1
全部评论