在对照表与指标竖排报表链路中,分析师经常面对「指标在行、地区在列」的宽表,后续透视或出表却需要「地区在行、指标在列」;或者月份竖排,需要翻成横排表头。这与按维度求和的透视不是同一件事。
如果采用传统手工方式,不仅要整表复制、选择性粘贴「转置」,而且空单元格、表头来源和是否另存都容易失手,也无法形成可回溯、可自动复跑的工作流。
DT-Bot 的 「行列转置」 算子专为解决此类整表翻轴而设计。它把整张表行变列、列变行,默认就地改源表;写了结果名则写新表。默认用第一列的取值当新表头。不聚合、不指定列维。
一、 核心能力与适用场景
「行列转置」算子聚焦于整表行轴与列轴对调,覆盖以下三大核心能力:
| 核心能力 | 解决什么业务问题 | 典型业务场景 |
|---|---|---|
| 第一列当新表头(默认) | 第一列的取值成为新表头,该列列名成为新表第一列。 | 对照表「指标在行、地区在列」翻成「地区在行、指标在列」。 |
| 点名某一列当新表头 | 明确指定用哪一列的取值当新表头,而不是默默依赖列顺序。 | 用「指标」列当新表头,避免列顺序变化后翻错轴。 |
| 纯矩阵翻轴 / 写出新表 | 不要用某一列当表头,原表头当作矩阵第一行一起翻;写了结果名则源表不改。 | 整表当纯矩阵翻轴,新表头为列1、列2…;输出「对照表_转置」。 |
二、 边界指南:它与相近算子有何区别?
在构建数据工作流时,理解算子之间的职责边界至关重要:
| 比较维度 | 「行列转置」算子 | 「透视反透视」算子 | 「表头整理」算子 |
|---|---|---|---|
| 主要定位 | 整表翻轴,行变列、列变行 | 指定谁做列、格子里求和或计数 | 只改列名或列顺序,不翻轴 |
| 输出机制 | 默认就地改源表;写了结果名则写新表 | 源表只读,写出新表 | 就地或另存新表 |
| 典型动作 | 第一列当新表头、点名列当新表头、纯矩阵翻轴 | 透视交叉表、反透视成长表 | 修改列名、剔除冗余列、调整列顺序 |
| 如何选择 | “整表翻过来,格子原样落入对应位置,不要求和” | “按地区做行、月份做列,金额求和” | “只把英文字段名改回中文,表还是原来的宽窄” |
不聚合、不指定列维。新列数超过 512 会拒绝。空单元格原样保留。
三、 提示词编写规范与公式
「行列转置」算子支持自然语言直接表达,建议遵循以下标准的三要素编写公式:
【目标表范围】 + 【转置动作】 + 【表头来源与输出】
1. 目标表范围表达
- 单表精准点名:明确指定单张表名称,例如
把 “对照表” 行列转置,第一列当新表头; - 默认当前流转表:若提示词中未显式提及表名,算子将默认继承上一节点连线流入的数据表。
2. 表头来源表达
- 第一列当新表头(默认):
第一列当新表头;未写时也按此默认执行; - 点名某一列:
用 “指标” 列当新表头; - 纯矩阵翻轴:
不要用某一列当新表头——原表头会当作矩阵第一行一起翻,新表头为列1、列2…。
3. 结果名(可选)
- 不写则改源表;
- 写了结果名则写新表,源表不改,例如
输出 “对照表_转置”。
示例对应三段:
- 表:对照表
- 表头:第一列取值当新表头
- 结果:就地改源表
四、 核心功能与图解实战
以下结合真实企业数据场景,展示「行列转置」在不同需求下的处理效果:
场景 1:第一列当新表头(默认)
业务背景:对照表当前是「指标在行、地区在列」,后续出表需要「地区在行、指标在列」。格子里的数值必须原样落入对应位置,不能对格子求和。
【处理前:对照表】
| 指标 | 华东 | 华北 |
|---|---|---|
| 销售额 | 100 | 80 |
| 订单数 | 10 | 8 |
【执行提示词】
把 “对照表” 行列转置,第一列当新表头。
【处理后:对照表(就地更新)】
| 指标 | 销售额 | 订单数 | 变更说明 |
|---|---|---|---|
| 华东 | 100 | 10 | 原「华东」列翻成行;销售额 100、订单数 10 原样落入 |
| 华北 | 80 | 8 | 原「华北」列翻成行;销售额 80、订单数 8 原样落入 |
逻辑详解:第一列列名「指标」成为新表第一列;第一列取值「销售额」「订单数」成为新表头。原来的华东、华北变成行。这不是透视,没有对格子做求和。空单元格会原样保留。
场景 2:点名某一列当新表头
业务背景:对照表第一列恰好是「指标」,分析师希望把表头来源写死,避免以后列顺序调整后仍按「第几列」去翻。
【处理前:对照表】
| 指标 | 华东 | 华北 |
|---|---|---|
| 销售额 | 100 | 80 |
| 订单数 | 10 | 8 |
【执行提示词】
把对照表行列转置,用 “指标” 列当新表头。
【处理后:对照表(就地更新)】
| 指标 | 销售额 | 订单数 | 变更说明 |
|---|---|---|---|
| 华东 | 100 | 10 | 点名「指标」列当新表头,结果与默认第一列策略相同 |
| 华北 | 80 | 8 | 数值原样落入,不聚合 |
逻辑详解:点名列与默认第一列在本例中不产生第二套翻法,因为「指标」本来就是第一列。若以后「指标」不再位于第一列,仍应点名该列,而不是改口去指定列维或求和。
场景 3:纯矩阵翻轴并写出新表
业务背景:需要把对照表当作纯矩阵翻转,不要用某一列当新表头;原表头要当作矩阵第一行一起翻。源对照表必须保留导入原样,结果落到新表。
【处理前:对照表】
| 指标 | 华东 | 华北 |
|---|---|---|
| 销售额 | 100 | 80 |
| 订单数 | 10 | 8 |
【执行提示词】
把对照表整表转置,不要用某一列当新表头,输出 “对照表_转置”。
【处理后:对照表(源表不改)】
| 指标 | 华东 | 华北 | 变更说明 |
|---|---|---|---|
| 销售额 | 100 | 80 | 写了结果名,源表保持 2 行 × 3 列原样 |
| 订单数 | 10 | 8 | 写了结果名,源表保持导入原样 |
【处理后:对照表_转置(新表)】
| 列1 | 列2 | 列3 | 变更说明 |
|---|---|---|---|
| 指标 | 销售额 | 订单数 | 原表头作为第一行一起翻 |
| 华东 | 100 | 10 | 原「华东」列翻成行 |
| 华北 | 80 | 8 | 原「华北」列翻成行 |
逻辑详解:新表头为列1、列2、列3(或同类编号)。原表头「指标、华东、华北」会作为矩阵第一行一起翻。空单元格原样保留。不聚合、不指定列维。新列数超过 512 会拒绝。
五、 常见问题与操作贴士(FAQ)
Q1:什么时候就地改源表,什么时候会多一张新表?
答:未写输出名时,「行列转置」默认就地改源表,工作空间不会多出新表名。提示词写了输出名(如「对照表_转置」)则源表应仍原样,结果落在新表。
就地转置后再执行下一条,会在已经翻过的表上再翻一次,核验前请确认当前表形态。
Q2:转置会对格子求和吗?和「透视反透视」怎么选?
答:不会求和。本算子只翻轴,格子原样落入对应位置,不聚合、不指定列维。
指定谁做列、格子里求和,请用 「透视反透视」。只改列名或列顺序、不翻轴,请用 「表头整理」。
Q3:空单元格和新列数有什么限制?
答:空单元格原样保留,不会被填成 0 或空串策略以外的值。新列数超过 512 会拒绝——本算子面向对照表翻轴,不是高基数列展开。
Q4:不写「第一列当新表头」会怎样?
答:默认仍用第一列的取值当新表头,该列列名成为新表第一列。只有明确写「不要用某一列当新表头」时,才走纯矩阵翻轴,原表头当作矩阵第一行一起翻。
六、 关联算子导航
- 若需指定谁做列、格子里求和或反透视成长表:请参考 数据统计 · 透视反透视
- 若只需修改表头列名、删除整列、重排展示列顺序:请参考 数据处理 · 表头整理
- 欲下载真实数据表格亲自动手实测:请查阅 数据案例 · 行列转置案例