莫度编程网

技术文章干货、编程学习教程与开发工具分享

开了天眼了!Excel 这个新函数几乎包揽了所有计算功能

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

今天的案例需要聚精会神学,一个强大的、可以替代很多函数功能的新函数。


一定要学习一下。


案例:


要教的这个函数内容太多,会分两期写。


今天先讲求和、累计相减、计算乘积、计算单元格个数、求每个数值的平方之和。


效果如下图所示。


解决方案:


1. 求和:

=REDUCE(,A2:A7,LAMBDA(x,y,x+y))


公式释义:

  • reduce 函数是个强大的动态数组函数,主要用于对数组或区域进行累计计算(逐元素迭代并更新结果),该函数适用于需要自定义规则的场景;
  • reduce 通常都结合 lambda 函数一起使用,通过 LAMBDA 将条件应用于每个值,并在累加器中返回总值;
  • 语法为 REDUCE ([initial_value],array,lambda (accumulator,value,body) ):
    • [initial_value]:累计计算的初始值;
    • array:需要计算的数组或区域;
    • accumulator:累积器,用于储存中间结果和返回最终结果,每次迭代都会更新;
    • value:数组中的当前值;
    • body:应用于每个元素的计算规则;
  • reduce 函数会逐行/逐列遍历数组,每一步都将 body 的值代入 lambda 函数,结合 accumulator 计算出新的中间结果,最终返回遍历完成后的累计值。


说了这么多,可能大家一下子理解不了,我们根据案例中的公式来学习。


REDUCE(,A2:A7,LAMBDA(x,y,x+y)):

  • 第一个参数留空的话,默认将数组中的第一个元素作为初始值;处理的时候会跳过第一个元素,从第二个元素开始处理;
  • A2:A7:需要计算的区域;
  • LAMBDA(x,y,x+y):每次迭代时,将当前累积器 x 加上当前元素 y,得到一个累计值,放入累积器 x 中;逐个元素迭代,最终得到所有元素的累计求和结果。


2. 累计相减:

=REDUCE(,A2:A7,LAMBDA(x,y,x-y))


公式释义:

  • 这个公式与第一个公式唯一的区别就是将 x+y 变成了 x-y;
  • 第一个参数留空,表示将第一个将第一个元素作为初始值存在累积器 x 中,并且依次取被减数 y 的时候,会跳过第一个元素,从第二个元素开始取值;
  • 依次用累积器中的值减去自第二个元素开始的值;最终执行的公式就是 2-2-2-2-2-2=-8。


3. 求乘积:

=REDUCE(,A2:A7,LAMBDA(x,y,x*y))


这里就不再重复解释了,原理和前两个公式完全一样,只是将迭代计算公式改成了 *,计算出所有单元格的乘积。


4. 统计区域内的单元格个数:

=REDUCE(0,A2:A7,LAMBDA(x,y,x+1))


公式释义:

  • 这里要注意了,统计个数的时候,区域内的第一个元素也是要统计进去的,所以第一个参数不可以省略,要设置为 0,这样的话,计数的时候就不会跳过第一个元素;
  • lambda 函数遍历区域中的每个单元格,每处理一次,累积器 x 的值就 +1,从而实现单元格个数统计;
  • 这里没有对空单元格特别写限制条件,所以空单元格也会被计数。


5. 计算平方之和:

=REDUCE(0,A2:A7,LAMBDA(x,y,x+y^2))


公式释义:

  • 与上面那个公式的唯一区别是将 lambda 函数的最后一个参数改成了 x+y^2,表示计算每一个元素的平方,并且加入累加器 x 中;
  • 遍历公式,实现所有平方值的累加。


6. 统计非空单元格个数:

=REDUCE(0,A2:A13,LAMBDA(x,y,IF(y<>"",x+1,x)))


公式释义:

  • lambda 函数的第三个参数改为了 IF(y<>"",x+1,x),表示只有元素值不为空的时候,累积器的值才 +1,否则就保留原来的值。
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言

    Powered By Z-BlogPHP 1.7.4

    蜀ICP备2024111239号-43