Excel中如何用函数进行合并单元格的计算?7个函数一步一步教会你,1秒便可搞定
- 2026-09-22 19:48:50
Excel中如何用函数进行合并单元格的计算?7个函数一步一步教会你,1秒便可搞定在工作,常常会遇到合并单元格的求和需求,拆开去计算比较麻烦,不拆当类目多又杂也头疼,今天给大家拆解如何用7个函数即LET、TRANSPOSE、SCAN、TRIMRANGE、LAMBDA、GROUPBY、CHOOSECOLS、SUM实现合并单元格的求和,跟着一步一步走,学会了你也可以实现1秒计算。 


希望能帮到你,关注+转发+评论,不懂也可评论留言

一 函数写法
=LET(a,TRANSPOSE(SCAN("",TRANSPOSE(TRIMRANGE(F:H)),LAMBDA(x,y,IF(y<>"",y,x)))),GROUPBY(CHOOSECOLS(a,1),CHOOSECOLS(a,3),SUM,3,0,-2))
注:F:H为所选区域,根据自己内容范围进行替换即可
二 分步详解
第一步:TRIMRANGE (F:H)
作用:去除 F:H 区域中首尾的空行 / 空列,只保留有数据的连续矩形区域。 例如,如果数据从第 2 行开始到第 10 行,中间无空行,则返回 F2:H10;若末尾有空行则自动裁剪。 这一步是为了避免处理大量无用的空白单元格,提高效率。
第二步:TRANSPOSE (TRIMRANGE (F:H))
将修剪后的区域转置(行列互换)。原本数据是三列(科目、姓名、成绩),转置后变成三行(每行对应原来的一列)。 为什么要转置?因为 SCAN 函数默认按行方向(从左到右)扫描,而我们希望按列方向(从上到下)填充空值,所以先把列变成行,让扫描方向顺着列走。 
第三步:SCAN ("", 转置后的区域,LAMBDA (x, y, IF (y <>"", y, x)))
SCAN 会逐元素遍历数组,返回一个与输入形状相同的数组,每个元素是经过累积计算的结果。 参数说明: "":累积初始值(空文本)。 LAMBDA (x, y):x 是上一次累积的结果,y 是当前遍历到的单元格值。 逻辑:如果 y 非空,则更新累积值 x = y;否则 x 保持不变。 效果:将每 “行”(即原来的每一列)中的空值用最近的上一个非空值填充(横向填充)。例:原来某列是 [科目,空,空,数学] → 填充后变为 [科目,科目,科目,数学],从而补全了合并单元格造成的空白。

第四步:TRANSPOSE (SCAN (...) )
再次转置,将行列恢复为原来的方向(三列),此时三列数据已全部填充完整: 第 1 列:科目(无空值) 第 2 列:姓名(无空值) 第 3 列:成绩(数值)

第五步:LET (a, ...)
将上面处理好的完整三列数组赋值给变量 a,后续直接引用 a,减少繁杂的函数写法
第六步:GROUPBY (CHOOSECOLS (a,1), CHOOSECOLS (a,3), SUM, 3, 0, -2)
先来看看GROUPBY 函数定义:
=GROUPBY(分组列, 要计算的数据列, 怎么算, 要不要标题, 要不要合计行, 怎么排序)
分组列:CHOOSECOLS (a, 1):取出 a 的第 1 列(科目)作为分组依据。要计算的数据列:CHOOSECOLS (a, 3):取出 a 的第 3 列(成绩)作为待汇总的值。怎么算:SUM:对每组内的成绩求和。要不要标题:3:表示数据包含标题行(根据选择的范围是否包含标题行)要不要合计行:0:不显示总计行。怎么排序:-2:排序方式。负号表示降序,绝对值 2 表示按汇总结果的第 2 列(即求和后的总成绩)排序,所以最终结果按科目总成绩从高到低排列。
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。