1
场景背景
有时一格塞了多个值:一个订单包含多个商品,用逗号隔开。要做数据分析,必须拆成「一行一个商品」。365 可以用 TEXTSPLIT,老版本靠 Power Query 的「按分隔符拆分到行」。
2
数据结构
共 2 个 Sheet3
解决步骤
1
第 1 步:确认分隔符
先看清楚是英文逗号、中文逗号还是顿号,分隔符不统一先统一。
2
第 2 步:TEXTSPLIT 拆成一列
365 用 TEXTSPLIT 按逗号拆分,第三个参数 TRUE 表示拆成一行一行的。
=TEXTSPLIT(B2,,",")
3
第 3 步:生成重复的订单号
按拆出的商品个数重复订单号,用 TEXTJOIN + REPT 或 SEQUENCE 配合。
=TEXTJOIN(",",TRUE,REPT(A2&",",LEN(B2)-LEN(SUBSTITUTE(B2,",",""))+1))
4
第 4 步:老版本用 Power Query
数据 → 来自表格 → 选中列 → 拆分列 → 按分隔符 → 高级选项选「拆分为行」→ 关闭并上载。这是最稳的批量做法。
4
完整公式与逐段拆解
=TEXTSPLIT(B2,,",")
B2要拆的文本(第 2 参数空)不按行分隔符拆","按英文逗号拆成多列/多行| A | B | |
|---|---|---|
| 1 | 订单号 | 商品 |
| 2 | SO-001 | A4纸 |
| 3 | SO-001 | 签字笔 |
| 4 | SO-001 | 文件夹 |
| 5 | SO-002 | 显示器 |
当前表:拆分后 · 公式单元格 A2 · 绿色底为公式,蓝色底为动态数组溢出结果
拆分后一个订单变成三行,方便按商品统计
6
数据流向
数据流向演示1 / 4
来源订单!B2
➜
去向按逗号拆分
一格里的三个商品
来源按逗号拆分
→
去向3 个值
拆成 3 段
来源订单!A2
→
去向3 行
订单号重复 3 次
来源3 行
→
去向拆分后!A2:B4
写成 3 行明细
跟着高亮一步步看数据怎么流动
7
注意事项与坑
!分隔符前后有空格会多出空值,先 SUBSTITUTE 把「, 」换成「,」。
!拆完要注意行数膨胀,10 万行拆完可能上百万行。
!TEXTSPLIT 是 365 函数,2019 及更早不支持。
8