通过将 LAMBDA 应用于每个值,并在累加器中返回总值,将数组减小为累积值。
语法
=REDUCE ([initial_value], array, lambda (累加器, value, body) )
REDUCE 函数语法具有以下实参和形参:
-
[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 的值
Create名为“Table3”的表,其中一个名为“nums”的列从单元格 E1 开始。 将以下公式复制到单元格 G2 中:
=REDUCE(1,Table3[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)))