跳至主要内容

Excel SCAN 函数 (365)

Author: Zhoumandy Last Modified: 2025-07-31

SCAN 函数将 LAMBDA 函数应用于数组中的每个值,并返回一个包含扫描数组时的中间值的数组。

scan-function 1


语法

=REDUCE ([初始值],数组,lambda(累加器, 值))


参数

  • 初始值(可选):累加器的起始值。
  • 数组(必需):要扫描的数组。
  • Lambda (必需):用于扫描数组的自定义 LAMBDA 函数。
    • 累加器(必需):累计并作为最终结果返回的值。
    • (必需):应用于数组中每个元素的计算。

返回值

SCAN 函数返回一个结果数组。


函数说明

  1. SCAN 函数是新引入到 Excel for Microsoft 365 中的,因此在早期版本的 Excel 中不可用。新的动态数组公式已在 Excel for Microsoft 365 中引入,这意味着无需使用 Ctrl+Shift+Enter 将 SCAN 公式输入为数组公式。
  2. 如果发生以下情况之一,则会出现 #VALUE! 错误值:
    • 提供了无效的 LAMBDA 函数;
    • 提供了错误数量的参数。
  3. initial_value 参数用于设置累加器参数的起始值。返回第一个结果后,initial_value 变为结果值。然后该过程迭代数组中的所有元素,从列到行。如果您正在处理文本,请将初始值设置为""

示例一:

如下图所示,有一个数据数组。我想不断将单元格中的每个值与其相邻单元格的值相加,按列到行的顺序进行,请执行以下操作:

请将以下公式复制到单元格 F6 中,然后按 Enter 键获取结果。

=SCAN (0,B6:D9,LAMBDA(a,b,a+b))

scan-function 2

注意:在上面的示例中,SCAN 函数处理的是数字,并且提供的 initial_value 参数被设置为 0。在这种情况下,它也可以省略并替换为空格。例如,单元格 F6 中的公式可以更改为:

=SCAN ( ,B6:D9,LAMBDA(a,b,a+b))

示例二:

如下图所示,有一个数据数组。我想连接给定数组中的字符,并返回一个包含中间值的数组,请执行以下操作:

请将以下公式复制到单元格 F6 中,然后按 Enter 键获取结果。

=SCAN ("",B6:D7,LAMBDA(a,b,a&b))

scan-function 3

相关函数:

  • Excel MAP 函数 MAP 函数应用 LAMBDA 函数创建一个新值,并返回一个通过将每个提供的数组中的值映射到新值而形成的数组。

  • Excel LAMBDA 函数 Excel LAMBDA 函数用于创建可以在整个工作簿中重复使用的自定义函数。

  • Excel REDUCE 函数 REDUCE 函数将 LAMBDA 函数应用于数组中的每个值,并返回累加器中的总值,从而将数组简化为累加值。