分享

REDUCE函数,函数版FOR循环!

 F2967527 2023-03-17 发布于北京
REDUCE是什么函数,我们在Excel中输入部分,可以看到微软给出的解释!
图片

大概意思:给一组数据,按照规则给你累计!

3点左右一觉醒来,还算清醒,正好给大家简单聊聊他的基础用法!

▍基础语法

REDUCE基础语法:
REDUCE(初始值,数组,处理逻辑的函数)

图片

其中比较难以理解的应该就是第三参数,所以我们先给大家补一下 第三参数相关的知识!

第三参数是一个自定义函数,一般结构为 LAMBDA(x,y,处理逻辑)

LAMBDA 在大部分语言中都有,属于匿名函数的意思!,我们可以看一个简单的案例,比如我们想实现两个数的合计,如果使用LAMBDA来处理的话应该这样!

下面,表示我们自定义了一个函数,他有两个参数,
分别是参数1:x   参数2:y,  他们的逻辑是计算x+y

图片

那么我们如何来调用呢?只要在后面添加括号传入两个参数即可比如,我们计算1+2

图片

第一参数和第二参数,也有一些地方需要注意:
1、第一参数:如果什么都不给,就是写一个逗号,表示初始值是第二参数中的第一个值
2、第二参数如果是单元格引用,那么引用特性会被保留,后面有案例说明!


▍基础写法

结合基础语法,我们来看一下,常规的写法!

-->  REDUCE(初始值,数组,LAMBDA(x,y,处理逻辑))
参数说明:这里的x,y只是一个变量,你可以随意替换!
x:表示上次迭代的结果
y:表示当前处理的值!

x和y 使用比较多,就好像VBA中,我们常用i和j来处理循环一样!当然我们也可以参考PQ中,accumulate,使用 s 和 c来表示,s-start(初始值),c-Current(当前值),也是一种不错的写法! 



▍参数解读
简单说明后,我们就来看一个基础案例,方便大家去了解其中的两个参数x和y

最基本的就是实现一个累计求和,这个实战案例意义不大,但是可以方便我们去理解参数!

图片

过程解读:第二参数A2:A11,10个数,说明过程要循环10次,每次取数一个!
下面我们就使用表格,看一下,每一步中,x,和y,所表示的值!

图片

x值,除了第一次是初始值,后面都是逻辑计算后的值,y就是表示当前数组中的值,从数组的第一行开始,依次提取!

这里的重点其实是我们可以拿到每次逻辑出后的值,这个很重要,案例中,我们仅仅是相加,但是实际上,我们可以做各种逻辑处理!

▍案例01  - 第一参数留空

下面图中写法,可以帮助我们快速理解,第一参数问题,我们使用 x&'+'&y,可以把每次的结果拼接上当前的内容,方便我们去观察

公式1中:第一个数值是1,说明我们第一循环时,x就是第二参数的第一个值
图片


▍案例02  - 第二参数保留单元格引用特性

我们通过这个工资条的案例,可以验证保留引用这个特性!
主要关注的部分是: OFFSET(y,,,,7)
我们循环的是序号,每次拿到的是A2、A3、A4和A5,这些单元格,之所以我们可以使用OFFSET拿到整行内容,就是因为在循环中y保留了单元格的引用特性!

=DROP(
        REDUCE('',A2:A5,
              LAMBDA(x,y,
                  VSTACK(x,VSTACK(A1:G1,OFFSET(y,,,,7),IF(A1:G1>0,'')))
              )
     ),1
)

图片

这也算是REDUCE函数的一个小应用吧
 VSTACK(A1:G1,OFFSET(y,,,,7),IF(A1:G1>0,''))

主要是把标题和当前行的内容,再加上一个空行上下拼接到一起!最后每个人的工资条都成一个表,还需要把上次的结果也拼接上,这也是为什么还要VSTACK(x,……)

▍案例03  - 引用特性(累计求和)
有了这个特性,我们可以做很多操作,比如累计求和的内存数组写法
注意其中的SUM(A2:y),更能说明保留引用特性
=DROP(      REDUCE('',           A2:A11,           LAMBDA(x,y,VSTACK(x,SUM(A2:y)))),1)
图片


▍小结:
1、第一参数留空,默认为第二参数的第一个值
2、第二参数是单元格区域时,保留单元格引用
3、借助VSTACK和HSTACK函数,可以保存每次结果拼接成内存数组


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多