大区拆分的订单、客户主数据与事实表、以及两张只能按行序并排的宽表,分析师经常要把多张工作空间表合成一张,才能做全国汇总或补维分析。源表还要留给其它节点,不能在合并时被改写。

如果靠复制粘贴上下拼接,列对不齐就会错位;用查找引用做左右连接,漏行、一对多都难复查,也无法在工作流里复跑。

DT-Bot 的 「表格合并」 算子专为解决此类把工作空间里的多张表合成一张新表而设计。它支持上下拼行、按键左 / 内 / 右 / 全连接,以及按行号左右并排。源表只读,结果写成新表。不改单元格内容。要按键把字段填回原表、行数不变,请用「匹配填充」;要拆成多张表请用「表格拆分」;清洗改单元格请用「行操作」;筛行留一张请用「筛选器」;合格和异常两路都留请用「数据校验」。

一、 核心能力与适用场景

「表格合并」算子聚焦于多表合成、源表只读,覆盖以下三项核心能力:

核心能力 解决什么业务问题 典型业务场景
上下拼行 结构相近的多张表按列对齐追加行,合成一张总表。 把华东、华北两张订单明细上下拼成全国订单。列不完全相同也可以拼,缺的列补空。
按键连接(左 / 内 / 右 / 全) 按共同键把两张表左右连在一起,补维或做集合对齐。 按客户编码把订单和客户主数据连上,补客户名称、等级;内连接只留对得上的行,全连接两边未匹配行都留。
按行号并排 没有共同键时,第几行对第几行左右拼成宽表。 两张按同一名册顺序排出的人员表,按行号拼成一张宽表(少见)。

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

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

比较维度 「表格合并」算子 「匹配填充」算子 「表格拆分」算子 「筛选器」算子
主要定位 多表合成一张新表 按键把字段填回目标表 一张表拆成多张新表 从一张表按条件抽出一行子集
输出机制 源表只读,写出新表 不写输出名则在原表加列,行数不变 源表只读,写出多张新表 源表只读,写出一张新表
典型动作 上下拼、左/内/右/全连接、按行号并排 精确/区间/近似匹配后填列 按列值、条件、行数拆开 筛出大额订单等
如何选择 “华东、华北要拼成一张全国订单” “订单行不能少,只要把单价贴回订单表” “按渠道拆成天猫、京东各一张” “从总表里只要金额大于 100 的行”

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

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

【要合并哪几张表】 + 【方式:上下拼 / 按哪一列左·内·右·全连接 / 按行号并排】 + 【结果名(可选)】

1. 目标表范围表达

  • 点名参与合并的表:把 “华东订单” 和 “华北订单”、把 “订单表” … “客户表”;
  • 结果名可选:写了则用该名;不写则由系统起一个短名,不会覆盖源表。

2. 核心操作动作表达

  • 上下拼:上下拼成一张表;
  • 按键连接:按 “客户编码” 左连接 / 内连接 / 右连接 / 全连接;
  • 按行号并排:按行号左右拼在一起。

3. 可复制示例

把 “华东订单” 和 “华北订单” 上下拼成一张表,输出 “全国订单”。

对应三段:表是华东订单、华北订单;方式是上下拼;结果是全国订单。

四、 核心功能与图解实战

以下结合真实企业数据场景,展示「表格合并」在不同需求下的处理效果:

场景 1:上下拼行(列对齐追加行)

业务背景:财务把华东、华北两张结构差不多的订单明细上下拼成一张全国总表,两张源表还要分别留给区域节点。

【处理前:华东订单】

订单号 商品 金额
E1 水杯 10
E2 毛巾 20

【处理前:华北订单】

订单号 商品 金额
N1 杯子 15
N2 纸巾 8

【执行提示词】

把 “华东订单” 和 “华北订单” 上下拼成一张表,输出 “全国订单”。

【处理后:全国订单(新表)】

订单号 商品 金额 变更说明
E1 水杯 10 来自华东订单
E2 毛巾 20 来自华东订单
N1 杯子 15 来自华北订单
N2 纸巾 8 来自华北订单

逻辑详解:源表「华东订单」「华北订单」只读,行数与单元格不变。列不完全相同也可以拼:缺的列在对应行补空,例如华北缺少「金额」时,全国订单里华北行的金额为空,华东行仍保留金额。


场景 2:按键连接(左 / 内 / 右 / 全)

业务背景:财务按客户编码把订单和客户主数据连在一起,补上客户名称、等级。订单里可能有主数据没有的编码,主数据里也可能有尚未下单的客户,四种连接留下的行集合不同。

【处理前:订单表】

订单号 客户编码 金额
O1 C01 100
O2 C02 200
O3 C99 50

【处理前:客户表】

客户编码 客户名称 等级
C01 华为 金卡
C02 阿里 银卡
C03 腾讯 金卡

案例 A:左连接(订单行全部保留)

【执行提示词】

把 “订单表” 按 “客户编码” 左连接 “客户表”,输出 “订单客户”。

【处理后:订单客户(新表)】

订单号 客户编码 金额 客户名称 等级 变更说明
O1 C01 100 华为 金卡 对上 C01
O2 C02 200 阿里 银卡 对上 C02
O3 C99 50 (空) (空) 订单行保留,客户列为空

逻辑详解:左连接以订单表为左侧,订单行全部保留;对不上的客户列为空。源表订单表、客户表只读。


案例 B:内连接(只留对得上的行)

【执行提示词】

把 “订单表” 按 “客户编码” 内连接 “客户表”,输出 “订单客户”。

【处理后:订单客户(新表)】

订单号 客户编码 金额 客户名称 等级 变更说明
O1 C01 100 华为 金卡 两边都有 C01
O2 C02 200 阿里 银卡 两边都有 C02

逻辑详解:内连接只留对得上的行(O1、O2);O3(C99)与客户表中没有订单的 C03 都不进入结果。


案例 C:右连接(客户表行全部保留)

【执行提示词】

把 “订单表” 按 “客户编码” 右连接 “客户表”,输出 “订单客户”。

【处理后:订单客户(新表)】

订单号 客户编码 金额 客户名称 等级 变更说明
O1 C01 100 华为 金卡 对上订单 O1
O2 C02 200 阿里 银卡 对上订单 O2
(空) C03 (空) 腾讯 金卡 客户表有、订单没有

逻辑详解:右连接以客户表为右侧,C01、C02、C03 均保留;订单里对不上的 O3 不进入结果。


案例 D:全连接(两边未匹配行都留)

【执行提示词】

把 “订单表” 按 “客户编码” 全连接 “客户表”,输出 “订单客户”。

【处理后:订单客户(新表)】

订单号 客户编码 金额 客户名称 等级 变更说明
O1 C01 100 华为 金卡 两边匹配
O2 C02 200 阿里 银卡 两边匹配
O3 C99 50 (空) (空) 仅订单侧
(空) C03 (空) 腾讯 金卡 仅客户侧

逻辑详解:全连接会把客户表里没有订单的 C03 也留下,同时保留订单侧对不上的 O3。源表仍只读。


场景 3:按行号左右并排

业务背景:两张表没有共同键,只按行顺序左右并排成一张宽表(少见)。有工号、客户编码这类键能对上时,应走按键连接,不要按行号硬拼。

【处理前:人员A】

工号 姓名
001 张三
002 李四

【处理前:人员B】

部门 岗位
人事 专员
销售 经理

【执行提示词】

把 “人员A” 和 “人员B” 按行号左右拼在一起,输出 “人员宽表”。

【处理后:人员宽表(新表)】

工号 姓名 部门 岗位 变更说明
001 张三 人事 专员 第 1 行对第 1 行
002 李四 销售 经理 第 2 行对第 2 行

逻辑详解:第几行对第几行,不按工号对齐。行数以较长的那张为准,短的一侧补空。源表「人员A」「人员B」只读。

五、 常见问题与操作贴士(FAQ)

Q1:合并之后,华东订单、订单表这些源表会不会被改掉?

答:不会。源表只读,结果一定写成新表。写了 输出 “全国订单” 就用该名;不写则由系统起一个短名,同样不会覆盖源表。

Q2:左连接和匹配填充有什么区别?会不会把没点名的表卷进来?

答:左连接得到的是一张新表,订单行在新表里与客户列并排,源订单表不变。匹配填充是在目标原表上加列,目标表行数不变。只需贴单价、订单底稿继续往下走时用「匹配填充」;要单独留一张连好维的宽表时用本算子。未点名的表不会被读写。有共同键时不要用按行号并排,避免对错行。

Q3:连续合并多次要注意什么?

答:每一次合并都基于提示词点名的当前源表再写一张新表,不会自动覆盖上一张「订单客户」。若第二次仍 输出 “订单客户”,请确认是否要替换已有结果表,避免和仍要对照的上一版重名。上下拼时列不完全相同会在缺列位置补空;换连接类型(左/内/右/全)前,先核对两边键是否同一列名。

六、 关联算子导航