Skip to content

Split Column

Transform

Split a column into a fixed number of parts using a delimiter. The first N-1 parts get one delimiter-segment each; everything left over goes into the last part. Use it to break apart compound fields like "Last, First", "city/region/country", or pipe-separated tags.

Split Column is a streaming transform: each row is rewritten with the source column replaced by N new columns named {column}_1, {column}_2, … {column}_N. Other columns pass through in their original positions; the new columns slot in where the source column used to be.

Splitting is greedy on the right: with parts=3 and delimiter=",", the value "a,b,c,d,e" becomes ["a", "b", "c,d,e"]. This guarantees no data is dropped — the count of output columns is fixed but every input character lands somewhere.

If the input has fewer segments than parts, the missing tail columns are filled with empty strings. If keepOriginal is true, the source column is retained alongside the split columns.

If the column name is empty, the transform is a passthrough.

Input: One tabular data connection. Output: The same columns, with the source column replaced (or supplemented) by {column}_1{column}_N.

OptionTypeDefaultDescription
columnstring""Source column to split. Required to do anything; empty string is a passthrough.
delimiterstring","String to split on. Multi-character delimiters work (e.g. " - ").
partsinteger2Number of output columns. Minimum 2. The last column absorbs all remaining segments.
keepOriginalbooleanfalseWhen true, the source column is kept in addition to the split columns.

You have a name column formatted as "Last, First" and want separate columns.

Before:

nameemail
Anderson, Alice[email protected]
Brown, Bob[email protected]
Chen, Carol[email protected]

Configuration: column: name, delimiter: , , parts: 2.

After:

name_1name_2email
AndersonAlice[email protected]
BrownBob[email protected]
ChenCarol[email protected]

You have a path column with variable depth. You want city, region, and the rest as a tail.

Before:

path
Valencia/Comunidad Valenciana/Spain
Berlin/Berlin/Germany
Brooklyn/NY/United States/North America

Configuration: column: path, delimiter: /, parts: 3.

After:

path_1path_2path_3
ValenciaComunidad ValencianaSpain
BerlinBerlinGermany
BrooklynNYUnited States/North America

You want the split parts but also need the original combined value for downstream reference.

Before:

skuqty
WIDGET-RED-LG3
GADGET-BLUE-SM1

Configuration: column: sku, delimiter: -, parts: 3, keep original: true.

After:

skusku_1sku_2sku_3qty
WIDGET-RED-LGWIDGETREDLG3
GADGET-BLUE-SMGADGETBLUESM1
  • The last part absorbs the tail, including the delimiter. With parts=2 and delimiter=",", "a,b,c" produces ["a", "b,c"] — the comma is preserved verbatim in name_2. This is the right behavior for compound fields with optional trailing structure but surprising if you assumed splitting drops every delimiter. See apps/web/src/transforms/split-column/logic.ts:59-64.
  • Missing input segments produce empty strings, not nulls. Splitting "single" with parts=3 yields {name_1: "single", name_2: "", name_3: ""}. Filter Rows with is empty will match these, but type coercion to number on a tail column will see "" (which becomes null after coercion). See apps/web/src/transforms/split-column/logic.ts:60-63.
  • The output column position matches the source column position, regardless of keepOriginal. The N new columns slot in where the source was; if keepOriginal is true the source stays first and the new columns follow it. See apps/web/src/transforms/split-column/logic.ts:55-68.
  • Rename Columns — rename the auto-generated {column}_1{column}_N to meaningful names.
  • Formula — concatenate split parts back together or combine with other columns.
  • Replace Values — normalize delimiters before splitting (e.g. swap ; for ,).