节点手册 · 表结构转换

KNIME Unpivoting 宽表转长表用法

Manipulation → Column → Transform

把「每个月一列」的表,转成「月份是一列取值」的表。列名里藏着数据的时候,就该用它。

它解决什么问题

报表给人看的形态常常是宽表:一个部门一行,十二个月各占一列。这种形态好比较,但没法做分析,「月份」这个信息被存进了列名,而不是数据里。

Unpivoting 把选中那些列的列名收进一列、值收进另一列。行数变多、列数变少,月份从此成了可以筛选、可以分组的普通数据。

Excel Reader宽表:12 个月 12 列
列名变数据
Unpivoting转成长表
Column Renamer规范列名
GroupBy按月汇总

它是 Pivoting 的反向操作。一个把长变宽给人看,一个把宽变长给机器算。

基本信息

英文原名Unpivoting
中文名称逆透视 / 宽转长(iModel 中文界面)
输入端口1 个数据表
输出端口1 个。行数是原行数乘以被转列数
反向节点Pivoting
怎么判断该不该转:列名里带着数据吗?列名叫「1 月」「2 月」「Q1」「2025 年」,那就是数据跑到了列名里。列名叫「部门」「金额」「日期」,那就是正常的长表,不用转。

配置项逐条

  • 要转换的列Value columns

    选中的这些列,列名会变成数据。用通配符按模式选,别逐个勾 – 列名如果是「1 月」到「12 月」这种规律形式,明年多一列会自动被覆盖,不用回来改配置。

  • 要保留的列Retained columns

    维度列放这里,它们会在每一行重复出现。漏选一列,那一列的信息就丢了 – 没被选进任何一边的列会直接从输出里消失。

  • 输出列名

    自动生成,通常叫 ColumnNames 和 ColumnValues 这类固定英文。后面接一个 Column Renamer 改成「月份」「金额」,报表和下游都好读。

Unpivoting 配置对话框
要转换的列Value columns
通配符 * 月 这些列的列名会变成数据。用模式选,新增月份自动纳入。
要保留的列Retained columns
部门、机构 维度列全都要选上。两边都没选到的列会直接消失。
输出列名
ColumnNames / ColumnValues 固定英文,后面接改名节点。

三个常见坑

  1. 要转的列类型不一致。这些列会被合并成一列,类型不同就并不到一起。十二个月里有一列被读成了文本,转之前要先统一 – 看列名旁的类型图标最快。
  2. 漏选保留列,信息丢了。没被选进「要转换」也没被选进「要保留」的列会直接消失,而且不报错。转完对一眼列,确认该在的都在。
  3. 转出来的月份是文本,排序会乱。「10 月」会排在「2 月」前面 – 按字符逐位比。要正确排序,要么把月份转成数字,要么在源头就用「2026-01」这种补零写法。

什么时候该换别的节点

情况换成
要反过来,长表转宽表Pivoting
只是想把行列整个对调Transpose,那是矩阵转置,和这个不是一回事
要把一格里用逗号分隔的值拆成多列Cell Splitter
要把拼接成一格的值还原成多行Ungroup

想看完整的宽转长流程

任务教程里有一篇带四步分步演示,能看到表怎么从两行变六行。

iModel 专属客服
在线留言或电话联系
在线留言

留下您的问题和联系方式,我们会在一个工作日内回复。

手机与邮箱至少填一项

4008568196 拨打此号码联系我们

微信扫码咨询

iModel 微信咨询二维码

使用微信扫描上方二维码