
文章插图
HI,大家好,我是星光 。今天给大家聊SCAN 。
这货的基本语法如下:
=SCAN(初始值,数据源,LAMBDA(参数1,参数2,计算方式))它可以遍历数据源的每一个数据,根据计算方式,返回一个与数据源尺寸相等的数组 。
举三个常见的用法小栗子 。
1 填充空值
如下图所示,A列存在合并单元格,现在需要创建一个内存数组,将A列的数据填充完整

文章插图
——既然你已经学到SCAN,函数段位起码也是星耀Ⅴ了,就别问我这个问题为什么用内存数组,而不是基础操作或者辅助列了 。
SCAN函数解法参考如下:
公式看不全可以左右拖动..
=SCAN("",A1:A12,LAMBDA(_a,_b,IF(_b="",_a,_b)))
文章插图
第1参数是初始值,第2参数是数据源A1:A12,第3参数是一个LAMBDA表达式 , 它又有3个参数,前两个参数分别被命名为_a和_b,其中_a指向初始值,_b指向数据源的迭代元素 , 第3个参数是一条IF函数
IF(_b="",_a,_b)IF函数的意思是如果计算元素_b为空,则返回初始值_a,否则返回_b自身 。
SCAN遍历数据源的每个元素,并执行LAMBDA计算,整个公式的计算过程如下▼
第1次先计算A1单元格的值 , 此时初始值_a为空,_b指向A1单元格,值为"姓名" 。_b不等于空,IF表达式返回_b自身 , SCAN将计算结果作为新的初始值 。初始值_a也就变成了"姓名" 。

文章插图
第2次计算A2单元格的值,此时_b指向A2单元格,值为"看见星光",它不等于空,IF表达式返回_b自身 , SCAN将计算结果作为新的初始值 。初始值_a就变成了"看见星光" 。

文章插图
第3次计算A3单元格的值,此时_b指向A3单元格,值为空,它等于空,IF表达式返回初始值_a , SCAN将计算结果作为新的初始值 。初始值_a依然是"看见星光" 。

文章插图
第4次计算A4单元格的值 , 此时_b指向A4单元格,值为空,IF表达式返回初始值_a,SCAN将计算结果作为新的初始值 。初始值_a还是"看见星光" 。

文章插图
……
其余以此类推,把每个元素遍历完成后,将计算结果以数组的形式返回 。
在各种亲疏关系不同的场合里我们都讲过,工作表新函数正在加速向编程语言转换,学习这类新函数,多少都需要一点编程的循环思维 。如果你学过VBA又或者其它编程语言,再看这类新函数应该简单很多 , 毕竟它们只是一类被封装好的基础循环语句 。
SCAN函数不但支持引用,也支持数组,不但支持查询 , 也支持聚合等计算方式 。
2 累加求和
如下图所示,需要将A列的数据按B列的指定次数重复,D列为模拟结果 。
(星光老师的原图有公众号二维码 , 但是头条号里不允许,那就不好意思了……)

文章插图
这题函数解法有十几种 , 其中涉及到SCAN函数的解法参考如下:
=XLOOKUP(
SEQUENCE(SUM(B2:B5)), SCAN(0,B2:B5,LAMBDA(_a,_b,_a _b)), A2:A5, "",1,-1)
相关经验推荐
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 分布函数怎么求 分布函数怎么求概率
- if函数的使用方法一键重装系统 if函数的操作步骤
- Matlab怎么求反函数 matlab怎么求反函数
- 初二正比例函数的图像和性质 正比例函数的图像和性质
- excel中按条件求和的函数 Excel中如何按指定条件求和
- excel函数乘法怎么用 excel表格函数公式乘法
- Excel里如何搜索 如何在excel中搜索函数
- excel中len函数的使用方法 Excel中Lenb函数的用法
- 函数有定义什么意思 有定义什么意思
- 二次函数的应用知识点 二次函数的应用知识点思维导图
