如下图所示,要求根据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的强大之处
End.
作者:兰色幻想-赵志东
本文为转载分享,如果涉及作品、版权和其他问题,请联系我们第一时间删除(微信号:lovedata0520)
- 我的微信公众号
- 微信扫一扫
- 我的微信公众号
- 微信扫一扫
评论