打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
LAMBDA连载(2)--BYROW,BYCOL实现函数里的循环


函数+VBA

英文单词row和column翻译为行和列,Excel/WPS中也是用它们表示行和列。

函数BYROW=By row,字面意思按行,函数的功能就是按行执行(LAMBDA);

=BYROW (数组, lambda())

函数BYCOL=By Column,字面意思按列,函数功能就是按列执行(LAMBDA)。

=BYCOL (数组, lambda())

注意,它们的第二参数一定是一个LAMBDA函数应用表达式。

这是一个平平无奇的求和公式,对A1:E6求和:

=SUM(A1:E6)

用LAMBDA改进:

=LAMBDA(x,SUM(x))(A1:E6)

LAMBDA定义了一个参数x,定义了一个计算,对x求和,最后将A1:E6传递给x,最终效果就是对A1:E6求和

上述公式的外面包一个BYROW:

=BYROW(A1:E6,LAMBDA(x,SUM(x)))

第一参数A1:E6是要参与运算的数组,第二参数是LAMBDA表达式。

LAMBDA的参数和计算定义不变,A1:E6被传递给x作为SUM的求和对象,不同的是BYROW会让LAMBDA按行执行求和,每行都会产生一个求和结果,最终形成一个数组返回。

改为BYCOL则按列执行求和:

=BYCOL(A1:E6,LAMBDA(x,SUM(x)))

案例:提取平均数据前三名

=TAKE(SORTBY(A2:D8,BYROW(B2:D8,LAMBDA(x,AVERAGE(x))),-1),3)

其中BYROW+LAMBDA+AVERAGE组合部分实现按行统计平均值,返回一个数组作为SORTBY排序的依据,排序后用TAKE提取前三。

案例:合并文本

=TEXTJOIN(CHAR(10),1,BYROW(A2:C8,LAMBDA(x,TEXTJOIN(",",1,x))))

BYROW+LAMBDA+TEXTJOIN部分实现按行合并文本,外层TEXTJOIN在此基础上再次合并,以换行符间隔。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
NO.185# BYROW函数和BYCOL函数小课堂
一起聊聊BYROW函数
Excel函数循环解决大问题:如何统计每月明星产品 - 继续讨论BYROW/BYCOL
MAP函数用过没?
Excel新函数BYROW和BYCOL函数用法详解:逐行逐列批量运算
67这才是Excel有史以来最复杂也是最强大的函数,没有之一!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服