在渠道对账、分季归档与分批处理链路中,分析师面对的往往是一张已经汇齐的总明细:天猫、京东、拼多多挤在同一张销售底表里,四个季度的流水叠在同一张订单表里,大额单与零散单混排,考勤或日志动辄数千行无法一次交给下游。

如果采用传统手工方式,只能反复做筛选、另存、改表名,组合键(如省+市)和「最后不足一块也要留下」更容易漏行;稍不留神还会把源表筛到只剩当前组,后续复盘失去完整底稿。

DT-Bot 的 「表格拆分」 算子专为解决此类按规则把一张表拆成多张新表的问题而设计。它支持按某列不同值、按日期粒度、按条件分档、按固定行数,以及按列值计算后的键进行拆分;源表只读、始终还在,结果写成独立新表,不改单元格内容,保持分析工作空间可回溯。

一、 核心能力与适用场景

「表格拆分」算子聚焦于按键、按时间、按阈值或按行数把一行不丢地拆成多张新表,覆盖以下五大核心能力:

核心能力 解决什么业务问题 典型业务场景
按列值各拆一张 某一列有几个取值,就拆出几张结构相同的新表,每张只含该取值的行。 财务按渠道把销售明细拆成天猫、京东各一张,方便分渠道对账。
按日期粒度拆开 把日期列归到年 / 季 / 月 / 周 / 日,同一粒度的行落进同一张新表。 财务按季度把流水拆开,方便分季归档与对账。
按条件分档(可含其余) 按比较条件切出一档,其余行(含空、无法比大小)再成一档,两路都留。 把金额大于等于 100 的做成一张,其余做成一张,分别交给大额组与长尾组。
按固定行数切开 按当前行序每 N 行切一张,最后不足 N 行也留下,不丢尾块。 大表或考勤明细每 1000 行(或每 3 行)切一张,方便分批处理。
按列值计算后的键 先对列值做截取、拼接等计算,再按算出的键分堆,而不是按整格原值拆。 按单号前 1 位拆成 A / B 两组;也可按「省 + 市」拼起来拆,空地区先当成「缺」。

二、 边界指南:它与相近算子有何区别?

在构建数据工作流时,理解算子之间的职责边界至关重要:

比较维度 「表格拆分」算子 「筛选器」算子 「数据校验」算子 「表格合并」算子 「单元格拆行」算子
主要定位 一张表按规则拆成多张新表 抽出符合条件的行,只要一张新表 按不合格规则拆合格表 + 异常表 多张表合成一张新表 一格多值拆成多行,仍是一张表
输出机制 源表只读,写出多张新表 源表只读,写出一张新表 源表只读,写出两张新表(异常表带原因) 源表只读,写出一张新表 默认就地改源表;写了结果名则写新表
典型动作 按列值 / 日期粒度 / 条件分档 / 固定行数 / 计算键拆堆 比较、包含、为空、提取重复行 长度、比较、必填等多规则分流 上下拼行、按键连接 按分隔符把一格拆成多行
如何选择 “按渠道拆成天猫、京东各一张,源表还要留着” “只要金额大于 100 的订单,单独拉一张做专项” “合格和异常两路都留,异常还要写原因” “把已经拆开的多张表重新拼回去” “商品列一格写了多个品,要拆成一行一个品”

三、 提示词编写规范与公式

「表格拆分」算子支持自然语言直接表达,建议遵循以下标准的三要素编写公式:

【目标表】 + 【拆分依据】 + 【结果名(可选)】

1. 目标表表达

  • 单表精准点名:明确指定要拆哪一张表,例如 把 “销售明细” 按 “渠道” 拆成多张表;
  • 默认当前流转表:若提示词中未显式提及表名,算子将默认继承上一节点连线流入的数据表。

2. 拆分依据表达

  • 按列值:按 “渠道” 拆成多张表、按渠道拆开;
  • 按日期粒度:按 “日期” 的季度拆开,也可以写成按年、按月、按周、按日;
  • 按条件分档:金额大于等于 100 的拆成一张,其余的再拆成一张;
  • 按固定行数:每 3 行拆成一张表、每 1000 行切一张;
  • 按计算后的键:按单号前 1 位拆开、按省和市拼起来拆、空地区先当成「缺」再拆。

3. 结果名(可选)

  • 按列 / 按键且不写结果名:默认用分组值作表名(如天猫、京东),不带源表名;
  • 需要统一前缀时:在提示词里写明前缀或各张表的名字,避免与工作空间里已有表混淆。

示例:

把 “销售明细” 按 “渠道” 拆成多张表。

对应三段:

  1. 表:销售明细
  2. 依据:渠道列的每个取值一张
  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)。若工作空间里已经有同名表,或希望统一加上前缀,请在提示词里写明结果前缀或各张表的名字。

六、 关联算子导航