达永编程网

程序员技术分享与交流平台

LAMBDA代替繁琐重复的IF多层嵌套,解放双手!

我们有这样一个案例按照不同的销售额进行等级评价


例如销售额在小于5000的情况下,评级等级自动输出为“差”;销售额在大于或等于5000小于或等于10000的情况下,评级等级自动输出为“中”;销售额在大于10000的情况下,评级等级自动输出为“优”。


我们解决这样的问题,一般使用的是多层IF函数嵌套条件判断

=IF(A2<5000,"差",IF(A2<=10000,"中",IF(A2>10000,"优")))


我们看到分三层

第一层IF,如果A2<5000时,返回"差";第二层IF,如果A2<=10000,返回"中";第三层IF,如果A2>10000,返回"优"。



像上面那样输入多层IF函数嵌套条件判断的话,有这样一个弊端,就是不同区域要想再次输入这样规则要求的IF函数时,需要重复录入(或复制粘贴并修改参数),本来IF函数条件如果多的话,公式就会很长,重复录入无形之中浪费了我们大量的时间。


比如F列我们又要重复输入一次相同规则要求的IF函数

=IF(E2<5000,"差",IF(E2<=10000,"中",IF(E2>10000,"优")))



比如J列我们又要重复输入一次相同规则要求的IF函数

=IF(I2<5000,"差",IF(I2<=10000,"中",IF(I2>10000,"优")))

.......

以此类推,有多少个区域,我们就要重复IF多层嵌套函数N次。



那么我们能不能像下面这样输入相同的简短的公式

=评级


都会生成如同IF函数那样的相同的多层嵌套条件判断。


答案当然是可以的。



在Excel中LAMBDA函数是一个自定义高级函数,允许小伙伴们根据自己的需要创建一个特定的函数并重复使用,而无需编写复杂的嵌套公式或VBA代码,可以将复杂的计算逻辑封装成一个自定义函数,简化公式的编写和维护。LAMBDA函数不仅可以编写属于我们的自定义函数,还能在函数中调用自身,也就是大家常说的递归。这个函数在Excel365版本和当前的WPS最高版本中均可用。


函数基础结构

=LAMBDA(参数, 计算)



参数:要传递给函数的值,例如单元格引用、字符串或数字。最多可以输入 253 个参数。此参数可选。


计算:要作为函数结果执行并返回的公式。其必须为最后一个参数,且必须返回结果。此参数是必需项。


以上公式仅仅是定义了参数和计算,2个参数并没有实际的值,所以输入到单元格中并不会返回具体的结果。


假设我们对两个参数进行赋值:X=1,Y=3,这里的(1,3)依次传递给X和Y,然后用它们执行计算1+3,返回结果4。(基本原理的理解)



我们打开[公式-名称管理器-新建名称]



在[新建名称]对话框中,输入自定义名称:评级

范围可以默认:工作簿或工作表(表示作用范围)


引用位置输入:

=LAMBDA(x,IF(x<5000,"差",IF(x<=10000,"中",IF(x>10000,"优"))))


即我们用LAMBDA自定义一个变量:销售变量x。然后让这个销售变量x执行我们上面步骤中IF多层嵌套函数的规则要求。


规则要求

销售额在小于5000的情况下,评级等级自动输出为“差”;销售额在大于或等于5000小于或等于10000的情况下,评级等级自动输出为“中”;销售额在大于10000的情况下,评级等级自动输出为“优”。



那么这样我们以后就可以通过这个自定义的名称“评级”,来作为一个函数,实现IF函数的效果了。


LAMBDA优势

简化复杂公式:将多层嵌套的IF函数封装成单一函数。

提高可读性:通过命名函数(如“评级”)替代冗长公式。

便于维护:修改函数定义即可全局更新所有调用位置。


控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言