小伙伴们好啊,今天咱们来学习一个Excel函数公式的综合实例。如下图所示,左侧是各个部门员工的补助费明细,需要使用公式按部门进行汇总,并按从高到低的顺序,最终合并成一段文字:以Excel 365/最新版WPS表格为例,参考公式为:
=TEXTJOIN(" ",,SORT(GROUPBY(A2:A14&":",C2:C14,SUM,,0),2,-1))
这个公式看起来好复杂啊……,别急,咱们拆分开再看,就容易理解了。
先看GROUPBY函数:
这个函数能够按指定条件对数据进行分类,自动计算每组的总和、平均值等,一键生成汇总结果。类似咱们常用的数据透视表。数据透视表的优点是操作直观,适合快速分析,但缺点是不够灵活,数据更新后需要手动刷新。而GROUPBY函数的优点是灵活、自动更新、但它需要编写公式,有一定的学习成本。
函数的参数有一大堆,咱们先来了解前三个必选参数的作用:
=GROUPBY(分组依据列, 要汇总的列, 汇总方式, [……], [……])

回到咱们的问题中,下面这部分公式是什么作用呢?
GROUPBY(A2:A14&":",C2:C14,SUM,,0)
第一参数A2:A14&":",在现有的部门名称后面加上冒号,作为分组依据。
第二参数C2:C14,表示要汇总的列。
第三参数SUM,表示汇总方式为求和。
第四个参数省略,表示不生成表头。
第五个参数使用0,表示不生成汇总行。
这部分的计算完成后,就是按部门汇总的结果。

根据题目要求,需要对各部门的汇总数从高到低进行排列。
这里咱们使用了SORT函数,SORT函数就像一个智能排序机器人,帮你整理数据,既安全又省心。
她的用法是这样的:
=SORT(要排序的区域, [按第几列/行排], [升序/降序], [按行/按列排])
咱们把GROUPBY函数的结果投喂给SORT函数:
SORT(GROUPBY(A2:A14&":",C2:C14,SUM,,0),2,-1)
SORT函数的第二参数使用2,表示对要排序区域的第二列进行排序处理。那第二列是什么呢?
回过头来看看,其实就是GROUPBY函数所生成结果的各部门汇总数。
SORT函数的第三参数使用-1,表示执行降序(从大到小)排列。
排序完成后,结果变成了这样:

最后,再使用TEXTJOIN函数,对这些数据进行连接:
=TEXTJOIN(" ",,SORT(GROUPBY(A2:A14&":",C2:C14,SUM,,0),2,-1))
第一参数使用空格,作为各行数据之间的间隔符号。第二参数省略,表示包含合并区域中可能存在的空白单元格。
合并完成后,就得到按部门汇总,并且对汇总金额从高到低排列的文字了:
财务部:1227安监部:873销售部:659法务部:638质保部:479