Excel SCAN 函数 (365)
Author: Zhoumandy Last Modified: 2025-07-31
SCAN 函数将 LAMBDA 函数应用于数组中的每个值,并返回一个包含扫描数组时的中间值的数组。
语法
=REDUCE ([初始值],数组,lambda(累加器, 值))
参数
- 初始值(可选):累加器的起始值。
- 数组(必需):要扫描的数组。
- Lambda (必需):用于扫描数组的自定义 LAMBDA 函数。
- 累加器(必需):累计并作为最终结果返回的值。
- 值(必需):应用于数组中每个元素的计算。
返回值
SCAN 函数返回一个结果数组。
函数说明
- SCAN 函数是新引入到 Excel for Microsoft 365 中的,因此在早期版本的 Excel 中不可用。新的动态数组公式已在 Excel for Microsoft 365 中引入,这意味着无需使用 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))
相关函数: