Excel 365中Reduce函数未指定初始值的计算逻辑疑问
关于Excel REDUCE函数无初始值时的疑问解答
问题1解答
你的判断正确:当REDUCE函数未指定初始值时,累加器a会默认取数组的第一个元素作为初始值,后续迭代从数组的第二个元素开始执行LAMBDA定义的逻辑。
- 示例2中数组元素未出现在结果里,是因为该示例的LAMBDA逻辑本身没有保留元素
v的操作; - 示例3的LAMBDA公式是
VSTACK(E3:G5,a),初始的a就是数组首个元素100,这个初始值直接被纳入了最终的堆叠结果,所以底部会出现100,而公式里没写v也不影响这个初始值的保留。
问题2解答
你的猜测完全正确。REDUCE未指定初始值时的执行流程是:
- 将数组第一个元素赋值给累加器
a,这一步不会执行LAMBDA中的核心逻辑(即VSTACK(E3:G5,a)); - 从数组的第二个元素开始,每遍历一个元素就执行一次LAMBDA逻辑。
示例3的数组有4个元素(100,101,102,103),去掉作为初始值的第一个元素后,剩下3个元素对应3次LAMBDA执行,也就是3组E3:G5的堆叠,加上初始的a(100),就构成了最终看到的结果。
内容的提问来源于stack exchange,提问作者jou yungcheng
相关产品推荐
相关产品推荐

