物联网软件开发公司 给众人聊一下Excel新推出的Groupby函数,一个往常必学必会的常用函数~
发布日期:2024-11-05 04:42 点击次数:135
今天给众人聊一下这段本事微软在MS365测试版块中推出的一个新函数:groupby。要是你时时肉体在公司上班灵魂却在excel圈子里知足的话应该对这个函数的名字比拟熟悉。圈子里淆乱和传言齐莫得错,这家伙确乎是数据分组统计的函数神器,在往常,也势必属于东谈主东谈主必会的Excel最常用的函数之一。打个响指,如故先来看一下它的基本语法。GROUPBY ( row_fields, values, function, [field_headers], [total_depth], [sort_order], [filter_array] )嘿~它真的一共有7个参数,前3个必需,剩下4个可选。参数天然有点多,不外每个参数的功能性齐很明确,并不难一语气,除了第3参数。第3参数的类型是function。在迭代函数体系里,凡类型是function的参数,齐不是什么情切的东西,摊手,它会特出无边但也不错万分复杂。底下举几个例子,给众人解说一下GROUPBY函数的基本用法和各个参数的筹算礼貌及关联作用。假定有一份收获表,如下图所示。app开发
图片物联网软件开发公司
1丨 分组乞降F2单位格输入以下公式,不错统计各个班级每个学生的收获总分=GROUPBY(A1:B13,D1:D13,SUM)
图片
GROUPBY第1参数是分组依据的区域或数组,第2参数是需要团聚的值区域或数组,第3参数是内置的lambda团聚抒发式。本例中,我们需要按A1:B13的班级和姓名手脚分组依据,对D1:D13区域的收获团聚,团聚的方式是乞降,也便是SUM。除了SUM以外,系统还内置了MAX/MIN/COUNTA/CONCAT等快捷团聚方式。2丨 表头拓荒GROUPBY的第4参数示意第1参数的分组数据是否有表头,不错阐发骨子需要进行拓荒,一共有4种类型。0示意莫得表头;1示意有表头,但不深切。2示意莫得表头,但需要生成默许表头。3示意有表头且深切。图片
我们将上述公式中的第4参数拓荒为2,示意1参莫得表头,但需要生成默许,复返成果如下:=GROUPBY(A1:B13,D1:D13,SUM,2)图片
3丨 揣度与小计GROUPBY的第5参数示意是否深切揣度或小计行,它有5种类型可选,如下图所示。图片
凡哥双色球第2024079期红球奖号分析:
红球冷码统计:双色球第2024078期开出红球奖号分别为:05、09、14、21、22、26,在最近300期开奖中,各号码出现之后其下期出现最少的5个红球分别为:
我们将上述公式中的第5参数拓荒为2,就不错深切揣度和小计行。=GROUPBY(A1:B13,D1:D13,SUM,,2)
图片
4丨 排序GROUPBY的第6参数不错对复返的成果表进行基于分组依据列里面的数据排序,用一个数字对应成果表中的列数,当数字为正数时示意升序,负数时示意降序。举例,数字2,示意对成果表中的第2列数据本质升序排序,数字-3,示意对成果表中第3列的数据本质降序排序。将上述公式中的第6参数拓荒为-3,不错对各个班级里面的收获,也便是成果表第3列的数据,本质降序排序,成果如下:=GROUPBY(A1:B13,D1:D13,SUM,,0,-3)图片
需要防护的是,它这里是对分组里面的数据本质分类排序,而不是整张成果表。要是需要对整张成果表的收获降序排序,不错嵌套SORT函数。=SORT( GROUPBY(A1:B13,D1:D13,SUM,,0), 3,-1)
图片
5丨 筛选GROUPBY的第7参数不错对第1参数的分组依据本质筛选操作,它是一个由逻辑值组成的数组,这个数组的尺寸大小需要和第1参数保合手一致。要是只需要对一班的学生统计总分,同期降序排序,参考代码如下:=GROUPBY(A1:B13,D1:D13,SUM,,0,-3, A1:A13='一班')函数的第7参数为A1:A13='一班',先筛选A1:A13区域是否等于一班,然后再本质团聚等操作。图片
~以上是7个参数的基本功能,这里需要补充说一下7个参数的运算礼貌,它并不是按照出现的先后礼貌作运算的,就像你的他/她…们。Excel领先脱手的是第1和第2参数,读取分组依据和对应值,然后脱手第7参数,对第1步的读取成果进行筛选,接着是第3参数,本质团聚运算,再排序,开发物联网软件的公司添加揣度和小计行,终末拓荒表头。~打个响指,接下来要点说一下等3参数,也便是function。微软匡助文献是这样描述的▼图片
换成译文页面▼图片
看我小目光,看懂了吧?——无论是洋文如故译文总之讲的齐不是东谈主话。摊手,讲究起来,这个第3参数主要有两个端正粗略说特色。领先,它有内置的LAMBDA抒发式,存在一个默许的参数,指向第1参数分组后的每块值区域。其次,它的成果不错是由多个内置的lambda抒发式团聚后的元素组成的数组,数组的场地将决定成果是按行如故按列张开。~先说一下等一个特色。看我手,举一个例子吧。以下代码不错筹算每个班级每个学员的收获总分。这是你照旧知谈的👆图片
=GROUPBY(A1:B13,D1:D13,SUM)但你可能不知谈的是,这个公式的第3参数SUM,是一种系统内置的语法糖,所谓语法糖便是语法的简写格式,完好意思的格式是一个LAMBDA抒发式,如下:=GROUPBY(A1:B13,D1:D13, LAMBDA(x,SUM(x)))换而言之,这里的SUM是LAMBDA(x,SUM(x))的简写格式。LAMBDA是GROUPBY内置的一个匿名函数,它有一个默许的参数,指向分组后的每组收获。这里拓荒其名为x(x的名字不是固定的,你不错解放聘用,叫阿猫阿狗也行),然后使用SUM函数对其团聚。相似的真理,以下代码不错将每个班级的东谈主名去重后销亡成一个字符串,互相之间用短横杠持续。
=GROUPBY(A1:A13,B1:B13, LAMBDA(阿猫, TEXTJOIN('-',1,UNIQUE(阿猫)) ), 1,0)
图片
公式的第3参数是LAMBDA(阿猫,TEXTJOIN('-',1,UNIQUE(阿猫)),先使用unique函数对分组后的东谈主名去重,再使用TEXTJOIN函数团聚成一个字符串。~然后说下3参的第2个特色。如故举个例子。假定不但需要统计每个班级每个学员的总分,同期还需要统计对等分。代码如下:=GROUPBY(A1:B13,D1:D13, VSTACK(SUM,AVERAGE), 1,0)图片
公式的第3参数是VSTACK(SUM,AVERAGE),它包含了两种内置的lambda团聚函数语法糖,分袂本质SUM乞降与AVERAGE求平均的团聚运算,终末使用VSTACK纵向按行销亡。由于它是纵向按行销亡的,复返的是一维垂直数组,阐发第2个端正,筹算成果亦然按行张开。张开后的名字默许为SUM/AVERAGE,看起来有点奇怪,对此,我们不错作念一个修改,改成中语称呼总分和对等分,参考公式如下:=GROUPBY(A1:B13,D1:D13, HSTACK( VSTACK(SUM,AVERAGE), {'总分';'对等分'} ) ,1,0)
图片
公式中,使用了HSTACK函数将由多个lambda抒发式团聚的元素 组成纵向数组和常量数组{'总分';'对等分'}横向销亡,数组的第2列值即为值对应的称呼,防护常量数组中元素分隔使用的是分号,而不是逗号,两者之间的区别,我们在「什么是函数数组」里扎眼讲过了,但愿你还有印象~以上公式是将总分和对等分按行纵向张开,要是你需要横向按列张开,只需要将多个lambda抒发式团聚的元素横向销亡即可:HSTACK(SUM,AVERAGE)完好意思公式如下:=GROUPBY(A1:B13,D1:D13, VSTACK( HSTACK(SUM,AVERAGE), {'总分','对等分'} ), 3,0)
图片
这便是第3参数的第2个特色,它的成果不错是由多个内置的lambda抒发式的团聚元素组成的数组,数组的场地将决定成果是按行如故按列张开。除此以外,它还有一些其它小特色以至是过失,篇幅原因,我们就不张开说了——打这样多字,我倦了,倦的像一朵被风撅断的野花。~看一起玄虚小练习题,减弱一下吧。如下图所示,A:C列是数据源,包含了姓名、月份和销售额。需要统计每个东谈主每个季度的在个东谈主总销售额的占比情况,并横向张开。图片
参考公式如下:=GROUPBY( A1:A13,C1:C13, VSTACK( MAP( {1,2,3,4}, LAMBDA(_m,LAMBDA(_x,@INDEX(_x,_m)/SUM(_x))) ), {1,2,3,4}&'季度' ), 3,0)第3行到第9行代码是GROUPBY函数的第3参数,它先使用迭代函数MAP+三参内置的LAMBDA抒发式,迭代团聚每个东谈主销售额占自己总销售额的占比,复返一个由内置LAMBDA抒发式团聚生成的多个元素的水平数组。LAMBDA(_m,LAMBDA(_x,@INDEX(_x,_m)/SUM(_x)))第1个LAMBDA的变量_m指向MAP的第1参数 {1,2,3,4},第2个LAMBDA的变量_x,指向GROUPBY分组后的值区域块。@INDEX(_x,_m)/SUM(_x)纪律取每季度销售额和总销售额作念占比运算,由于它复返的是单值,不错使用@示意团聚运算。这里你也不错使用SUM等函数替代@终了团聚的条目:LAMBDA(_m,LAMBDA(_x,SUM(INDEX(_x,_m)/SUM(_x)))) 本站仅提供存储工作,扫数内容均由用户发布,如发现存害或侵权内容,请点击举报。