看这标题,是不是太夸张了?嘿嘿,这还真不是兰色说的。
最近Excel内测版新增了一个函数:Lambda。它到底有多牛,看看网友们是怎么评价它的:
lambda 函数到底有什么作用,为什么网友如此高看到?兰色用一句话概括:不用VBA,也可以用lambda编写自定义函数。
是不是听的有些迷糊?兰色就用一个实例给同学们讲解一下它的用法。
如下图所示,要求根据C2提供的天数,在D2计算出A列最近N天的营业额之和。
如果我们用一般的Excel公式,应该是这样的:
=SUM(OFFSET($A$1,COUNT($A:$A)-C2+1,0,C2,1))
新手看到这个公式估计有些头晕,于是兰色写了这样一个公式:
=最近N天之和(C2)
如果你不知道lambda函数,一定以为兰色是用VBA编写的自定义函数。非也,这是一个自定义函数,可兰色没用VBA代码,是在工作表内用Lambda函数编写的。
用函数编写函数?什么鬼?看不懂吧,跟兰色一起做就明白了。
公式 - 定义名称打开定义名称窗口,定义一个名称,然后就可以在单元格中用它了。
最近N天之和
=LAMBDA(x,SUM(OFFSET($A$1,COUNT(A:$A)-x+1,0,x,1)))
上面这个公式到底是什么意思?lambda到底是怎么用的?
首先,lambda需要在定义名称中使用,新建的名称就是将来自定义函数的名称。如下图所示定义的“最新N天之和”
自定义函数一般需要参数,那么公式中lambda的第一个参数x(自定义的参数名,你b也可以设置成w,y,z)就是将来要引用或手工输入的自定义函数的动态参数。(lambda可以设置多个数,如lambda(x,y,z))
那定义名称中后面一大堆公式是干什么用的?
答案是把x套进去运算的。前面咱们也介绍了如果用普通公式,可以写成
=SUM(OFFSET($A$1,COUNT($A:$A)-C2+1,0,C2,1))
只需要把x代替C2就可以进行最近N天的求和了,只是C2是固定的,而x是一个动态参数,可以引用任一单元格或手工输入值。即:
=LAMBDA(x,SUM(OFFSET($A$1,COUNT(A:$A)-x+1,0,x,1)))
那.....即然普通公式可以设置,为什么要那么麻烦的用lambda自定义函数?
答案是:使用方便。
如果需要在多个表格中设置求最近N天的求公式,就需要每个表都需要写这么长的公式,而用自定义函数,每个表只需要输入简单的 =最近N天之和(天数)即可。
你可以把复杂的运算过程隐藏在定义名称的 lambda函数公式中,而在工作表中只需要输入简单的公式,这就是lambda的强大之处。
兰色说:lambda函数现在好象还只能在内测版本中才能使用,如果你想用需要安装office365并加入office预览体验计划。但它将来必将是Excel的一个革命的函数,会改变我们Excel表中大部分复杂的公式。
如果你是新同学,长按下面二维码 - 识别图中二维码 - 关注,就可以每天和兰色一起学Excel了。
文章评论