EXCEL SCAN函数的基础应用实例分享

EXCEL SCAN函数的基本使用实例分享

SCAN函数是excel365新版本新增的函数之一,它是LAMBDA的好伙伴,也是一个循环的函数,在循环历程中可以把每步天生的后果存储下去。

一、SCAN函数基本语法:

=SCAN([初始值],数据源,LAMBDA(参数1,参数2,盘算公式))

SCAN函数它可以遍历数据源的每一个数据,依据自界说盘算办法,前往一个与数据源尺寸相称的数组。第一参数为初始值,可以是个数组大概单值,在LAMBDA里对应参数1(参数1和参数2可用x和y来表现)(即x);第二参数为要循环的数据源,这个参数中的每个元素对应LAMBDA函数里的参数2(即y),这个数组中的值可以不被LAMBDA盘算使用,可以只用于控制循环次数,也即第二参数有几多个元素,SCAN函数就循环几多次;第三参数是LAMBDA(x,y,盘算公式),此中x和y分散对应参数1和参数2,但盘算公式中可以使用x、y,也可以不使用。LAMBDA函数盘算出来的值会作为新的x到场下次运算。

举个简便的例子,如下图所示:

这是一张成果表,如今要对每一局部每科成果是80分以上的挑选出来,底下经过SCAN函数来完成:

SCAN函数的解法如下:

=SCAN(0,A1:E6,LAMBDA(x,y,IF(y>=80,y,"")))

SCAN函数的初始值是0,数据源是A1:E6地区的数组,LAMBDA的参数1,是x,即对应的是初始值,参数2是y,对应的是数据源A1:E6地区的数组,盘算公式是IF(y>=80,y,"")

它遍历数据源A1:E6地区的每一个数据,依据自界说盘算公式IF(y>=80,y,""),前往符算盘算公式后果的值,且与数据源尺寸相称的地区数组。

公式前往后果如下图所示:

二、实战案例

SCAN函数是遍历数据源的每一个数据,依据自界说盘算公式,前往一个与数据源尺寸相称的数组。

1.提取单位格内殽杂字符中的纯数字

如上图所示,A1:D3地区的数据有汉字和数字殽杂,必要从殽杂字符中提取一切的数字出来。

及参考公式如下:

=SCAN(0,A1:D3,LAMBDA(x,y,-LOOKUP(1,-RIGHT(y,ROW(1:9)))))

SCAN函数遍历A1:D3地区每个元素,并实行LAMBDA盘算公式,因此就取得了想要的数据。y为A1:D3地区中的每个元素,也就是每个单位格都实行-LOOKUP(1,-RIGHT(x,ROW(1:9)))这个盘算公式。后果如下图所示:

2.对兼并单位格增补完备

如上图所示,A列和B列有兼并的单位格,必要对兼并单位格增补完备数据。

SCAN函数参考解法如下:

=TRANSPOSE(SCAN(0,TRANSPOSE(A1:C10),LAMBDA(x,y,IF(y="",x,y))))

起首通TRANSPOSE(A1:C10)把数据源地区的数据转置,再经过SCAN函数遍历数据源每个元素,并实行LAMBDA的盘算公式IF(y="",x,y),即当y的值为空值时,就前往x值,不为空值就前往y本人。最初再经过TRANSPOSE函数再转置归来回头,即取得后果如下图所示:

3.数据引用

如上图所示,右方表的单价列有局部是没多数据的,必要从右方表的单价提取到右方表来,增补完备。

SCAN函数参考解法如下:

=SCAN(,A1:B5,LAMBDA(X,Y,IF(Y="",VLOOKUP(X,D1:E5,2,),Y)))

SCAN函数循环第二参数的时分是按先行后列,以是循环到空单位格之前一定循环到空单位格左侧的“型号”,因此,LAMBDA函数里使用当y不是空时,就将值存储下去当成新x,假如是空的时分,就去价格表里使用VLOOKUP函数存储的x,这时x一定是空单位格左侧的型号。后果如下图所示:

4.单位格内非数字添补为0

如上图,每一局部的各科成果中有体现错误或汉字或空缺的单位格,如今对这些非数值的单位格添补为0值,以让其他函数可以对数值进利用用。

SCAN函数参考解法如下:

=SCAN(0,C2:E6,LAMBDA(x,y,IF(ISNUMBER(y),y,0)))

遍历数据源C2:E6地区的每个元素,经过ISNUMBER(y)对每个元素举行推断,是数值的就前往原值,不是的就前往0。后果如下图所示:

5.单位格内数值累计

如上图,要对每一局部的1—4月的数据举行累加。

SCAN函数参考解法如下:

=SCAN(0,A1:E7,LAMBDA(x,y,IF(N(y),N(x)+y,y)))

SCAN函数遍历数据源A1:E7地区的每个元素,经过推断y值对否是数值,是数值的就前往数值x+y,不是的就前往y值。后果如下图所示:

6.匀称添补空缺单位格

如上图,右方数字之间是有空缺单位格存在,必要匀称添补如右方的后果。

SCAN函数参考解法如下:

=SCAN(,A1:A10,LAMBDA(x,y,IF(y,y,LET(a,MATCH(1=1,y:A10>0,),x+(OFFSET(y,a-1,)-x)/a))))

举例分析外表标题标意思,1和4差值是3,1和4地点单位格存在3个距离,因此3/3=1,要求1底下是1+1=2,再底下添补2+1=3,以此类推,匀称增长至4。LAMBDA局部盘算时,富裕使用y是单位格引用的特性,布局出单位格地区推断如今空行距离底下的数值有几行,然后使用OFFSET函数以y为基准偏移引用。后果如下图所示:

7.家庭信息统计

如上图所示,每户的第一个都是户主,要给家庭从上到下编号:

SCAN函数参考解法如下:

=SCAN(0,B2:B11,LAMBDA(x,y,x+(y="户主")))

SCAN初始值设置定为0,循环B2:B11的值,第一次循环到B2时,B2是户主,以是x+(y="户主")=0+TRUE=1,循环到B3时,是这个家庭的成员,不是户主,因此x+(y="户主")=1+FALSE=1,也即这个家庭的编号都是1。到B4单位格再次是“户主”,x会变成2,后方以此类推。

遍历数据源的函数很稀有,但可以自界说盘算办法的很少见,更紧张的是,SCAN这个函数可以创建如今元素和上一个元素之间的关联,特别合适于处理累加值、一连次数等成绩。

内容底部广告位(手机)
标签:

管理员
草根站长管理员

专注网站优化+网络营销,只做有思想的高价值网站,只提供有担当的营销服务!

上一篇:theshy(Theshy除三害实力依旧强大,正式回应明年复出,全力争冠)
下一篇:返回列表