宽表对账时,分析师往往只要订单号、客户、金额几列,或只要前几行样本核对格式;一个工作簿里又常有华东、华北多张工作表,只要其中一张。源表还要留给其它节点继续用。
如果靠在 Excel 里删列、隐藏列或另存副本,很容易误伤源表,按「A:C」还是「只要前三列」的说法也不统一,更难以在工作流里复跑。
DT-Bot 的 「表格截取」 算子专为解决此类按 Excel 区域从一张表(或磁盘上的 xlsx/csv/txt/json)切出需要的列和行而设计。它支持按列区、列清单、行号、行列一块以及工作表切片,也可整份导入。默认写成工作空间里的新表,源表还在,除非明确说覆盖。不改单元格内容。要去空格、替换请用「行操作」;按地址查改某一格、不切出新表,请用「格子编辑」;筛行留一张请用「筛选器」;只要改列名请用「表头整理」;跨表按键补列请用「匹配填充」。
工作空间已导入的表:列字母 A 起对应第一列业务列;写了行号时,第 1 行是第一行数据(表头已经是列名)。磁盘 xlsx:A1 是格子坐标,第一行通常是表头。
一、 核心能力与适用场景
「表格截取」算子聚焦于切片另存、源表只读,覆盖以下核心能力:
| 核心能力 | 解决什么业务问题 | 典型业务场景 |
|---|---|---|
| 按连续列区截取 | 只要一段连续列,全部行写入新表。 | 财务只要订单号、客户、商品编码(A:C)去做对账,其余列先不要。 |
| 按列清单截取 | 只要不连续的若干列,按点名顺序写出。 | 只要订单号、商品编码、金额(A、C、E),中间列不带上。 |
| 按行列一块截取 | 同时限定列范围与行范围。 | 只要 A1:D3 这一块做抽查,不要整表。 |
| 按行号截取 | 只要指定行,列保持全表。 | 只要前 20 行(或 1:2)样本核对格式,不用整表。 |
| 按工作表切片 / 整份导入 | 从工作簿点名某一个 sheet,或把 csv/txt/json/xlsx 整份推进工作空间。 | 销售报表里只要「华东」那一张;或把名单.csv 整份导入。 |
二、 边界指南:它与相近算子有何区别?
在构建数据工作流时,理解算子之间的职责边界至关重要:
| 比较维度 | 「表格截取」算子 | 「筛选器」算子 | 「表头整理」算子 | 「格子编辑」算子 |
|---|---|---|---|---|
| 主要定位 | 按列区 / 列清单 / 行号 / 工作表切片成新表 | 按行条件抽出子集另存 | 改列名、删列、调列序 | 按地址读写格子,不切新表 |
| 输出机制 | 默认新表,源表还在(除非明确说覆盖) | 保留源表,生成独立新表 | 就地或另存 | 查询不改表;写入默认就地 |
| 典型动作 | A:C、A,C,E、A1:D20、1:20、点名工作表 |
金额大于 100、状态为已支付 | 把字段改成业务名、删备注列 | 改 D2、拷一块矩形 |
| 如何选择 | “只要前三列 / 前两行,源表别动” | “从总表里挑出大额订单单独分析” | “列都要留,只是改名或换顺序” | “只改某一个格子,不要切出新表” |
三、 提示词编写规范与公式
「表格截取」算子支持自然语言直接表达,建议遵循以下标准的三要素编写公式:
【源表或磁盘文件】 + 【范围(列区 / 列清单 / 行号 / 工作表)】 + 【结果名(可选)】
1. 目标表范围表达
- 工作空间表:
把 “订单明细” 的 … 截出来; - 磁盘文件:
把 “销售报表.xlsx” 的 “华东” 工作表导入、把 “名单.csv” 导入工作空间; - 结果名可选:写了则用该名;不写则按源表名加区域自动命名。不覆盖源表,除非明确说覆盖。
2. 核心操作动作表达
- 连续列区:
A:C 列(A 到 C 列,全部行); - 列清单:
A、C、E 列; - 行列一块:
A1:D3; - 只截行:
第 1 到第 2 行或按 1:2; - 工作表:
“华东” 工作表,也可写成导入第 1 个工作表。
3. 可复制示例
把 “订单明细” 的 A:C 列截出来,输出 “订单明细_对账”。
对应三段:源是订单明细;范围是 A 到 C 列、全部行;结果叫「订单明细_对账」。
四、 核心功能与图解实战
以下结合真实企业数据场景,展示「表格截取」在不同需求下的处理效果:
场景 1:按连续列区截取(A:C)
业务背景:财务只要订单号、客户名称、商品编码三列去做对账,数量和金额这一步先不要;原「订单明细」还要留给其它节点。
【处理前:订单明细】
| 订单号 | 客户名称 | 商品编码 | 数量 | 金额 |
|---|---|---|---|---|
| O1 | 华为 | S001 | 2 | 20 |
| O2 | 阿里 | S002 | 1 | 20 |
【执行提示词】
把 “订单明细” 的 A:C 列截出来。
【处理后:新表(按源表名加区域自动命名)】
| 订单号 | 客户名称 | 商品编码 | 变更说明 |
|---|---|---|---|
| O1 | 华为 | S001 | 仅 A 到 C 列 |
| O2 | 阿里 | S002 | 数量、金额未带入新表 |
逻辑详解:源表「订单明细」五行五列保持原样。需要自己点名结果表时,写成:
把 “订单明细” 的 A:C 列截出来,输出 “订单明细_对账”。
或:
把 “订单明细” 的 A:C 列截出来,输出 “订单对账底稿”。
新表分别叫「订单明细_对账」「订单对账底稿」;只有明确说「覆盖原表」时才写回源表。
场景 2:按列清单截取(不连续列)
业务背景:对账只要订单号、商品编码、金额,中间的客户名称、数量不必带上。
【处理前:订单明细】(同场景 1)
| 订单号 | 客户名称 | 商品编码 | 数量 | 金额 |
|---|---|---|---|---|
| O1 | 华为 | S001 | 2 | 20 |
| O2 | 阿里 | S002 | 1 | 20 |
【执行提示词】
把 “订单明细” 的 A、C、E 列截出来。
【处理后:新表(按源表名加区域自动命名)】
| 订单号 | 商品编码 | 金额 | 变更说明 |
|---|---|---|---|
| O1 | S001 | 20 | A、C、E,跳过 B、D |
| O2 | S002 | 20 | 源表「订单明细」仍为五列 |
逻辑详解:列按清单点名写出,不是一段连续区。单元格内容不做清洗。
场景 3:按行列一块截取(A1:D3)
业务背景:宽表很大,财务只要左上角一块(前 4 列、前 3 行数据)核对字段是否对得上,再决定要不要整表加工。
【处理前:订单明细】
| 订单号 | 客户名称 | 商品编码 | 数量 | 金额 |
|---|---|---|---|---|
| O1 | 华为 | S001 | 2 | 20 |
| O2 | 阿里 | S002 | 1 | 20 |
| O3 | 腾讯 | S001 | 5 | 50 |
| O4 | 字节 | S003 | 3 | 45 |
【执行提示词】
把 “订单明细” 的 A1:D3 截出来。
【处理后:新表(工作空间表:前 3 行数据、A 到 D 列)】
| 订单号 | 客户名称 | 商品编码 | 数量 | 变更说明 |
|---|---|---|---|---|
| O1 | 华为 | S001 | 2 | 第 1 行数据 |
| O2 | 阿里 | S002 | 1 | 第 2 行数据 |
| O3 | 腾讯 | S001 | 5 | 第 3 行数据;O4 与金额列未纳入 |
逻辑详解:工作空间表写了行号时,第 1 行是第一行数据(表头已经是列名),因此 A1:D3 是前 3 行、A 到 D 列。源表四行五列仍在。
场景 4:按行号截取(只要前几行、全部列)
业务背景:只要前 2 行样本核对格式,列要全,不要整表。
【处理前:订单明细】(同场景 3 的四行五列)
| 订单号 | 客户名称 | 商品编码 | 数量 | 金额 |
|---|---|---|---|---|
| O1 | 华为 | S001 | 2 | 20 |
| O2 | 阿里 | S002 | 1 | 20 |
| O3 | 腾讯 | S001 | 5 | 50 |
| O4 | 字节 | S003 | 3 | 45 |
【执行提示词】
把 “订单明细” 的第 1 到第 2 行截出来。
或:
把 “订单明细” 按 1:2 截出来。
【处理后:新表(前 2 行、全部列)】
| 订单号 | 客户名称 | 商品编码 | 数量 | 金额 | 变更说明 |
|---|---|---|---|---|---|
| O1 | 华为 | S001 | 2 | 20 | 第 1 行数据 |
| O2 | 阿里 | S002 | 1 | 20 | 第 2 行数据;O3、O4 未纳入 |
逻辑详解:只截行时列保持全表;源表「订单明细」四行不变。
场景 5:指定工作表(只要其中一个 sheet)
业务背景:销售报表工作簿里有华东、华北、汇总三张工作表,本期只要「华东」做区域对账,其它 sheet 不要推进当前底稿。
【处理前:销售报表.xlsx】(三个工作表:华东、华北、汇总)
华东:
| 月份 | 销售额 | 成本 |
|---|---|---|
| 1月 | 100 | 60 |
| 2月 | 120 | 70 |
【执行提示词】
把 “销售报表.xlsx” 的 “华东” 工作表导入。
【处理后:新表(仅华东)】
| 月份 | 销售额 | 成本 | 变更说明 |
|---|---|---|---|
| 1月 | 100 | 60 | 只导入「华东」 |
| 2月 | 120 | 70 | 华北、汇总未写入这张结果 |
逻辑详解:只得到华东这一张表。也可以写成:导入销售报表的第 1 个工作表。磁盘 xlsx 的 A1 是格子坐标,第一行通常是表头。
场景 6:整份导入磁盘文件
业务背景:名单在 csv 里,这一步不需要切列切行,整份推进工作空间即可;xlsx / txt / json 同样可以整份导入。
【处理前:名单.csv】(磁盘文件,不写区域表示整张)
| 工号 | 姓名 | 部门 |
|---|---|---|
| 001 | 张三 | 人事部 |
| 002 | 李四 | 销售部 |
【执行提示词】
把 “名单.csv” 导入工作空间。
【处理后:新表(整份导入)】
| 工号 | 姓名 | 部门 | 变更说明 |
|---|---|---|---|
| 001 | 张三 | 人事部 | 未写区域,整张进入工作空间 |
| 002 | 李四 | 销售部 | csv / txt / json / xlsx 均可这样导入 |
逻辑详解:xlsx 多工作表时,每个 sheet 一张表。源文件仍在磁盘上,工作空间得到导入结果,不覆盖未点名的其它表。
五、 常见问题与操作贴士(FAQ)
Q1:截取之后,源表「订单明细」还在吗?为什么有时看不到我起的名字?
答:默认写出新表,不覆盖源表。不写结果名时,新表按源表名加区域自动命名,所以不一定叫「订单明细」。需要固定名字时请写
输出 “订单对账底稿”。只有明确说「覆盖原表」才会写回源表。
Q2:会不会改到源表单元格,或把没点名的列、行一并切走?
答:不会改单元格内容。范围以提示词里的列区、列清单、行号或工作表名为准:A:C 不会带上 D 列;1:2 不会带上第 3 行;点名「华东」不会把华北写进同一张结果。未点名的工作空间表保持只读。
Q3:连续截取多次要注意什么?工作空间行号和磁盘 xlsx 一样吗?
答:每跑一次都会(默认)再落一张新表,源表一直还在,连续跑容易堆出多张切片副本,请写清输出名以免重名混淆。工作空间已导入的表:A 起是第一列业务列,第 1 行是第一行数据(表头已经是列名)。磁盘 xlsx:A1 是格子坐标,第一行通常是表头。同一句
A1:D3在两种源上含义不同,写提示词前先分清源是工作空间表还是磁盘文件。
六、 关联算子导航
- 若需按行条件抽出子集、而不是按列区/行号切片:请参考 数据处理 · 筛选器
- 若需改列名、删列或调列序、仍是同一张表结构治理:请参考 数据处理 · 表头整理
- 若需按地址改某一格、不切出新表:请参考 数据处理 · 格子编辑
- 若需去空格、替换单元格后再切片:请参考 数据处理 · 行操作
- 欲下载真实数据表格亲自动手实测:请查阅 数据案例 · 表格截取案例