金山WPS

关注公众号 jb51net

关闭
软件教程 > 办公软件 > 金山WPS >

解放双手! wps表格中函数LAMBDA代替繁琐重复的IF多层嵌套

脚本之家

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

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

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

=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(参数, 计算)

以上公式仅仅是定义了参数和计算,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优势:

推荐阅读: