专业编程基础技术教程

网站首页 > 基础教程 正文

Excel初学小白说说循环遍历函数reduce、scan和map简单说

ccvgpt 2025-06-08 19:32:42 基础教程 1 ℃

打工人常用数据处理工具Excel造就了一个个表哥表姐,也使得表哥表姐们逐步成为大神。新版本的Excel新出了一批功能逆天的函数;包括今天我们要说的循环遍历函数,所谓的循环遍历就是一个一个循环,一个也不要错过的来进行一遍或者规定好的一个处理(lambda定义的过程)。

今天我们主要说说reduce、scan和map;他们的语法大同小异,大家自行研究一下;接下来,我们说说他们三个的区别,reduce主要是一个一个循环数组,最后得到一个结果;scan也是一个一个循环数组,但是得到的结果是多个,它循环一次得到一个结果,接着循环第二次得到第二个结果,……,最后把所有结果都呈现出来;map主要是映射(可以理解为函数的一一对应),处理的数组是什么样的,结果呈现的就是什么样,举例说明一下,map处理的数组是三行四列,最终得到的结果也是三行四列;他们三个,都是循环数组的每一个单元,但是结果有所却别而已。

Excel初学小白说说循环遍历函数reduce、scan和map简单说

下面,我们举例说明:

我们要把a1:b3的三行两列数据转化成d1:d9的样子,我们的函数公式为:

=LET(arr,A1:A3,

brr,DROP(REDUCE("",arr,LAMBDA(x,y,VSTACK(x,REPTARRAY(y,OFFSET(y,,1))))),1),

crr,DROP(REDUCE("",OFFSET(arr,,1),LAMBDA(x,y,VSTACK(x,SEQUENCE(y)))),1),

MAP(brr,crr,LAMBDA(x,y,x&y)))

大家会发现,reduce处理后的数组第一行是空白,也就是初始值,我们要用drop函数处理一下,也就是说reduce经常搭配drop使用;map函数的数组最少一个,可以是多个,这里是两个数组,分别是对arr处理后的brr和crr;其实map函数这一段MAP(brr,crr,LAMBDA(x,y,x&y)),直接携程arr&brr也是可以的,这里只是用一下map函数;另外,大家应该也发现了,他们都要和lambda函数搭配使用,这就是他们功能逆天的缘故了,lambda让用户可以实现自己想要的各种功能,也就是我们上面提到的lambda定义的过程。

接下来,我们说点简单的东西,分别用reduce、scan和map实现同一功能;把A1:B4的数据处理成d1:d4的样子。

针对这个题目,我们有以下几个方法,分别用上reduce、scan和map,具体公式为:

方法一:map函数多数组法

=LET(dt,A1:B4,MAP(CHOOSECOLS(dt,1),CHOOSECOLS(dt,2),LAMBDA(x,y,REPT(x,y))))

方法二:map函数单一数组法

=MAP(A1:A4,LAMBDA(x,REPT(x,OFFSET(x,,1))))

方法三:scan函数法

=SCAN("",A1:A4,LAMBDA(x,y,REPT(y,OFFSET(y,,1))))

方法四:reduce函数法:

=DROP(REDUCE("",A1:A4,LAMBDA(x,y,VSTACK(x,REPT(y,OFFSET(y,,1))))),1)

四种方法,其实本质都一样;相比之下,方法二比较简单。好了,就说到这里吧,希望对大家有所帮助,也希望得到大神的指导,谢谢大家!

Tags:

最近发表
标签列表