CSV Column Splitter & Concatenator

Split one CSV column into several fields by a literal separator, or join multiple columns into one. Select columns by header name or index, control names and trimming, and keep or replace the source columns.

Try:
Transformed CSV

About this CSV column tool

Use this tool when a CSV field contains multiple pieces of data in one cell, or when several columns need to become one display field. It works like a browser version of spreadsheet "Text to Columns" plus the inverse concatenate operation.

For splitting, choose one column by header name (for example name) or by 1-based index (for example 2), choose a literal separator, and optionally name the generated columns:

id,name
1,John Doe
2,Ada Lovelace

Splitting name on a space with output names first,last produces:

id,first,last
1,John,Doe
2,Ada,Lovelace

For concatenating, list the source columns in order. Joining first,last with a space and naming the output name turns Ada,Lovelace,36 into Ada Lovelace,36.

Options and limits

Everything runs locally in your browser. Your CSV data is not uploaded.

FAQ

Can I split a full name into first and last columns?

Yes. Use mode=split, set columns to your name column, set separator to a space, and set names to something like first,last. For names with middle parts, set max_columns=2 if you want everything after the first space to stay in the second column.

How do I split only on the first delimiter?

Set max_columns to 2. For example, splitting San Jose, CA, USA on comma with max_columns=2 produces San Jose and CA, USA instead of three columns.

Can I select columns by number instead of header name?

Yes. Use 1-based column numbers such as 1 or 2. This is required when has_header is off, and it also works as a fallback when a header name is not found.

Does the separator support regular expressions?

No. The separator is a literal string. This keeps the tool predictable for CSV cleanup tasks and avoids regex escaping surprises.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool csv-column-split "id,name
1,John Doe
2,Ada Lovelace" 'columns=name'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/csv-column-split/?data=id%2Cname%0A1%2CJohn%20Doe%0A2%2CAda%20Lovelace&mode=split&columns=name&separator=space%2C%20comma%2C%20%7C%2C%20or%20custom%20text&names=first%2Clast&max_columns=0&keep_source=true&trim=true&has_header=true&delimiter=%2C

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.