今天我们来学习下另一个新函数——SCAN的用法,它跟上一周讲过的REDUCE函数非常的相似,也是LAMBDA的辅助函数,只不过它会将所有遍历的结果都显示出来,而REDUCE只会显示最后的结果。......
2024-12-20
今天我们来学习下另一个新函数——SCAN的用法,它跟上一周讲过的REDUCE函数非常的相似,也是LAMBDA的辅助函数,只不过它会将所有遍历的结果都显示出来,而REDUCE只会显示最后的结果。
SCAN:通过对每个值应用 LAMBDA 来扫描数组,并返回具有每个中间值的数组。
语法:=SCAN ([initial_value],array,lambda (x,y,body) )
参数1:初始值
参数2:需要循环的数据区域
参数3:关于lambda的计算表达式
它的参数与之前讲的REDUCE函数几乎是一模一样的,但是作用完全不同,SCAN函数会将每个值的结果显示出来,而REDUCE函数它只会输出结果,我们来具体演示下
公式:=SCAN(0,C2:C5,LAMBDA(x,y,y*y+x))
参数1:0,表示起始值为0
参数2:C2:C5,表示需要循环的区域
参数3:LAMBDA(x,y,y*y+x),有关于lambda的表格式
如下图所示,我们需要对当前的数据求平方和,REDUCE它只会显示最终的结果,而SCAN函数会将每个值得结果都罗列出来,就是说结果个数与第二参数的个数是相等的,来简单的说下计算过程
代入数字1,x为0,y为1,计算式为1*1+0,结果为1,会将结果存在x中进入下次循环,
代入数字2,x为1,y为2,计算式为2*2+1,结果为5
代入数字3,x为5,y为3,计算式为3*3+5,结果为14
代入数字4,x为14,y为5,计算式为4*4+14,结果为30
公式:=SCAN("",B2:B5,LAMBDA(x,y,REPT("|",y*200)&" "&TEXT(y,"0%")))
SCAN函数会显示每一步的结果,我们就可以考虑使用REPT+竖线来构建一个阶梯图,构建它的前提是,数据要升序排序,并且将文字字体改成Playbill,这个字体会将竖线显示为条形图的样子
REPT("|",y*200),这个函数的作用是将竖线重复显示多次,得到竖线将其显示为条形图的样子,TEXT(y,"0%")用来设置数据格式,将其转换为百分比格式。
公式:=MAX(SCAN(0,B2:B15,LAMBDA(x,y,IF(y="胜",x+1,0))))
在这里我们要判断最大的连胜次数,判断它是不是胜利,如果胜利就在当前的结果加1,如果失败了,就返回0,从新开始计算胜利与否
公式:=VSTACK({"部门","销量"},GROUPBY(SCAN(,A2:A12,LAMBDA(x,y,IF(y<>"",y,x))),C2:C12,SUM,,0))
这个公式的关键点就是SCAN(,A2:A12,LAMBDA(x,y,IF(y<>"",y,x)))
在这里我们将第一参数省略掉,函数就会自动返回第二参数的第一个值,在A2:A12这个区域中第一个值是【销售1部】,之后从第二个元素开始判断Y是否等于空值,条件成立则返回Y否则返回X,这样的话就能将合并单元格拆分开,
随后使用GROUPBY来进行分类汇总,求和就需要设置三参数为SUM,计数则将SUM改成COUNTA
最后使用VSTACK函数在最上方连接上表头,这个就是公式的计算过程
以上就是今天分享的全部内容,相较于REDUCE函数,SCAN的应用应不算广泛,大家了解下即可~
如果你想要提高工作效率,不想再求同事帮你解决各种Excel问题,可以了解下我的专栏,WPS用户也能使用,讲解了函数、图表、透视表、数据看板等常用功能,带你快速成为Excel高手
相关文章
今天我们来学习下另一个新函数——SCAN的用法,它跟上一周讲过的REDUCE函数非常的相似,也是LAMBDA的辅助函数,只不过它会将所有遍历的结果都显示出来,而REDUCE只会显示最后的结果。......
2024-12-20
大家都知道,Excel表格分为工作簿和工作表,工作簿就是整个Excel文件;工作簿里面,也就是Excel表可以有多个工作表。而各个工作表之间是可以相互移动或复制的,不同工作簿之间的工作表也可以移动或复制,如果不能操作,可以看下是不是以下两个......
2024-12-19
大家好,我是荣哥。前段时间我老婆跟我抱怨,公司准备上新的人事系统,需要将老系统中所有员工的年假、调休、上班工时等重新整理后导入到新系统,这可把她给难倒了,天天愁眉苦脸的,光靠人工整理大批量员工的数据非常耗时,而且还容易出错。......
2024-12-19
大家好,我是秋小E~这里是秋叶 Excel 的【问答精华】专栏!来看看这些小问题,你有没有遇到过,当时又是怎么解决的?......
2024-12-18