在对账、抽检与专项分析链路中,分析师经常只要总表里的一部分行:金额过线的大额订单、备注为空的待补录行、客户名称重复出现的核对清单,或相对整列分布明显偏离的测温读数。

如果采用传统手工方式,只能在源表上反复点筛选、隐藏行再另存;空单元格与空串容易被混为一谈,「提取重复行」也常被做成「每个姓名只留一条」,源表一旦被筛瘦,后续复盘就失去完整底稿。

DT-Bot 的 「筛选器」 算子专为解决此类按条件从一张表抽出行、写成一张新表的问题而设计。它支持比较、包含、为空以及提取某列重复 / 不重复的行,也可先收窄条件再判断重复,或按分布公式找出异常行;源表只读,不改单元格、不增删列,工作空间始终保留完整底表。

一、 核心能力与适用场景

「筛选器」算子聚焦于单路抽出目标行并另存新表,覆盖以下五大核心能力:

核心能力 解决什么业务问题 典型业务场景
比较与包含 按数值大小、等于 / 不等于、区间、包含 / 不包含、开头或结尾、属于某几个取值筛选;多条件用并且 / 或者。 财务只要金额大于 100 的订单去做对账;只要渠道是天猫且备注不为空的行。
为空 / 不为空 按某列是否为空抽出一行不改的子集。 抽出备注为空的订单,交给补录岗;或只要备注已填写的加急行。
提取重复行 把某列取值出现超过一次的行全部留下;也可只要只出现一次的不重复行。 把客户名称重复出现的行全部提出来核对。注意:去重只留一条不是本节点。
条件后再提取重复 先按业务条件缩小范围,再在子集里判断重复。 先留下渠道是天猫的行,再提取其中订单号重复的行。
按分布公式找异常行 找出某列相对整列(或组内)分布的异常行,例如超过均值 2 个标准差、超过均值 2 倍、IQR 之外。 测温记录里找出读数相对整列均值超过 2 个标准差的行,只要一张异常清单。

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

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

比较维度 「筛选器」算子 「数据校验」算子 「表格拆分」算子 「表操作」算子 「组内加列」算子 「行操作」算子
主要定位 抽出目标子集,只要一张新表 合格与异常两路都留 按键 / 粒度拆成很多张 就地删行、去重、排序 给每一行打分或贴列,行数不变 清洗单元格文本
输出机制 源表只读,生成独立新表 源表只读,写出合格表 + 异常表 源表只读,写出多张新表 就地更新原表 就地或贴列,一行都不删 就地更新原表(单元格级)
典型动作 比较、包含、为空、提取重复行、分布异常 按不合格规则分流并写异常原因 按渠道、季度、行数等拆堆 删除作废行、按键去重只留一条 计算 z 分、组内排名贴列 去空格、替换、正则提取
如何选择 “从总订单里挑出大额单,单独拉一张做专项” “合格和异常都要归档,异常还要写原因” “按渠道拆成天猫、京东各一张” “把这表里的作废单直接删了继续往下走” “只要给每行打 z 分,一行都不删” “把客户名称里的空格和错字清掉”

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

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

【源表】 + 【筛选条件】 + 【结果名(可选)】

1. 目标表表达

  • 单表精准点名:明确从哪张表筛,例如 从 “订单明细” 筛出金额大于 100 的行;
  • 默认当前流转表:若提示词中未显式提及表名,算子将默认继承上一节点连线流入的数据表。

2. 条件表达

  • 比较:金额大于 100、等于、不等于、大于等于、小于、区间;
  • 文本匹配:包含、不包含、以某字开头或结尾、属于或不属于某几个取值;
  • 空值:备注为空、备注不为空;
  • 重复:提取姓名重复的行、提取不重复的行;
  • 叠加:先留下渠道是天猫的行,再提取其中订单号重复的行;多条件用「并且 / 或者」;
  • 分布:读数相对整列均值超过 2 个标准差,也可以写「去掉这些异常行」「超过均值 2 倍」「IQR 之外」。

3. 结果名(可选)

  • 不写结果名:新表一般叫「源表名_筛选」;
  • 写了结果名:按指定名称输出,例如 输出 “大额订单”。

示例:

从 “订单明细” 筛出金额大于 100 的行,输出 “大额订单”。

对应三段:

  1. 表:订单明细
  2. 条件:金额大于 100
  3. 结果:大额订单

四、 核心功能与图解实战

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

场景 1:比较条件(阈值抽出大额订单)

业务背景:财务只要金额大于 100 的订单去做对账,低于阈值的行留在源表里供其他岗位继续使用,不能就地删掉。

【处理前:订单明细】

订单号 渠道 金额
O1 天猫 120
O2 京东 80
O3 天猫 50

【执行提示词】

从 “订单明细” 筛出金额大于 100 的行。

【处理后:新表(源表只读)】

订单号 渠道 金额 筛选依据
O1 天猫 120 120 > 100,命中比较条件

逻辑详解:只有 O1 进入新表;O2(80)、O3(50)不进入。源表「订单明细」仍是 3 行,列结构不变。同一能力也可以写等于、不等于、大于等于、小于、区间、包含、不包含、以某字开头或结尾、属于或不属于某几个取值;多条件用「并且 / 或者」。例如学员表上写「年龄大于 20 并且班级是 2班」,会留下张三两行和王五。


场景 2:某列为空或不为空

业务背景:订单备注有的是空、有的已填「加急」。补录岗只要备注为空的行;加急岗则只要不为空的行。两边都不能改源表。

【处理前:订单明细】

订单号 备注
O1 (空)
O2 加急

【执行提示词】

从 “订单明细” 筛出备注为空的行。

【处理后:新表(源表只读)】

订单号 备注 筛选依据
O1 (空) 备注为空,命中

逻辑详解:得到 O1。若筛「备注不为空」则得到 O2。源表行数与单元格均不改写。


场景 3:提取重复行(全部留下,不是去重)

业务背景:学员名单里同一姓名出现多次,教务要把这些重复行全部提出来核对,而不是每个姓名只留一条。

【处理前:学员表】

姓名 班级 年龄
张三 2班 21
李四 1班 18
张三 2班 22

【执行提示词】

从 “学员表” 提取姓名重复的行。

【处理后:新表(源表只读)】

姓名 班级 年龄 筛选依据
张三 2班 21 姓名「张三」出现 2 次,两行都留
张三 2班 22 姓名「张三」出现 2 次,两行都留

逻辑详解:张三的两行都会留下。李四只出现一次,不会留下。「提取不重复的行」则只留李四这种只出现一次的。注意:去重、每个姓名只留一条,不是本节点,请使用「表操作」。


场景 4:条件再叠加重复(先收窄再判断)

业务背景:订单明细里多个渠道混排,对账只要天猫侧订单号重复的行;京东即使订单号重复也不在本专项范围内。

【处理前:订单明细】

订单号 渠道 金额
O1 天猫 120
O1 天猫 30
O2 京东 80
O2 京东 40
O3 天猫 50

【执行提示词】

从 “订单明细” 先留下渠道是天猫的行,再提取其中订单号重复的行。

【处理后:新表(源表只读)】

订单号 渠道 金额 筛选依据
O1 天猫 120 先入天猫子集,再因订单号重复留下
O1 天猫 30 与上一行订单号相同,一并留下

逻辑详解:先按条件缩小范围(渠道=天猫:O1、O1、O3),再判断重复(O1 出现两次,O3 只一次)。京东侧 O2 即使重复,也不进入本结果。源表只读。


场景 5:按分布公式找异常行(只要一张清单)

业务背景:测温记录里多数读数贴近 10,个别读数冲到 100。质检只要一张「相对整列分布偏离」的清单,不要同时再留一张合格表。

【处理前:测温记录】

编号 部门 读数
1 甲 10
2 甲 10
3 甲 100

【执行提示词】

从 “测温记录” 找出读数相对整列均值超过 2 个标准差的行。

【处理后:新表(源表只读)】

编号 部门 读数 筛选依据
3 甲 100 相对整列均值明显偏离,进入异常清单

逻辑详解:留下偏离整列分布的那些行(本例为读数 100)。编号 1、2 贴近主体分布,不进入结果。同一能力也可以写「去掉这些异常行」「超过均值 2 倍」「IQR 之外」。只要一张表。合格和异常两路都留,请用「数据校验」。只打 z 分、一行都不删,请用「组内加列」。按行序滚动或先把多表合成一张再筛,不是本节点。

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

Q1:为什么执行「筛选器」后,源表行数没有变少?

答:这是「筛选器」的核心设计机制。它把命中条件的行另存为新表,源表保持只读。不写结果名时,新表一般叫「源表名_筛选」。若您其实想在当前表上直接删掉不符条件的行,请使用「表操作」。

Q2:「提取重复行」和「按姓名去重只留一条」有什么区别?

答:本节点的「提取重复行」会把同一姓名的全部出现行都留下,用于核对冲突;「提取不重复的行」则只留只出现一次的行。若目标是每个姓名只保留一条、其余删掉,请使用「表操作」的按键去重,不要用本节点。

Q3:只要一张结果表,和「数据校验」「表格拆分」该怎么选?

答:
- 只要筛出符合条件的行、只要一张表:用「筛选器」;
- 合格和异常两路都留,且异常要带「异常原因」:用「数据校验」;
- 按渠道、季度等拆成很多张:用「表格拆分」。

Q4:筛选器会改单元格、增删列,或按行序滚动计算吗?

答:不会。本节点不改单元格、不增删列。去空格、替换单元格请用「行操作」。只要给每一行打 z 分、行数不变,请用「组内加列」。按行序滚动或先把多表合成一张再筛,不是本节点。

六、 关联算子导航