Excel函数分享 您所在的位置:网站首页 excel表格级别公式 Excel函数分享

Excel函数分享

2023-03-14 18:40| 来源: 网络整理| 查看: 265

Excel函数分享-Lamada

Excel推出了不少新函数,但是知道的人依旧不多,使用的人就更少了,刚看到Lamada这个函数的时候,有种看到外星人的感觉,这到底是个什么函数,通常都是先看微软的语法讲解,微软的Link:LAMBDA 函数 - Microsoft 支持

可是看完了微软的解释,我依旧这次我确非常好奇lambda这个单词究竟是什么意思,一起来查查资料把

百度第一条lambda的翻译,代表希腊字母表的第11个字母,大写为Λ,英语名称为Lambda,l来跟我一起读拉姆达,常用的指代意义是波长,体积,导热系数,作为数学符号,小写字母“λ”为线性代数中的特征值。在物理上,小写字母“λ”表示波长符号以及放射学的衰变常数。其大写为“Λ”,在粒子物理学上,是Λ重子的符号。

百度第二条Lambda是计算机编程语言,Lambda表达式是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。

继续往下看把,看到JAVA8 -函数变成Lambda表达式ambda表达式是JAVA8中提供的一种新的特性,它支持JAVA也能进行简单的“函数式编程”。它是一个匿名函数,Lambda表达式基于数学中的λ演算得名,λ演算 (Lambda Calculus) 是一套从数学逻辑中发展, 以变量绑定和替换的规则, 来研究函数如何抽象化定义, 函数如何被应用以及递归的形式系统,

λ演算的核心就在于替换,个人理解,如果写VBA程序的时候写过函数,那么Lambda就非常类似VBA中的函数。

Lamdba函数的实际案例案例1:用Lambda替换长的公式 如下案列从A列中将数字提取出来,这个公式极其复杂且难以理解,针对这个函数完全可以写文章来解释其中的逻辑,

那么如何使用lamabda公式呢

首先,我们将这串公式中的A12替换成String,得到如下公式 =LAMBDA(string, IF(SUM(LEN(string)-LEN(SUBSTITUTE(string, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&string, LARGE(INDEX(ISNUMBER(--MID(string, ROW(INDIRECT("$1:$"&LEN(string))),1))* ROW(INDIRECT("$1:$"&LEN(string))),0), ROW(INDIRECT("$1:$"&LEN(string))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(string)))/10),"")) 解下来,将这串公式用名称管理器命名,按照如下序号的步骤完成名称的定义,其中3的位置可以任意命名,在5的位置写入上面的公式 最后解我们回到Excel中运用公式 如下图,提取数字是不是变得简洁清晰了很多,使用者不需要了解具体复杂的逻辑,通过名称的命名轻易明白函数的意思就是提取数字案列2:Lamdba使用多个参数 按照微软的解释,Lamdba可以使用253个参数,当然实际使用中咱们尽量还是少参数使用。 以下案列判断语文和数学的成绩,只要有一个科目低于60分就一门不及格,2个科目低于60分就两门都不及格,2个科目都超过60就都几个,转化成lambda公式如下使用 案列3:Lamdba使用动态数组 以下案列按照获得冠军次数升序得到人名 黄色高亮一列得到冠军的次数排名从最多到最少的人名,公式为=SORTBY(UNIQUE(C39:C46),COUNTIF(C39:C46,UNIQUE(C39:C46)),-1) 红色方框一列得到的是冠军任命在所有比赛赢的次数,公式为=COUNTIF(C39:C46,F39#)

现在将公式替换为Lambda,然后定义名称冠军次数排序

=LAMBDA(list, SORTBY(UNIQUE(list), COUNTIF(list, UNIQUE(list)), -1))

下图为lambda的运用

Lambda的函数如何运用到其他工作簿

Lambda函数使用的局限在工作簿中,想象一下在A工作簿中已经写好了lambda函数,或者说已经定义好的名称如何转移到B工作簿中呢,我们只需要将A中的任意一个工作表sheet复制到B工作簿中,这样A中的所有名称管理器都复制到B工作簿了

使用Lambda的好处

在以上案例中大家可能感受到我不用lambda一样可以达到我的需求或者目的,为什么我一定需要用lambda这个函数呢,其实这个问题也是问我自己,于是我结合看到的文章也加上我自己的理解得到了一下好处

1.在使用一些繁琐,易读性很差的公式的时候,我们用lambda函数结合定义名称用了更加简洁的函数名称,使用起来更加简洁,而且有效的保护了底层的函数,因为长长的公式在excel中直接显示出来也增加了大家不小心修改的可能,一旦错误修改,那么恢复也是非常麻烦的,因为需要重新回忆当初写这个公式的过程使用lambda函数以后,公式的替换便的非常方便,如果公式变化,在定义名称中修改公式,那么所有使用的地方就批量替换完成,是不是节省了很多人工修改的时间和错误一些复杂的逻辑,不得不借助于VBA程序,使用VBA你必须将工作簿保存为XLSM,这样在使用过程因为各种各样的原因导致无法启用宏,比如工作簿禁止宏导致程序无法运行,使用lambda函数就解决了这个烦恼,因为工作簿不需要保存为xlsm,普通格式XLSX即可使用Lambda的局限性Lambda函数也是算Excel新的函数,此函数不能向后兼容,意味着早期的excel版本无法使用,只使用Excel365版本Lambda函数运行在工作簿中,如果想要跨工作簿使用的时候,无法使用,需要把之前写的lambda函数运用到其他工作簿方法学会,且如果2个工作簿中有同样的定义名称,但是实际里面的lambda函数有差别会导致不同的结果 ,要注意检查函数的公式是否相同 自定义的Lambda在使用过程中是没有信息提示的,可以在名称管理器中批注部分写入参数的信息,这样才使用过程中就可以有提示信息

本文的信息参考了以下连接中的文章,大部分信息来自第三个外文的连接什么是Lambda表达式,它有什么作用?_清风青雨亦倾城的博客-CSDN博客_lambda表达式作用 λ演算-简单介绍lambda演算的基本定义以及操作 - 知乎 (zhihu.com) https://www.ablebits.com/office-addins-blog/excel-lambda-function-write-calculate-use/#:~:text=The LAMBDA function in Excel,name you like%2C say BestFunction.


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有