已收录

合并单元格转一维,灵犀一口气写了5种解法,最短130个字符

古哥计划
古哥计划 Lv.4 核心创作者KVP

Lv.4 核心创作者

🤯合并单元格转一维,灵犀一口气写了5种解法,最短130个字符

做表的人,谁没被合并单元格坑过?

领导发来一张表:左边两列是地区、型号,合并的;上面两行是季度、月份,也是合并的;中间塞了几十个数字。他要你把它变成一维明细表——地区、型号、季度、月份、数量,一行一条。你一看,几百个格子,手动拖?复制粘贴改半天?眼都花了。

这种「多维合并单元格转一维」的活,我让灵犀来干,它一口气写了 5 种解法,最短的只要 130 个字符,还自带场景:电商、制造、教育、项目、人力,一个行业一种思路。

一、场景:合并的交叉表,变成五行一维表

先说清楚要干什么。原始表长这样:前两列是分类(比如地区、型号),表头两行是嵌套的(1季度、2季度,下面各跟 1-6 月),中间全是数字。合并单元格把「地区」「型号」这些值只显示在每组的第一个格子,其余是空的。

要的结果:一张干净的一维表,五列——分类、子分类、季度、月份、数量。合并单元格的空值要补全,交叉表要按行摊平,就这两件事。

这个场景放哪个行业都成立:电商看地区型号月销量,工厂看车间产品月产量,学校看班级科目月成绩,本质一模一样。

5 种解法的共同骨架,是一条空值补全公式:

fx=LAMBDA(a,SCAN(,a,LAMBDA(x,y,IF(y<>"",y,x))))

一句话:从上往下扫,遇到空就填上一个非空的值——合并单元格的显示值就这么被「灌」满了。后面 5 种方法全在用它。(灵犀交付5个公式)

二、方法1:GROUPBY 聚合展开——最短,130个字符

第一个场景是电商:地区型号季度月份数量。

AI 选了一个刚出不久的函数 GROUPBY(WPS 里叫「聚合」),分组、展开、一步到位:

=LET(fx,LAMBDA(a,SCAN(,a,LAMBDA(x,y,IF(y<>"",y,x)))),GROUPBY(A3:B5,C3:H5,CHOOSE({1,2,3},SINGLE,TOCOL(fx(C1:H1)),TOCOL(C2:H2)),,0))
  • fx 先把地区、型号列的空值补全

  • GROUPBY按地区+型号分组,中间的数据区按季度、月份展开

  • 第 5 参数写 0:不显示总计,输出就是干净的 5 列

130 个字符,全场最短,推荐指数五星。速度也是最快的——聚合函数内部展开,一步到位。

但它有个脾气:
只认纯数字,不能有 0 和空格
,否则这些行会被过滤掉,而且分组会按自己的顺序重排。数据规整,它天下第一;
数据脏一点,它先翻脸
。

三、方法4:文本中转——先合再拆,138个字符

第二个场景换成项目:光伏/储能产品洲国人数。四层维度,比三层的还多一维。

这次灵犀的思路绕了一圈:先把所有列用文本拼起来,再按分隔符拆回去。合起来是整张表,拆开就是一维明细。

=LET(fx,LAMBDA(a,SCAN(,a,LAMBDA(x,y,IF(y<>"",y,x)))),TEXTSPLIT(TEXTJOIN("|",1,A3:A6&"·"&B3:B6&"·"&fx(C1:H1)&"·"&C2:H2&"·"&C3:H6),"·","|"))
  • 每列内容用「·」连在一起,列与列之间用「|」隔开

  • TEXTJOIN 把全部拼成一个长字符串

  • TEXTSPLIT 按「·」拆列、按「|」拆行,一维表原地还原

138 个字符,第二短。维度越多,这个方法优势越大——它是唯一不怕表头再多两层的。

坑也直接:TEXTJOIN 合并结果超过
32767 个字符
就报
#VALUE!
,大约 1800 行触顶;而且输出全是文本,日期必须先格式化再拼。

四、方法3:REPTARRAY 重复展开——复制两下,217个字符

第三个场景是教育:班级科目季度月份成绩。

AI 这次用了一个 WPS 新函数 REPTARRAY(重复展开),思路是「复制」:班级列往下复制、月份行往右复制,复制完了 TOCOL 一摊平,顺序天然正确。

=LET(fx,LAMBDA(a,SCAN(,a,LAMBDA(x,y,IF(y<>"",y,x)))),j,C3:H6,c,COLUMNS(j),r,ROWS(j),HSTACK(TOCOL(REPTARRAY(A3:A6,1,c)),TOCOL(REPTARRAY(B3:B6,1,c)),TOCOL(REPTARRAY(fx(C1:H1),r,1)),TOCOL(REPTARRAY(C2:H2,r,1)),TOCOL(j)))
  • REPTARRAY(班级列, 1, 列数):列向量水平复制,每个班级连续出现

  • REPTARRAY(季度行, 行数, 1):行向量垂直复制,整轮重复

  • TOCOL 按行优先摊平,不用排序,顺序就是对的

217 个字符,五星推荐。双参数控制方向是它的精髓:第二个参数管竖着复制,第三个参数管横着复制,看懂这一个点,这个公式就通了。

限制:
REPTARRAY 是 WPS 新函数
,Excel 里没有;重复次数必须用 ROWS/COLUMNS 算准,差一个格子数据就错位。

五、方法2:索引回查——教科书写法,235个字符

第四个场景回到制造业:车间产品季度月份产量。

AI 这次的思路最「正统」:生成全表格点的序号,用 INT/MOD 拆出行号列号,再 INDEX 一个一个把内容捞出来。

=LET(fx,LAMBDA(a,SCAN(,a,LAMBDA(x,y,IF(y<>"",y,x)))),j,C3:H6,n,ROWS(A3:A6)*COLUMNS(j),k,SEQUENCE(n),r,INT((k-1)/COLUMNS(j))+1,c,MOD(k-1,COLUMNS(j))+1,HSTACK(INDEX(A3:A6,r),INDEX(B3:B6,r),INDEX(fx(C1:H1),c),INDEX(C2:H2,c),INDEX(j,r,c)))
  • SEQUENCE 生成 24 个格点序号(6 列 * 4 行)

  • INT/MOD 把序号拆成第几行、第几列

  • INDEX 按行列号回查车间、产品、季度、月份、产量

  • HSTACK 把五列拼成一行一维表

235 个字符,四星。它是唯一保持源数据顺序的写法——GROUPBY 会重排,它不会;理解门槛稍高,但可迁移性最强,任何规则矩形数据都能套。

注意:
INDEX 是原样取值
,空格不会自动过滤,要配 TOCOL 去空;
只适合规规矩矩的矩形数据
。

六、方法5:MMULT 矩阵外积——思路最野,286个字符

最后一个场景:人力分析,省市学历部门人数。

AI 憋了个大招:用矩阵乘法 MMULT 做「外积」,把行列坐标模式算出来,再压平回查。思路是 5 个里最独特的一个——用数学矩阵生成坐标,而不是用序号。

=LET(fx,LAMBDA(a,SCAN(,a,LAMBDA(x,y,IF(y<>"",y,x)))),j,C3:H6,rp,TOCOL(MMULT(SEQUENCE(ROWS(j)),TRANSPOSE(SEQUENCE(COLUMNS(j),,1,0)))),cp,TOCOL(MMULT(SEQUENCE(ROWS(j),,1,0),SEQUENCE(1,COLUMNS(j)))),HSTACK(INDEX(A3:A6,rp),INDEX(B3:B6,rp),INDEX(fx(C1:H1),cp),INDEX(C2:H2,cp),INDEX(j,rp,cp)))
  • MMULT 外积生成两个坐标数组:行号重复模式 + 列号循环模式

  • TOCOL 压平,INDEX 回查五列内容

286 个字符,最长,三星。但思路值得开眼界:矩阵家族的写法,跟前面的序号、复制、拼接全都不一样,属于「换一个数学工具解决同一个问题」。

限制:
MMULT 只认数值
,坐标必须 TOCOL 压平;文本内容只能靠 INDEX 间接取,不能直接进矩阵。

七、5 种方法,AI 自己排了个名

写完之后,AI 把 5 条公式的字符数、思路、推荐指数、功能限制全部整理成一张对比表,公式驱动、自动生成:

排名

方法

长度

精简思路

推荐

1

分组聚合展开

(GROUPBY)

130

聚合函数吐数组一步展开

★★★★★

2

文本中转

(TEXTSPLIT)

138

先合再拆,维度越多越强

★★★☆☆

3

重复展开

(REPTARRAY)

217

双参数方向控制+TOCOL

★★★★★

4

索引回查

(SEQUENCE+INDEX)

235

全格点序号拆行列教科书式

★★★★☆

5

矩阵外积(MMULT)

286

矩阵生成坐标,思路独特

★★★☆☆

最短 130,最长 286,差了一倍多。但注意,短的未必适合你:GROUPBY 最快但数据不能脏,文本中转不怕维度多但行数多了会爆,索引回查最稳但只认矩形数据。选哪个,看你的数据脾气。

选型口诀
:数据干净选聚合,维度多层走文本,想稳就上索引回查,新函数不挑环境用重复展开,开眼界看矩阵外积。

八、避坑清单(实测踩出来的)

这轮灵犀实测踩出来的坑,比公式本身更值钱:

  • 合并单元格的空值必须先用 SCAN 补全,不补全,后面所有方法都白搭

  • GROUPBY 会过滤含 0 和空格的行,丢组不可修复,数据脏就换方法

  • TEXTJOIN 合并超 32767 字符直接报 #VALUE!,约 1800 行触顶

  • REPTARRAY 重复次数用 ROWS/COLUMNS 精确控制,写错一个数,全表错位

  • TEXTSPLIT 第二参数是列分隔符、第三参数是行分隔符,写反了数据全乱

  • 序号拆行列:INT((k-1)/列数)+1 是行号,MOD(k-1,列数)+1 是列号,记这一对就行

最后说一句

以前这种多维表转一维,我大概率是「手动复制粘贴 + 祈祷别错」。现在灵犀一口气给 5 种解法、5 个行业场景,还自己排了名、标了限制——人做的事变成了两件:定场景,验收。

这就是我最近在做的「AI 写表格公式」项目:每天一个高频场景,让灵犀写公式,我验收,连更 7 天,最后把所有场景封装成技能。今天第 4 天,交作业。

想要完整公式清单的,评论区扣「公式」。


术语解释

文章里出现的技术名词,一句话说清楚:

合并单元格:几个格子合成一个,值只显示在左上角,其余变成空值——做表常见,转数据最烦。

动态数组(Dynamic Array):公式写一个格子,结果自动溢出一片区域的写法,不用拖填充。

GROUPBY(聚合):按指定列分组、再对其他列做统计或展开的函数,分组统计一把抓。

TEXTSPLIT(文本拆分):按分隔符把文本拆成多列多行的函数,「先合再拆」的关键。

REPTARRAY(重复展开):把数组按指定次数横着、竖着复制的 WPS 新函数。

MMULT(矩阵乘法):两个矩阵相乘的数学函数,这里用来生成行列坐标。

SCAN:从上到下扫描数组,把每次的计算结果传给下一个格子的函数。

INDEX:按行号列号从区域里取值的函数,「索引回查」方法全靠它。

TOCOL:把多行多列的数据按顺序摊成一列的函数。

HSTACK:把多个数组横向拼成一行的函数。


古老师(古哥计划)|中小制造数字化专家|金山 KVP(金山办公最有价值专家)|金山多维表格应用场景专家|金山 WPS 社区优秀创作者

深耕中小制造业数字化落地,擅长用 WPS 多维表格 +灵犀低代码方案,帮工厂快速搭建进销存、生产计划、质量追溯等轻量化系统。不用复杂 IT,低成本落地,已服务数百家制造企业,实战经验丰富。

#AI写表格公式 #动态数组 #WPS #多维转一维 #合并单元格 #PMC

本文由灵犀辅助创作

工具:灵犀专业版

模型:GLM-5.3-Flash 超高

广东省
浏览 670
2
5
分享
5 +1
6
2 +1
全部评论 6
 
闵鑫
闵鑫 WPS资深用户Lv.3 优质创作者WPS产品体验官KVP

Lv.3优质创作者

学习
   湖北省
举报
0
0
 
亂雲飛渡
收藏学习
   广东省
举报
0
0
 
深意
设计成假合并单元格,省掉一半事
举报
0
1
古哥计划
古哥计划Lv.4 核心创作者KVP

Lv.4 核心创作者

是的,非常认同 但是实际上,一般用户最喜欢合并单元格居中了…… 好看、数据集中
· 广东省
举报
0
0
 
fbfbzz
学习
举报
0
1
古哥计划
古哥计划Lv.4 核心创作者KVP

Lv.4 核心创作者

感谢您的支持!
· 广东省
举报
0
0