SCAN 函数
约 436 字大约 1 分钟
适用范围
Microsoft 365 专属 Excel, Microsoft 365 Mac 版专属 Excel, Excel 网页版, Excel 2024, Excel 2024 for Mac, Excel 2021, Excel 2021 for Mac, Excel 2019, Excel 2016
1. 函数简介
SCAN 函数通过将 LAMBDA 函数应用于数组中的每个值来扫描数组,返回所有中间累加值组成的数组。与 REDUCE 只返回最终值不同,SCAN 返回每一步的累加结果,非常适合追踪累积过程。
2. 语法
SCAN([initial_value], array, lambda)| 参数 | 选填 | 说明 |
|---|---|---|
| initial_value | 可选 | 累加器的初始值,如果省略则使用数组第一个元素 |
| array | 必需 | 要扫描的数组 |
| lambda | 必需 | LAMBDA 函数,接收两个参数(accumulator, value)并返回新的累加器值 |
3. 示例
3.1. 累积求和
=SCAN(0, A1:A5, LAMBDA(acc, val, acc+val))假设 A1:A5 为 {1, 2, 3, 4, 5},返回 {1, 3, 6, 10, 15},即每一步的累计总和。
3.2. 累积乘积
=SCAN(1, A1:A4, LAMBDA(acc, val, acc*val))假设 A1:A4 为 {2, 3, 4, 5},返回 {2, 6, 24, 120},即每一步的累计乘积。
4. 实用技巧
4.1. SCAN 返回的数组大小与输入数组相同
SCAN 返回的数组大小与输入数组相同
4.2. 适合用于计算运行总计、累积百分比、移动平均等
适合用于计算运行总计、累积百分比、移动平均等
4.3. 可以结合其他数组函数对 SCAN 的结果进行进一步处理
可以结合其他数组函数对 SCAN 的结果进行进一步处理
4.4. 与 REDUCE 的区别
与 REDUCE 的区别:SCAN 返回所有中间值,REDUCE 只返回最终值