在人事花名册、库存快照与权限清单的两期对照中,分析师需要回答三件事:谁是新进、谁已流失、谁改了字段。两边都有且完全没变的行不应出现在任何结果里,否则复核清单会被「没变化」淹没。

如果采用传统手工方式,只能靠查找、筛选或把两表拼在一起目视,两侧键名不同时更容易对错行;漏掉「只比某几列」的口径后,部门变了、职级没变的人也会被误判进变更,源表还常被改乱。

DT-Bot 的 「表对比」 算子专为解决此类两表按键对齐、一次写出新增 / 流失 / 变更三张新表的问题而设计。源表只读;某张结果可以为 0 行。两边都有且未点名字段没变的行,三张结果里都不会出现。某一侧键不唯一会失败,不会静默去重。

一、 核心能力与适用场景

「表对比」算子聚焦于按键三路分流,覆盖以下三大核心能力:

核心能力 解决什么业务问题 典型业务场景
按键写出新增 / 流失 / 变更 新侧有、旧侧无 → 新增;旧侧有、新侧无 → 流失;两边都有但字段变了 → 变更。没变的行三路都不出现。 人事把本月名单对上月名单:谁新进、谁走了、谁改了部门。
只看某几列变没变 对齐后只比较指定字段;未点名列的变化不进入变更表。新增、流失仍按键是否对齐计算。 只看职级有没有变;部门变了但职级没变时,变更表可以为 0 行。
异名键对齐与自定义三路表名 两侧键列名不同时写清对应关系;三路结果可用业务名命名。 库存当前用货号、库存上次用商品编码对齐;新增输出「新进」,流失输出「出库」,变更输出「数量变动」。

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

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

比较维度 「表对比」算子 「表格合并」算子 「匹配填充」算子 「筛选器」算子
主要定位 两期按键对齐,拆出新增 / 流失 / 变更 两表拼成一张 按键把字段填回原表 单表按条件筛行
输出机制 源表只读,一次写出三张新表 源表只读,写出一张新表 就地或贴列,行数跟主表走 源表只读,写出一张新表
典型动作 键对齐、三路分流、变更列并排、写「变更字段」 上下拼行、按键左右连接 VLOOKUP 式补列 比较、包含、为空、提取重复行
如何选择 “看谁新进、谁走了、谁改了部门” “把两期名单拼成一张长表” “按工号把部门填回本月表” “从单张名单里筛出销售部”

注意:本节点不是 Excel 单元格逐格差异分析,也不在源表上就地改写。

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

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

【新侧 / 旧侧】 + 【对齐键】 + 【三路结果名(可选)】

1. 新侧 / 旧侧表达

  • 点名两张表:哪张是本月 / 当前,哪张是上月 / 对照,例如 对比 “本月名单” 和 “上月名单”;
  • 顺序要稳定:新侧决定「新增」与「变更」的当前值,旧侧决定「流失」与变更前的值。

2. 键与比较范围表达

  • 同名键:按工号看新增、流失、字段变更;
  • 异名键:当前侧用货号、上次侧用商品编码对齐;
  • 只比部分列:只看职级有没有变——新增、流失仍按键有没有对齐来算,不受「只看职级」影响。

3. 结果名(可选)

  • 不写结果名:三路分别为「新表名_新增」「旧表名_流失」「新表名_变更」;
  • 三路都点名:例如 新增输出 “新进”,流失输出 “出库”,变更输出 “数量变动”;
  • 只点一个结果名、又不说三路:本节点应拒绝。
  • 某一侧键不唯一:会失败,不会静默去重。

示例:

对比 “本月名单” 和 “上月名单”,按工号看新增、流失、字段变更。

对应三段:

  1. 新侧:本月名单;旧侧:上月名单
  2. 键:工号
  3. 结果:默认三张

四、 核心功能与图解实战

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

场景 1:按工号看新增、流失、变更

业务背景:人事要把本月在册名单对上月名单,一次得到新进、离职与部门变更三张清单;两边完全没变的人不应出现在任何结果里。

【处理前:本月名单(新侧)】

工号 姓名 部门 职级
E01 张三 销售 经理
E02 李四 人事 专员
E03 王五 销售 专员
E04 赵六 销售 主管

【处理前:上月名单(旧侧)】

工号 姓名 部门 职级
E01 张三 销售 经理
E02 李四 人事 专员
E04 赵六 人事 主管
E05 钱七 财务 专员

【执行提示词】

对比 “本月名单” 和 “上月名单”,按工号看新增、流失、字段变更。

【处理后:本月名单_新增】

工号 姓名 部门 职级 分流说明
E03 王五 销售 专员 本月有、上月无

【处理后:上月名单_流失】

工号 姓名 部门 职级 分流说明
E05 钱七 财务 专员 上月有、本月无

【处理后:本月名单_变更】

工号 姓名 [上月名单]_部门 [本月名单]_部门 职级 变更字段
E04 赵六 人事 销售 主管 部门

逻辑详解:新增只有 E03 王五;流失只有 E05 钱七;变更只有 E04 赵六。没变的列(姓名、职级)保持单列;变了的部门写成 [上月名单]_部门 / [本月名单]_部门,并带「变更字段」列。E01、E02 两边一样,三张结果里都不会出现。源表行数不变。


场景 2:只看某几列变没变

业务背景:仍是上面两张名单。本次复核只关心职级有没有变;部门调整不进入本轮变更清单。新进与流失仍要按工号是否对齐计算。

【处理前】:与场景 1 相同的「本月名单」「上月名单」。

【执行提示词】

对比本月名单和上月名单,按工号对齐,只看职级有没有变。

【处理后:新增】

工号 姓名 部门 职级 分流说明
E03 王五 销售 专员 仍按键对齐:本月有、上月无

【处理后:流失】

工号 姓名 部门 职级 分流说明
E05 钱七 财务 专员 仍按键对齐:上月有、本月无

【处理后:变更】

(0 行) 说明
— 赵六职级仍是主管;部门变化本条不比,变更表为 0 行

逻辑详解:赵六职级仍是主管,变更表应为 0 行。新增、流失仍按键有没有对齐来算,不受「只看职级」影响。源表只读。


场景 3:两侧键名不同、自定义三路表名

业务背景:仓库要把当前库存对上次快照。当前侧键叫「货号」,上次侧键叫「商品编码」;三路结果要用业务名「新进 / 出库 / 数量变动」,而不是默认的「_新增 / _流失 / _变更」。

【处理前:库存当前(新侧)】

货号 品名 数量
A01 水杯 10
A02 毛巾 5
A03 杯子 8

【处理前:库存上次(旧侧)】

商品编码 品名 数量
A01 水杯 10
A02 毛巾 3
A04 纸巾 20

【执行提示词】

对比 “库存当前” 和 “库存上次”,当前侧用货号、上次侧用商品编码对齐。新增输出 “新进”,流失输出 “出库”,变更输出 “数量变动”。

【处理后:新进】

货号 品名 数量 分流说明
A03 杯子 8 当前有、上次无

【处理后:出库】

商品编码 品名 数量 分流说明
A04 纸巾 20 上次有、当前无

【处理后:数量变动】

货号 品名 [库存上次]_数量 [库存当前]_数量 变更字段
A02 毛巾 3 5 数量

逻辑详解:键可以异名映射(货号 ↔ 商品编码)。三张结果用提示词起的名字。A01 两边数量相同,三路都不出现。源表「库存当前」「库存上次」只读。

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

Q1:两边都有且字段没变的行,会出现在哪张结果表?

答:三张结果里都不会出现。本节点只输出新增、流失、变更;完全一致的行被有意排除,避免复核清单被「没变化」淹没。源表行数不变。

Q2:只点一个结果名、又不说三路,或某一侧工号重复,会怎样?

答:只点一个结果名、又不说三路,本节点应拒绝。某一侧键不唯一会失败,不会静默去重——请先用「表操作」把键整理唯一,再做对比。

Q3:「只看职级」会不会把新增、流失也收窄?

答:不会。新增、流失仍按键有没有对齐来算;「只看某几列」只影响变更这一路。赵六部门变了、职级没变时,变更表可以为 0 行,但新进与流失仍在。

Q4:表对比和「表格合并」「匹配填充」该怎么选?

答:两表拼成一张请用「表格合并」。按键把字段填回原表请用「匹配填充」。单表筛行请用「筛选器」。本节点不是 Excel 单元格逐格差异分析。

六、 关联算子导航