它解决什么问题
源数据里常有把好几个信息挤在一格的情况:地址、全路径、「部门-岗位」、用逗号分隔的多个标签。要按其中某一段筛选或分组,得先拆开。
拆完的列名是自动生成的编号形式,紧跟一个改名节点是标配。
基本信息
| 英文原名 | Cell Splitter |
|---|---|
| 中文名称 | 单元格拆分(iModel 中文界面) |
| 输入端口 | 1 个数据表 |
| 输出端口 | 1 个,行数不变,多出若干列 |
| 输出类型 | 拆出来的一律是文本。需要数字要再转 |
配置项逐条
-
要拆的列与分隔符Column / Delimiter
选列,填分隔符。分隔符可以是一个字符也可以是一串。先看清楚数据里到底用的是什么 – 中文数据里全角逗号和半角逗号混用非常常见,填错了就一列都拆不出来。
-
拆成几列Set array size / Guess
可以让它扫描数据自动推断列数,也可以手工指定。推荐手工指定 – 自动推断的结果随数据变,这个月的数据最多三段、下个月出现四段,输出列数就变了,下游跟着断。
手工指定为三列时,超出的部分会被丢掉或者并入最后一列,不足的补空。哪种行为取决于配置,用之前拿几行试一下。
-
输出形态Columns / List / Set
拆成多列是最常用的。拆成列表适合段数不固定又想全部保留的场合 – 后面接 Ungroup 可以把列表还原成多行。
Cell Splitter 配置对话框
分隔符Delimiter
/
中文数据注意全角与半角。一列都拆不出来,先查这一项。
拆成几列
自动推断手工指定 3 列
手工指定,输出结构才稳定。自动推断会随数据变,下游容易断。
输出形态
多列列表
段数不固定又要全保留时用列表,后面接 Ungroup 还原成多行。
三个常见坑
- 分隔符本身出现在数据里。地址里带斜杠、备注里带逗号,拆出来的段数就不对。这种情况没有好办法 – 要么换一个不会冲突的分隔符,要么回源头要结构化的数据。
- 段数不固定,有的三段有的四段。手工指定列数会丢信息,自动推断会让列数不稳。先用 String Manipulation 数一下分隔符出现几次,看分布再决定策略。
- 拆完忘了转类型。输出一律是文本。拆出来的邮编、金额、年份要拿去算,得再接一个类型转换。
什么时候该换别的节点
| 情况 | 换成 |
|---|---|
| 只要取固定位置的几个字符 | String Manipulation 的 substr,比拆分轻 |
| 要反过来把几列拼成一列 | Column Combiner,或 String Manipulation 的 join |
| 拆完想变成多行不是多列 | 拆成列表再接 Ungroup |
| 规则复杂,要靠正则提取 | String Manipulation 的正则函数 |

