Excel SCAN 函数(365)
SCAN 函数会对数组中的每个值依次应用 LAMBDA 函数,并返回一个包含扫描过程中所有中间值的数组。

语法
=REDUCE ()[initial_value],array,lambda(accumulator, value))
参数
- 初始值(可选):用于设置累加器的起始值。
- 数组(必填):需要扫描的数组。
- Lambda(必需):用于扫描数组的自定义 LAMBDA 函数。
- 累加器(必需):用于累积并作为最终结果返回的值。
- 值(必填):对数组中每个元素进行计算。
返回值
SCAN 函数返回一组结果数组。
函数说明
- SCAN 函数是 Microsoft 365 专属 Excel 中新推出的,因此在早期版本的 Excel 中无法使用。新一代动态数组公式已在 Microsoft 365 专属 Excel 中引入,意味着您无需再使用 Ctrl+Shift+Enter,将 SCAN 公式作为数组公式输入。
- #VALUE!错误值会在以下任一情况下出现:
- 提供了无效的 LAMBDA 函数;
- 提供的参数数量有误。
- initial_value 参数用于设置累加器的起始值。在返回第一个结果后,initial_value 会变为该结果值。随后,过程会从列到行依次遍历数组中的所有元素。如果您处理的是文本,请将初始值设置为““。
示例一:
如下面的截图所示,有一个数据数组,需要将每个单元格的值与其相邻单元格的值依次相加,从列到行累加,请按如下操作:
请将下列公式复制到单元格 F6,然后按 Enter 按下键即可获取结果。
=SCAN ()0,B6:D9,LAMBDA(a,b,a+b))

注意:在上述示例中,SCAN 函数处理的是数字,且 initial_value 参数设置为 0. 此时,您也可以省略初始值并用空格替代。例如,单元格 F6 中的公式可更改为:
=SCAN (),B6:D9,LAMBDA(a,b,a+b))
示例二:
如下面的截图所示,有一个数据数组,需要连接数组中的字符,并返回包含中间值的数组,请执行以下操作:
请将下列公式复制到单元格 F6,然后按 Enter 按下键即可获取结果。
=SCAN ()““,B6:D7,LAMBDA(a,b,a&b))

相关函数:
Excel 函数 MAP
MAP 函数可对每个指定数组中的值应用 LAMBDA 函数,生成新值,并返回由这些新值组成的数组。
Excel 函数 LAMBDA
Excel LAMBDA 函数可帮助您创建可在整个工作簿中重复使用的自定义函数。
Excel 函数 Reduce
REDUCE 函数可对数组中的每个值应用 LAMBDA 函数,并将结果累加,最终将整个数组归约为一个累计值。