在订单商品、问卷兴趣与标签字段里,业务系统经常把多个值写进同一格:一格写「水杯,毛巾,杯子」,兴趣用分号隔开,标签用竖线或「 / 」连接。不拆开就无法按单品、单兴趣统计,下游筛选也会把整格当成一个不可切分的词。
如果采用传统手工方式,只能靠分列后再手工复制其它列、逐行插入,分隔符写错则一行原样留下;空段、首尾空格和整格本来就是空的行,处理口径也难以统一。
DT-Bot 的 「单元格拆行」 算子专为解决此类一格多值按分隔符拆成多行、其它列原样复制的问题而设计。一次只拆一列。默认就地改源表;写了结果名则写新表。未说分隔符则默认英文逗号。拆完后各段去首尾空格,空段丢掉;整格本来就是空的,仍保留一行空值。
一、 核心能力与适用场景
「单元格拆行」算子聚焦于单元格内多值的行向展开,覆盖以下三大核心能力:
| 核心能力 | 解决什么业务问题 | 典型业务场景 |
|---|---|---|
| 按英文逗号拆(默认) | 把一格里用逗号隔开的多个值拆成一行一个值,其它列跟着复制。 | 订单的商品列一格写了「水杯,毛巾,杯子」,要拆成一行一个商品才能统计。 |
| 按中文逗号、分号、竖线等单字符拆 | 分隔符不是英文逗号时必须写明,避免误用默认逗号导致整格不拆。 | 问卷兴趣用分号隔开,要拆成一行一个兴趣;标签用竖线隔开,要展开后再筛选。 |
| 按多字符分隔并写出新表 | 分隔字符串原样使用,不要当成正则;写了结果名则保留源表、另存展开表。 | 商品列按「 / 」拆成多行,输出「订单商品_展开」。 |
二、 边界指南:它与相近算子有何区别?
在构建数据工作流时,理解算子之间的职责边界至关重要:
| 比较维度 | 「单元格拆行」算子 | 「行操作」算子 | 「表格拆分」算子 | 「透视反透视」算子 |
|---|---|---|---|---|
| 主要定位 | 一格多值拆成多行,仍是一张表 | 一格拆成多列,或清洗字符,行数不变 | 一张表拆成多张表 | 宽表收成名称 + 值 |
| 输出机制 | 默认可就地;写了结果名则写新表 | 就地更新原表(单元格 / 列级) | 源表只读,写出多张新表 | 就地或另存,改变表形态 |
| 典型动作 | 按分隔符拆行、其它列复制、去空段 | 去空格、替换、正则提取、分列 | 按渠道、季度、行数拆堆 | 反透视成长表 |
| 如何选择 | “商品列一格多个品,要一行一个品” | “把一格拆成多列,行数不能变” | “按渠道拆成天猫、京东各一张” | “把月份宽表收成名称+值长表” |
注意:一次只拆一列。
三、 提示词编写规范与公式
「单元格拆行」算子支持自然语言直接表达,建议遵循以下标准的三要素编写公式:
【目标表】 + 【列与分隔符】 + 【结果名(可选)】
1. 目标表表达
- 单表精准点名:明确拆哪一张表,例如
把 “订单商品” 的商品列按逗号拆成多行; - 默认当前流转表:若提示词中未显式提及表名,算子将默认继承上一节点连线流入的数据表。
2. 列与分隔符表达
- 点名要拆的列:一次只拆一列;
- 未说分隔符:默认英文逗号;
- 必须写明的分隔符:中文逗号、顿号、分号、竖线、斜杠、空格、换行,或「 / 」这类多字符;
- 多字符分隔:分隔字符串原样使用,不要当成正则。
3. 结果名与拆完规则
- 不写结果名:就地改源表;
- 写了结果名:写出新表,源表保持未展开;
- 拆完后:各段去首尾空格,空段丢掉;整格本来就是空的,仍保留一行空值。
示例:
把 “订单商品” 的商品列按逗号拆成多行。
对应三段:
- 表:订单商品
- 列:商品;分隔符:英文逗号
- 结果:就地改源表
四、 核心功能与图解实战
以下结合真实企业数据场景,展示「单元格拆行」在不同需求下的处理效果:
场景 1:按英文逗号拆(默认就地)
业务背景:订单商品列把多个品写在同一格,中间用英文逗号隔开。统计单品销量前必须拆成一行一个商品;空商品的订单仍要留一行,不能丢掉。
【处理前:订单商品】
| 订单号 | 商品 |
|---|---|
| O1 | 水杯,毛巾,杯子 |
| O2 | 纸巾 |
| O3 | (空) |
【执行提示词】
把 “订单商品” 的商品列按逗号拆成多行。
【处理后:订单商品(就地更新)】
| 订单号 | 商品 | 变更说明 |
|---|---|---|
| O1 | 水杯 | 由一格拆出第 1 段 |
| O1 | 毛巾 | 由一格拆出第 2 段,订单号复制 |
| O1 | 杯子 | 由一格拆出第 3 段,订单号复制 |
| O2 | 纸巾 | 单值,仍是一行 |
| O3 | (空) | 整格本来就是空的,仍保留一行空值 |
逻辑详解:O1 变成 3 行,其它列跟着复制。O2 无需展开。O3 整格为空,保留一行空值,而不是删行。未写结果名,源表被就地展开。
场景 2:按分号拆(须写明分隔符)
业务背景:问卷兴趣用分号隔开。若误用默认英文逗号,整格不会被拆开,后续无法按单兴趣筛选。
【处理前:兴趣表】
| 姓名 | 兴趣 |
|---|---|
| 张三 | 跑步;游泳;阅读 |
| 李四 | 绘画 |
【执行提示词】
把 “兴趣表” 的兴趣列按分号拆成多行。
【处理后:兴趣表(就地更新)】
| 姓名 | 兴趣 | 变更说明 |
|---|---|---|
| 张三 | 跑步 | 按分号拆出第 1 段 |
| 张三 | 游泳 | 按分号拆出第 2 段,姓名复制 |
| 张三 | 阅读 | 按分号拆出第 3 段,姓名复制 |
| 李四 | 绘画 | 无分号,仍是一行 |
逻辑详解:必须按提示词中的分号拆开。同一能力也可以写:按中文逗号拆、按顿号拆、按竖线拆、按斜杠拆、按空格拆、按换行拆。分隔符与格子里真实使用的符号必须一致。
场景 3:多字符分隔、写出新表
业务背景:商品列用「 / 」(两侧带空格)连接。分析师希望保留未展开的源表,另存一张「订单商品_展开」给统计节点。
【处理前:订单商品】
| 订单号 | 商品 |
|---|---|
| O1 | 水杯 / 毛巾 / 杯子 |
| O2 | 纸巾 |
【执行提示词】
把 “订单商品” 的商品列按 “ / ” 拆成多行,输出 “订单商品_展开”。
【处理后:新表「订单商品_展开」】
| 订单号 | 商品 | 变更说明 |
|---|---|---|
| O1 | 水杯 | 按多字符「 / 」拆出第 1 段,首尾空格已去掉 |
| O1 | 毛巾 | 按「 / 」拆出第 2 段 |
| O1 | 杯子 | 按「 / 」拆出第 3 段 |
| O2 | 纸巾 | 单值,仍是一行 |
逻辑详解:分隔字符串原样使用,不要当成正则。写了结果名「订单商品_展开」,源表保持未展开。若格子里实际是英文逗号而提示词写「 / 」,则不会按逗号拆开。
五、 常见问题与操作贴士(FAQ)
Q1:为什么执行后源表行数变多了,没有生成新表?
答:这是默认机制。未写结果名时,本节点就地改源表,一行变多行。若需要保留未展开的底表,请在提示词里写出结果名,例如
输出 “订单商品_展开”。
Q2:拆完后空格、空段和整格为空分别怎么处理?
答:各段去首尾空格;中间空段丢掉;整格本来就是空的,仍保留一行空值。因此「水杯, ,杯子」会得到水杯、杯子两行,而整格为空的订单不会被删掉。
Q3:一次能拆两列吗?一格拆成多列该用谁?
答:一次只拆一列。一格拆成多列、行数不变,请用「行操作」。一张表拆成多张,请用「表格拆分」。宽表收成名称 + 值,请用「透视反透视」。
Q4:中文逗号、顿号、竖线和「 / 」不写明可以吗?
答:未说分隔符时默认英文逗号。中文逗号、顿号、分号、竖线、斜杠、空格、换行或「 / 」这类多字符,都要写明,否则整格会按错误分隔符原样留下。
六、 关联算子导航
- 若需把一格拆成多列、或清洗单元格字符且行数不变:请参考 数据处理 · 行操作
- 若需把一张表按渠道或行数拆成多张表:请参考 数据处理 · 表格拆分
- 若需把宽表收成名称 + 值的长表:请参考 数据统计 · 透视反透视
- 欲下载真实数据表格亲自动手实测:请查阅 数据案例 · 单元格拆行案例