我们来看看微软是怎么说的:
https://support.microsoft.com/en-us/office/reduce-function-42e39910-b345-45f3-84b8-0642b568b7cb
它说:
Reduce 函数通过对每个值应用 LAMBDA 并返回累加器中的总值,将数组缩减为累加值。
我已经使用Reduce公式做了一些练习,当未指定初始值时感到困惑。
我首先尝试一个简单的例子
这个例子告诉我,如果没有指定初始值,那么第一个累加器值为空。
然后我尝试了另一个:
该公式计算了4次,对应于数组元素的数量(即100,101,102,103)。
所以我们在底部得到了4 堆E3:G5和初始值 200 。
一切都是可以理解的,直到我尝试删除初始值:
我的问题是:
1.在示例2中,v(100,101,102,103)没有显示在结果数组中。
example3 的结果数组底部如何包含“100”?
LAMBDA 中的公式(即 VSTACK(E3:G5,a))甚至不包含“v”。
如果未指定初始值,累加器“a”是否将数组中的第一个元素作为其值?
2.结果数组只有3堆E3:G5。为什么?
我的猜测是,当累加器“a”不为空时,计算才会开始执行它必须执行的操作(vstack)。因此,它“消耗”一次计算才能将 100 作为其初始值。我的猜测正确吗?