大区拆分的订单、客户主数据与事实表、以及两张只能按行序并排的宽表,分析师经常要把多张工作空间表合成一张,才能做全国汇总或补维分析。源表还要留给其它节点,不能在合并时被改写。
如果靠复制粘贴上下拼接,列对不齐就会错位;用查找引用做左右连接,漏行、一对多都难复查,也无法在工作流里复跑。
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:连续合并多次要注意什么?
答:每一次合并都基于提示词点名的当前源表再写一张新表,不会自动覆盖上一张「订单客户」。若第二次仍
输出 “订单客户”,请确认是否要替换已有结果表,避免和仍要对照的上一版重名。上下拼时列不完全相同会在缺列位置补空;换连接类型(左/内/右/全)前,先核对两边键是否同一列名。
六、 关联算子导航
- 若需按键把字段填回原表、行数不变:请参考 数据处理 · 匹配填充
- 若需把一张表拆成多张新表:请参考 数据处理 · 表格拆分
- 若只需从一张表按条件筛行、仍是一张结果:请参考 数据处理 · 筛选器
- 若需合格和异常两路都留:请参考 数据处理 · 数据校验
- 欲下载真实数据表格亲自动手实测:请查阅 数据案例 · 表格合并案例