🔥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}
三、递归三要素
停止条件数据为空时返回空,递归结束
执行方法每次取前 3 个数字求和,作为一组结果
递归调用去掉已计算的前 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 行分组统计
按月份自动分组
按类别多级汇总
比数据透视表更灵活,比函数嵌套更简洁。
八、总结
递归分组求和 = 每次切一块 → 算一块 → 剩下继续切,直到切完。
学会这一集,你已经能用递归处理:批量分组、分段计算、循环汇总、动态分块等高级场景。
下一集想看:✅ 递归生成序号序列✅ 递归按条件提取不重复值✅ 递归多级查找返回路径评论区告诉我,继续安排!