🔥WPS 递归第七集|递归条件求和,只算符合条件的数字!

前面我们已经学了递归累加、阶乘、数组求和、最大值、数组倒序、查找位置、查找最后一次出现位置。

今天这一集,带来职场真正高频实用功能递归条件求和只把满足条件的数字加总,不满足的自动跳过,一行函数搞定!


一、案例场景

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

需求:只对大于 5 的数字求和计算:6+7+8+9+10 = 40


二、WPS 直接可用公式

excel

=LAMBDA(数据,IF(ROWS(数据)=0,0,IF(INDEX(数据,1)>5,INDEX(数据,1),0)+MYSELF(DROP(数据,1))))({1,2,3,4,5,6,7,8,9,10})

执行结果:40


三、递归三要素

  1. 停止条件

当数组没有数据时,返回 0,递归结束

  1. 执行方法

判断当前第一个数字是否满足条件(>5)

满足就加上该数字,不满足就加 0

  1. 递归调用

去掉第一个数字,对剩余数组继续递归求和


四、公式逐句拆解

excel

=LAMBDA(数据,

IF(

ROWS(数据)=0, 0,

IF(INDEX(数据,1)>5, INDEX(数据,1), 0)+MYSELF(DROP(数据,1)) ))({1,2,3,4,5,6,7,8,9,10})


五、完整执行流程

第 1 次递归

数据:{1,2,3,4,5,6,7,8,9,10}第一项:1 → 不大于 5 → 加 0剩余:{2,3,4,5,6,7,8,9,10}结果:0 + 下一层

第 2 次递归

数据:{2,3,4,5,6,7,8,9,10}第一项:2 → 不满足 → 加 0剩余:{3,4,5,6,7,8,9,10}结果:0 + 下一层

第 3 次递归

数据:{3,4,5,6,7,8,9,10}第一项:3 → 不满足 → 加 0剩余:{4,5,6,7,8,9,10}结果:0 + 下一层

第 4 次递归

数据:{4,5,6,7,8,9,10}第一项:4 → 不满足 → 加 0剩余:{5,6,7,8,9,10}结果:0 + 下一层

第 5 次递归

数据:{5,6,7,8,9,10}第一项:5 → 不大于 5 → 加 0剩余:{6,7,8,9,10}结果:0 + 下一层

第 6 次递归

数据:{6,7,8,9,10}第一项:6 → 满足 → 加 6剩余:{7,8,9,10}结果:6 + 下一层

第 7 次递归

数据:{7,8,9,10}第一项:7 → 满足 → 加 7剩余:{8,9,10}结果:7 + 下一层

第 8 次递归

数据:{8,9,10}第一项:8 → 满足 → 加 8剩余:{9,10}结果:8 + 下一层

第 9 次递归

数据:{9,10}第一项:9 → 满足 → 加 9剩余:{10}结果:9 + 下一层

第 10 次递归

数据:{10}第一项:10 → 满足 → 加 10剩余为空,返回 10


六、逐层返回计算结果

从最内层往回算:10→ 9 + 10 = 19→ 8 + 19 = 27→ 7 + 27 = 34→ 6 + 34 = 40

前面几层都是 0,不影响结果最终结果:40


七、灵活修改

你可以随意修改条件,直接复用公式:

  • 大于 10:>10

  • 小于等于 6:<=6

  • 只算奇数:ISODD(INDEX(数据,1))

  • 只算偶数:ISEVEN(INDEX(数据,1))

  • 等于指定内容:=指定值

改完就能直接运行,非常丝滑。


八、总结

递归条件求和的核心逻辑就一句话:逐个判断,满足就加,不满足就跳,直到数据遍历完成。

学会这一集,你已经可以用递归处理:条件求和、条件统计、条件筛选、遍历判断等一系列办公常用场景。


下一集想看: 递归去重 递归展开多维数组 递归生成序号序列 递归按条件提取数据

评论区告诉我,直接安排!

浙江省
浏览 187
2
4
分享
4 +1
1
2 +1
全部评论 1
 
SRunnnner
安排下一集
· 山西省
回复