excel

关注公众号 jb51net

关闭
软件教程 > 办公软件 > excel >

支持语法糖! Excel函数BYROW与BYCOL的使用指南

脚本之家

今天跟大家介绍2个新的函数分别是BYROW与BYCOL,这2个函数也是LAMBDA的辅助函数,相较于之前介绍的LAMBDA的辅助函数它们是比较简单的,但是最近微软更新了辅助函数的书写规则,支持语法糖,可以简写了。

一、了解函数

1.BYROW:将 LAMBDA 应用于每一行,并返回结果数组

语法:=BYROW (array, lambda(row))

2.BYCOL:将 LAMBDA 应用于每一列,并返回结果数组

语法:=BYCOL (array, lambda(row))

它们的作用如下图所示,本质就是根据每一行或者每一列来做运算,结果与行列数相等,并且只会返回一个结果

总分公式:=BYROW(B2:D8,LAMBDA(x,SUM(x)))

科目最高:=BYCOL(B2:D8,LAMBDA(x,MAX(x)))

二、语法糖

在最近的几次更新中,基本上所有的LAMBDA的辅助函数都支持了语法糖,就是可以支持简写。在很早之前的版本中,想要使用辅助函数就需要指定LAMBDA,就好比上面的获取总分的公式,必须要在BYROW中写出LAMBDA,指明参数,

而现在对于一些简单的计算,我们可以直接将LAMBDA忽略,指定统计方式即可,常见的聚合函数都有的,大家可以试一下,下面我们来列举一些BYROW的常见用法

语法糖:=BYROW(B2:D8,SUM)

三、找到前几名

公式:=VSTACK({"姓名","分数"},TAKE(SORT(HSTACK(A2:A8,BYROW(B2:D8,SUM)),2,-1),3))

通过上面的公式,我们可以返回总分在前3名的人员,跟大家简单的介绍下公式得计算原理

四、找到类别

比如现在我们想要找到每个科目最高分对应的姓名,就可以利用下面这个函数。跟大家简单的说下计算的原理

公式:=BYCOL(IF(BYCOL(B2:D8,MAX)=B2:D8,A2:A8,""),LAMBDA(x,TEXTJOIN(",",TRUE,x)))

如果你想得到一个完整的表格,也可以利用TOCOL跟HSTACK合并一下,大家可以试一下

以上就是今天分享的全部内容了,这2个函数还是比较简单的大家可以试着练习一下,以后就不再添加辅助列,1步搞定结果,同事看了都不敢相信~

推荐阅读:Excel中利用FILTER和BYROW函数实现多列重复值查找的实例教程