KutoolsforOffice — 一套方案,五大工具。事半功倍。

Excel SCAN 函数(365)

作者Zhoumandy修改日期

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

扫描功能 1


语法

=REDUCE ()[initial_value],array,lambda(accumulator, value))


参数

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

返回值

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


函数说明

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

示例一:

如下面的截图所示,有一个数据数组,需要将每个单元格的值与其相邻单元格的值依次相加,从列到行累加,请按如下操作:

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

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

扫描功能 2

注意:在上述示例中,SCAN 函数处理的是数字,且 initial_value 参数设置为 0. 此时,您也可以省略初始值并用空格替代。例如,单元格 F6 中的公式可更改为:

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

示例二:

如下面的截图所示,有一个数据数组,需要连接数组中的字符,并返回包含中间值的数组,请执行以下操作:

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

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

扫描功能 3

相关函数:

  • Excel 函数 MAP
    MAP 函数可对每个指定数组中的值应用 LAMBDA 函数,生成新值,并返回由这些新值组成的数组。

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

  • Excel 函数 Reduce
    REDUCE 函数可对数组中的每个值应用 LAMBDA 函数,并将结果累加,最终将整个数组归约为一个累计值。