合并单元格求和只有200?一条公式转成结构化,SUMIFS瞬间对数

Lv.4 核心创作者
📊 合并单元格求和只有200?一条公式转成结构化,SUMIFS瞬间对数
工厂的台账里,工厂、产品、型号这几列,十有八九都做了合并单元格。看着整齐,一算数就出事。
想统计顺德工厂的数据合计,顺手写一条:
=SUMIFS(G:G,A:A,A2)返回 200。
顺德工厂明明有 5 行数据,2500 才对,怎么只剩 200?
坑就在合并单元格本身:值只挂在组首行,下面 4 行在 A 列其实是空的。SUMIFS 扫过去,只认到组首那 200,其他 4 行因为 A 列是空的,一个都没算进来。
想求和、想筛选、想透视,全部卡死在这一步。
一、转成结构化,秒变乖
同样一张表,把合并单元格去掉、每行补全,变成标准的一维长表。
还是那条 SUMIFS:
=SUMIFS(G:G,A:A,A2)这次返回 2500,一分不差。
再进一步,按工厂汇总只要一条:
=GROUPBY(A:.A,G:.G,SUM)宁波工厂 2000,顺德工厂 2500,总计 4500,瞬间出来。
二、一条公式,一键转结构化
问题来了:合并单元格到处都是,手动取消合并、再逐列填充,太麻烦。
一条公式搞定:
=TRANSPOSE(SCAN("",TRANSPOSE(A2:G10),LAMBDA(X,Y,IF(Y="",X,Y))))原理拆开看,就三步:
内层 TRANSPOSE:把 9 行 7 列转成 7 行 9 列,原来的每一列变成一行,合并单元格的空值正好排在组首值后面
SCAN 扫描:沿行方向逐格扫,遇到空值就继承上一个值——顺德工厂、宁波工厂就这样一路填下去
外层 TRANSPOSE:再转回来,输出就是标准的 7 列结构化长表
粘贴下去,一瞬间的功夫,多个合并单元格全部填完。
三、剩下 4 个方法,AI 全写完了
上面这条是古老师的方法1,思路是转置+扫描。
另外 4 个方法,全部是 AI 写的。每个方法思路不一样,速度和限制也不一样:
方法 | 思路 | 字符 | 推荐指数 |
方法2 | LOOKUP 行号二分填充 | 128 | ★★★★★ 速度98 |
方法5 | REDUCE 逐行遍历压栈 | 139 | ★★★★ 速度85 |
方法4 | 列优先坐标压缩反查 | 181 | ★★★ 速度75 |
方法3 | MAP 逐格序号回溯 | 385 | ★★★ 速度70 |
方法2 长这样,查找引用家族,逐列把空值填成上方的组首值:
=LET(r,ROW(源数据!A2:A10),f,LAMBDA(c,LET(v,CHOOSECOLS(源数据!A2:D10,c),LOOKUP(r,r/(v<>""),v))),HSTACK(f(1),f(2),f(3),f(4),源数据!E2:G10))说白了,让我一次性手写出这么复杂的公式,我也办不到。这些全是 AI 写的,我干的事情是:出题、验证、给每个方法打分排名。
用的工具就是灵犀专业版,5 个方法全部验证通过,汇总目录按速度自动排名。
四、最后说一句
先把数据转成结构化,后面的求和、筛选、聚合,都是顺手的事。
关注我,学习 AI,学习 PMC。
五、术语解释
文章里出现的技术名词,一句话说清楚:
动态数组公式:一条公式直接吐出一片结果(多个单元格),不用拖填充、不用下拉,WPS 里粘贴一条就覆盖整个区域。
SCAN:扫描函数,逐格扫一遍数据,每一格都可以"继承上一个值",处理合并单元格这种连续空白正好。
TRANSPOSE:转置函数,行列互换。9 行 7 列转成 7 行 9 列,让竖着排的空值变成横着排在组首值后面,方便扫描。
GROUPBY:分组聚合函数,按某一列分组、对另一列求和,类似数据透视表,但一条公式直接出结果。
一维长表:每行一条完整记录、没有合并单元格、没有小计行的标准表。所有分析函数(SUMIFS、透视表、GROUPBY)都认它。
古老师(古哥计划)|中小制造数字化专家|金山 KVP(金山办公最有价值专家)|金山多维表格应用场景专家|金山 WPS 社区优秀创作者
深耕中小制造业数字化落地,擅长用 WPS 多维表格 + AI 低代码方案,帮工厂快速搭建进销存、生产计划、质量追溯等轻量化系统。不用复杂 IT,低成本落地,已服务数百家制造企业,实战经验丰富。
#多维表格 #工厂管理 #AI应用
本文由 AI 辅助创作
工具:灵犀专业版
模型:GLM-5.3-Flash