REDUCE
通过将 LAMBDA 应用于每个值,并在累加器中返回总值,将数组减小为累积值。
语法
=REDUCE([initial_value], array, lambda(accumulator, value))
initial_value 设置累加器的起始值。
array 要减小的数组。
lambda 调用 LAMBDA 来减小数组。 LAMBDA 接受两个参数:
- accumulator 该值累加后作为最终结果返回。
- value 应用于数组中每个元素的计算。
说明
- 使用 initial_value 参数设置累加器参数的起始值。 在示例 2 中,凡是将累加器相乘的地方,都将值设为 1 以避免乘以 0。
- 提供无效的 LAMBDA 函数或不正确的参数数字将返回 #VALUE! 错误称为“参数不正确”。
示例
如果将示例复制到空白工作表中,可能会更易于理解该示例。
- 示例1:对平方值求和
将示例数据输入单元格 A1:C2,然后将公式复制到单元格 D4:
=REDUCE(, A1:C2, LAMBDA(a,b,a+b^2))

- 示例2:创建自定义的 “PRODUCTIF” 函数以仅乘以大于 50 的值
创建名为 “Table2” 的表,其中具有从单元格 E1 开始名为 “Nums” 的列。将以下公式复制到单元格 G2 中:
=REDUCE(1,Table2[Nums],LAMBDA(a,b,IF(b>50,a+b,a)))

- 示例3:仅对偶数值计数
创建名为 “Table4” 的表,其中具有从单元格 D1 开始名为 “Nums” 的列。 将以下公式复制到单元格 F2 中:
=REDUCE(0,Table4[Nums],LAMBDA(a,n,IF(ISEVEN(n),1+a, a)))

相关功能
逻辑函数
BYCOL函数
BYROW函数
ISOMITTED函数
MAKEARRAY函数
MAP函数
SCAN函数