在渠道对账、分季归档与分批处理链路中,分析师面对的往往是一张已经汇齐的总明细:天猫、京东、拼多多挤在同一张销售底表里,四个季度的流水叠在同一张订单表里,大额单与零散单混排,考勤或日志动辄数千行无法一次交给下游。
如果采用传统手工方式,只能反复做筛选、另存、改表名,组合键(如省+市)和「最后不足一块也要留下」更容易漏行;稍不留神还会把源表筛到只剩当前组,后续复盘失去完整底稿。
DT-Bot 的 「表格拆分」 算子专为解决此类按规则把一张表拆成多张新表的问题而设计。它支持按某列不同值、按日期粒度、按条件分档、按固定行数,以及按列值计算后的键进行拆分;源表只读、始终还在,结果写成独立新表,不改单元格内容,保持分析工作空间可回溯。
一、 核心能力与适用场景
「表格拆分」算子聚焦于按键、按时间、按阈值或按行数把一行不丢地拆成多张新表,覆盖以下五大核心能力:
| 核心能力 | 解决什么业务问题 | 典型业务场景 |
|---|---|---|
| 按列值各拆一张 | 某一列有几个取值,就拆出几张结构相同的新表,每张只含该取值的行。 | 财务按渠道把销售明细拆成天猫、京东各一张,方便分渠道对账。 |
| 按日期粒度拆开 | 把日期列归到年 / 季 / 月 / 周 / 日,同一粒度的行落进同一张新表。 | 财务按季度把流水拆开,方便分季归档与对账。 |
| 按条件分档(可含其余) | 按比较条件切出一档,其余行(含空、无法比大小)再成一档,两路都留。 | 把金额大于等于 100 的做成一张,其余做成一张,分别交给大额组与长尾组。 |
| 按固定行数切开 | 按当前行序每 N 行切一张,最后不足 N 行也留下,不丢尾块。 | 大表或考勤明细每 1000 行(或每 3 行)切一张,方便分批处理。 |
| 按列值计算后的键 | 先对列值做截取、拼接等计算,再按算出的键分堆,而不是按整格原值拆。 | 按单号前 1 位拆成 A / B 两组;也可按「省 + 市」拼起来拆,空地区先当成「缺」。 |
二、 边界指南:它与相近算子有何区别?
在构建数据工作流时,理解算子之间的职责边界至关重要:
| 比较维度 | 「表格拆分」算子 | 「筛选器」算子 | 「数据校验」算子 | 「表格合并」算子 | 「单元格拆行」算子 |
|---|---|---|---|---|---|
| 主要定位 | 一张表按规则拆成多张新表 | 抽出符合条件的行,只要一张新表 | 按不合格规则拆合格表 + 异常表 | 多张表合成一张新表 | 一格多值拆成多行,仍是一张表 |
| 输出机制 | 源表只读,写出多张新表 | 源表只读,写出一张新表 | 源表只读,写出两张新表(异常表带原因) | 源表只读,写出一张新表 | 默认就地改源表;写了结果名则写新表 |
| 典型动作 | 按列值 / 日期粒度 / 条件分档 / 固定行数 / 计算键拆堆 | 比较、包含、为空、提取重复行 | 长度、比较、必填等多规则分流 | 上下拼行、按键连接 | 按分隔符把一格拆成多行 |
| 如何选择 | “按渠道拆成天猫、京东各一张,源表还要留着” | “只要金额大于 100 的订单,单独拉一张做专项” | “合格和异常两路都留,异常还要写原因” | “把已经拆开的多张表重新拼回去” | “商品列一格写了多个品,要拆成一行一个品” |
三、 提示词编写规范与公式
「表格拆分」算子支持自然语言直接表达,建议遵循以下标准的三要素编写公式:
【目标表】 + 【拆分依据】 + 【结果名(可选)】
1. 目标表表达
- 单表精准点名:明确指定要拆哪一张表,例如
把 “销售明细” 按 “渠道” 拆成多张表; - 默认当前流转表:若提示词中未显式提及表名,算子将默认继承上一节点连线流入的数据表。
2. 拆分依据表达
- 按列值:
按 “渠道” 拆成多张表、按渠道拆开; - 按日期粒度:
按 “日期” 的季度拆开,也可以写成按年、按月、按周、按日; - 按条件分档:
金额大于等于 100 的拆成一张,其余的再拆成一张; - 按固定行数:
每 3 行拆成一张表、每 1000 行切一张; - 按计算后的键:
按单号前 1 位拆开、按省和市拼起来拆、空地区先当成「缺」再拆。
3. 结果名(可选)
- 按列 / 按键且不写结果名:默认用分组值作表名(如天猫、京东),不带源表名;
- 需要统一前缀时:在提示词里写明前缀或各张表的名字,避免与工作空间里已有表混淆。
示例:
把 “销售明细” 按 “渠道” 拆成多张表。
对应三段:
- 表:销售明细
- 依据:渠道列的每个取值一张
- 结果:默认用渠道取值作表名(天猫、京东),不带源表名
四、 核心功能与图解实战
以下结合真实企业数据场景,展示「表格拆分」在不同需求下的处理效果:
场景 1:按列值各拆一张(渠道分表对账)
业务背景:财务要把全渠道销售明细按「渠道」拆开,天猫、京东各成一张,分别交给对应运营对账;总表必须继续留在工作空间,供后续汇总。
【处理前:销售明细】
| 订单号 | 渠道 | 金额 |
|---|---|---|
| O1 | 天猫 | 100 |
| O2 | 京东 | 80 |
| O3 | 天猫 | 50 |
【执行提示词】
把 “销售明细” 按 “渠道” 拆成多张表。
【处理后:新表「天猫」(源表不变)】
| 订单号 | 渠道 | 金额 | 变更说明 |
|---|---|---|---|
| O1 | 天猫 | 100 | 渠道=天猫,进入天猫表 |
| O3 | 天猫 | 50 | 渠道=天猫,进入天猫表 |
【处理后:新表「京东」(源表不变)】
| 订单号 | 渠道 | 金额 | 变更说明 |
|---|---|---|---|
| O2 | 京东 | 80 | 渠道=京东,单独成表 |
逻辑详解:渠道有几个不同值,就拆出几张结构相同的新表;单元格内容不被改写。源表「销售明细」仍是 3 行完整底稿。未写结果名时,表名直接用分组值(天猫、京东),不带源表名。
场景 2:按日期粒度拆开(分季归档)
业务背景:订单流水跨多个季度混在一张表里,财务需要按「日期」所属季度拆开,方便分季对账与归档。
【处理前:订单流水】
| 订单号 | 日期 | 金额 |
|---|---|---|
| O1 | 2024-01-15 | 50 |
| O2 | 2024-04-02 | 120 |
| O3 | 2024-07-20 | 80 |
【执行提示词】
把 “订单流水” 按 “日期” 的季度拆开。
【处理后:新表「Q1」】
| 订单号 | 日期 | 金额 | 归堆依据 |
|---|---|---|---|
| O1 | 2024-01-15 | 50 | 1 月 → 第一季度 |
【处理后:新表「Q2」】
| 订单号 | 日期 | 金额 | 归堆依据 |
|---|---|---|---|
| O2 | 2024-04-02 | 120 | 4 月 → 第二季度 |
【处理后:新表「Q3」】
| 订单号 | 日期 | 金额 | 归堆依据 |
|---|---|---|---|
| O3 | 2024-07-20 | 80 | 7 月 → 第三季度 |
逻辑详解:1 月 → Q1,4 月 → Q2,7 月 → Q3,各一张;源表「订单流水」行数不变。同一提示结构也可以写成按年、按月、按周、按日,区别只在日期粒度,不在拆分机制。
场景 3:按条件分档(阈值一路 + 其余一路)
业务背景:同一张订单流水里,大额单要交给专项组复核,其余(含空、无法比大小)也必须留档,不能只筛走高金额一侧。
【处理前:订单流水】
| 订单号 | 日期 | 金额 |
|---|---|---|
| O1 | 2024-01-15 | 50 |
| O2 | 2024-04-02 | 120 |
| O3 | 2024-07-20 | 80 |
【执行提示词】
把 “订单流水” 里金额大于等于 100 的拆成一张,其余的再拆成一张。
【处理后:金额 ≥ 100 的新表】
| 订单号 | 日期 | 金额 | 分档说明 |
|---|---|---|---|
| O2 | 2024-04-02 | 120 | 120 ≥ 100,进入高金额一侧 |
【处理后:其余新表】
| 订单号 | 日期 | 金额 | 分档说明 |
|---|---|---|---|
| O1 | 2024-01-15 | 50 | 50 < 100,进入其余 |
| O3 | 2024-07-20 | 80 | 80 < 100,进入其余 |
逻辑详解:金额 ≥ 100 的进一张(O2);其余(含空、无法比大小)进另一张(O1、O3)。两路行数之和等于源表行数;源表只读。这与「筛选器」只留一张结果表不同,也与「数据校验」按不合格规则写异常原因不同。
场景 4:按固定行数切开(尾块不足也留下)
业务背景:考勤明细共 8 行,需要按当前行序每 3 行切一张,交给下游分批校验;最后不足 3 行的尾块不能丢掉。
【处理前:考勤明细】
| 工号 | 姓名 | 出勤 |
|---|---|---|
| 001 | 张三 | 是 |
| 002 | 李四 | 是 |
| 003 | 王五 | 否 |
| 004 | 赵六 | 是 |
| 005 | 钱七 | 是 |
| 006 | 孙八 | 否 |
| 007 | 周九 | 是 |
| 008 | 吴十 | 是 |
【执行提示词】
把 “考勤明细” 每 3 行拆成一张表。
【处理后:第 1 张(前 3 行)】
| 工号 | 姓名 | 出勤 |
|---|---|---|
| 001 | 张三 | 是 |
| 002 | 李四 | 是 |
| 003 | 王五 | 否 |
【处理后:第 2 张(中 3 行)】
| 工号 | 姓名 | 出勤 |
|---|---|---|
| 004 | 赵六 | 是 |
| 005 | 钱七 | 是 |
| 006 | 孙八 | 否 |
【处理后:第 3 张(最后 2 行)】
| 工号 | 姓名 | 出勤 | 变更说明 |
|---|---|---|---|
| 007 | 周九 | 是 | 尾块不足 3 行,仍然成表 |
| 008 | 吴十 | 是 | 不得因不足一块而丢行 |
逻辑详解:按当前物理行序每 3 行切一张,得到 3 张新表:前 3 行、中 3 行、最后 2 行。源表「考勤明细」仍是 8 行。本能力不按列值分组,也不改单元格。
场景 5:按列值计算后的键(单号前缀分堆)
业务背景:单号带字母前缀(A / B 段),核算时需要按前缀分堆,而不是把每个完整单号拆成一张表。
【处理前:单号表】
| 单号 | 金额 |
|---|---|
| A001 | 10 |
| A002 | 20 |
| B001 | 15 |
【执行提示词】
把 “单号表” 按单号前 1 位拆开。
【处理后:新表「A」】
| 单号 | 金额 | 计算键 |
|---|---|---|
| A001 | 10 | 前 1 位 = A |
| A002 | 20 | 前 1 位 = A |
【处理后:新表「B」】
| 单号 | 金额 | 计算键 |
|---|---|---|
| B001 | 15 | 前 1 位 = B |
逻辑详解:拆分键是「单号前 1 位」,不是整格单号;因此 A001、A002 同堆,不会各拆一张。同一能力也可以按「省 + 市」拼起来拆;空地区先当成「缺」再拆,避免空值被并进某个已有地区。源表「单号表」仍在。
五、 常见问题与操作贴士(FAQ)
Q1:执行「表格拆分」后,源表会不会只剩下某一个渠道?
答:不会。本算子的核心机制是源表只读、结果写成新表。工作空间里会多出按分组值命名的分表,源「销售明细」「订单流水」等应还在且行数不变。若您其实只想抽出一部分行、只要一张结果表,请使用「筛选器」。
Q2:拆分会改单元格内容,或把多张表合成一张吗?
答:都不会。「表格拆分」只决定每一行进哪一张新表,列结构与单元格取值保持原样。要把已经拆开的多张表重新拼回去,请使用「表格合并」;要把一格里的多个值拆成多行、仍留在一张表里,请使用「单元格拆行」。
Q3:按条件分档时,空值和无法比大小的行去哪?
答:走进其余那一张。例如「金额大于等于 100 的拆成一张,其余的再拆成一张」时,空金额、无法比大小的行与未达阈值的行走同一路,保证一行不丢。若您需要合格 / 异常两路且异常表要带「异常原因」,请改用「数据校验」。
Q4:不写结果名时,新表会叫什么?
答:按列或按计算键拆分时,默认用分组值作表名,不带源表名(如天猫、京东、A、B)。若工作空间里已经有同名表,或希望统一加上前缀,请在提示词里写明结果前缀或各张表的名字。
六、 关联算子导航
- 若只需筛出符合条件的行、只要一张结果表:请参考 数据处理 · 筛选器
- 若需按不合格规则同时留下合格表与带原因的异常表:请参考 数据处理 · 数据校验
- 若需把已经拆开的多张表重新合成一张:请参考 数据处理 · 表格合并
- 若需把一格中的多个值按分隔符拆成多行、仍是一张表:请参考 数据处理 · 单元格拆行
- 欲下载真实数据表格亲自动手实测:请查阅 数据案例 · 表格拆分案例