它解决什么问题
报表给人看的形态常常是宽表:一个部门一行,十二个月各占一列。这种形态好比较,但没法做分析,「月份」这个信息被存进了列名,而不是数据里。
Unpivoting 把选中那些列的列名收进一列、值收进另一列。行数变多、列数变少,月份从此成了可以筛选、可以分组的普通数据。
它是 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
固定英文,后面接改名节点。
三个常见坑
- 要转的列类型不一致。这些列会被合并成一列,类型不同就并不到一起。十二个月里有一列被读成了文本,转之前要先统一 – 看列名旁的类型图标最快。
- 漏选保留列,信息丢了。没被选进「要转换」也没被选进「要保留」的列会直接消失,而且不报错。转完对一眼列,确认该在的都在。
- 转出来的月份是文本,排序会乱。「10 月」会排在「2 月」前面 – 按字符逐位比。要正确排序,要么把月份转成数字,要么在源头就用「2026-01」这种补零写法。
什么时候该换别的节点
| 情况 | 换成 |
|---|---|
| 要反过来,长表转宽表 | Pivoting |
| 只是想把行列整个对调 | Transpose,那是矩阵转置,和这个不是一回事 |
| 要把一格里用逗号分隔的值拆成多列 | Cell Splitter |
| 要把拼接成一格的值还原成多行 | Ungroup |

