How to split one address column into separate address fields
- Step 1Export your orders or contacts as CSV — From your store, form tool, or CRM, export the data containing one full-address column (often labelled
Address,Shipping Address, orLocation). - Step 2Drop the CSV onto the splitter — PapaParse parses the file in your browser and lists the headers as selectable columns. Addresses stay local — nothing is uploaded.
- Step 3Select the address column — Choose the radio button for the column holding the whole address. It is replaced in place by the new address-part columns; all other columns (name, order ID, email) keep their position.
- Step 4Set the delimiter to match the address format — For
Street, City, State, ZIPuse a comma. If your addresses use a different separator (a pipe|or a semicolon;), enter that instead. It is a literal string split, so type the exact character. - Step 5Set a prefix and review max parts — Set
New column prefixtoAddrso columns readAddr_1...Addr_n. LeaveMax parts per rowat the default 100 first so nothing is dropped, run once, and read theMax parts seenstat to learn the widest address. - Step 6Run, verify alignment, download — Click Split, check the 10-row preview to confirm City/State/ZIP landed in consistent columns, then download
<name>.split.csv. Rename headers with csv-header-rename toStreet/City/State/ZIP.
Splitter options for address columns
The four controls, with values that suit comma-formatted mailing addresses.
| Option | What it does | Recommended for addresses | Default |
|---|---|---|---|
| Column to split | Picks the single source column; replaced in place | The Address / Shipping Address column | none (must select) |
| Delimiter inside the cell | Literal string the cell is split on (not regex) | A comma , | , |
| New column prefix | Names output columns <prefix>_1, ...; defaults to source name | Addr | source column name |
| Max parts per row | Caps parts kept per row; grid width is the widest row up to this cap | Leave at 100 first, then tighten | 100 |
How address shapes split on a comma
Delimiter = comma. Every part is trimmed (the post-comma space is removed). Width = widest row.
| Input cell | Parts after split | Note |
|---|---|---|
123 Main St, Springfield, IL, 62704 | 123 Main St | Springfield | IL | 62704 | Clean 4-part US address |
45 Oak Ave, Apt 2, Portland, OR, 97201 | 45 Oak Ave | Apt 2 | Portland | OR | 97201 | 5 parts — file grid widens to 5 columns |
10 High St, London, SW1A 1AA | 10 High St | London | SW1A 1AA | 3 parts — padded with empties to match wider rows |
"123 Main St, Springfield, IL 62704" | 123 Main St | Springfield | IL 62704 | State+ZIP not comma-separated stay in one part |
Free vs Pro limits (CSV family)
Browser-side limits. The splitter is text-only and runs locally.
| Tier | Max rows | Max file size | Batch files |
|---|---|---|---|
| Free | 500 | 2 MB | 2 |
| Pro | 100,000 | 100 MB | 10 |
| Developer | Unlimited | 5 GB | Unlimited |
Cookbook
Real mailing-address shapes and how the comma split handles them. Addresses are illustrative.
Standard four-part US address
ExampleThe clean case: street, city, state, ZIP separated by commas. Set delimiter = comma, prefix = Addr. The single source column becomes four columns.
Input: Name,Address Jane Smith,"123 Main St, Springfield, IL, 62704" Config: column = Address, delimiter = ",", prefix = Addr Output: Name,Addr_1,Addr_2,Addr_3,Addr_4 Jane Smith,123 Main St,Springfield,IL,62704
Mixed part counts pad to a uniform grid
ExampleOne address has an apartment line, another doesn't. The file width is the widest (5), and the shorter address gets an empty cell so columns stay aligned.
Input: Address "45 Oak Ave, Apt 2, Portland, OR, 97201" "99 Pine Rd, Austin, TX, 78701" Config: delimiter = ",", prefix = Addr Output: Addr_1,Addr_2,Addr_3,Addr_4,Addr_5 45 Oak Ave,Apt 2,Portland,OR,97201 99 Pine Rd,Austin,TX,78701, (The second row's missing apartment leaves columns shifted — see edge cases.)
Post-comma spaces are removed automatically
ExampleAddresses typed as Street, City have a space after each comma. Because every part is trimmed, you don't get City with a leading space.
Input: Address "12 Elm St, Denver, CO, 80202" Config: delimiter = "," Output (each part trimmed): Address_1,Address_2,Address_3,Address_4 12 Elm St,Denver,CO,80202
Split on a pipe when commas appear inside parts
ExampleIf a street name contains commas, a comma split misfires. When the source uses a pipe between fields (Street | City | State | ZIP), split on the pipe instead so internal commas are safe.
Input: Address "Plaza 5, Suite 100 | Reno | NV | 89501" Config: delimiter = "|", prefix = Addr Output (commas inside the street survive): Addr_1,Addr_2,Addr_3,Addr_4 "Plaza 5, Suite 100",Reno,NV,89501
Rename parts for a shipping import
ExampleShipping platforms want named fields. Split, then rename headers to the labels the platform expects.
After split: Addr_1,Addr_2,Addr_3,Addr_4 123 Main St,Springfield,IL,62704 Then csv-header-rename: Addr_1 -> Street Addr_2 -> City Addr_3 -> State Addr_4 -> ZIP Final: Street,City,State,ZIP 123 Main St,Springfield,IL,62704
Errors and edge cases
Real errors and silent failures sourced from each platform's own documentation. Match the wording to the row, fix what the row says to fix.
Addresses have different numbers of commas
Misaligned columnsIf some rows have an apartment line and others don't, City/State/ZIP land in different columns per row. The tool splits positionally — it can't know Apt 2 is an extra field. Normalise the source so every address has the same comma count, or split the with-apartment rows separately. The padding only fixes width, not semantic alignment.
Street name itself contains a comma
Over-splitPlaza 5, Suite 100, Reno, NV, 89501 splits the street into two parts. A literal comma split can't tell a street comma from a field comma. Use a different delimiter in the source (pipe/semicolon) and split on that, or fix those rows manually.
State and ZIP not comma-separated (`IL 62704`)
Combined in one partUS addresses often write Springfield, IL 62704 (space, not comma, between state and ZIP). Splitting on comma leaves IL 62704 as one part. Split again on the result column with the delimiter set to a space, or fix the source format first.
No column selected
Error: Select a column to splitClicking Split with no column chosen throws Select a column to split. Pick the address column's radio button. The button is disabled until a column and a non-empty delimiter are set.
Empty delimiter
Error: Delimiter cannot be emptyThe delimiter field can't be blank — it throws Delimiter cannot be empty. Enter the exact separator your addresses use (comma, pipe, or semicolon).
Empty address cell
Single empty partA blank address is treated as one empty part and padded to the file width. The row is kept. To drop rows with no address, clean them out with csv-cleaner first.
Parts beyond Max parts are dropped
Data lossIf Max parts per row is lower than an address's part count, the trailing parts (often the ZIP or country) are discarded, not merged. Leave the cap at the default 100 unless you deliberately want to truncate, and check Max parts seen after running.
International addresses with a country line
Extra columnAddresses ending in a country (..., London, SW1A 1AA, UK) add one more part, widening the whole grid. Domestic rows then get a trailing empty cell. That is expected; reorder or drop the country column afterwards with csv-column-reorder.
File exceeds free 500-row / 2 MB limit
Upgrade requiredFree tier caps at 500 rows / 2 MB. Larger order exports need Pro (100,000 rows / 100 MB), or split into chunks first with csv-row-splitter.
Frequently asked questions
How do I split an address into separate city, state, and ZIP columns?
Drop the CSV onto the splitter, select the address column, set the delimiter to a comma (the separator between address parts), set a prefix like Addr, and run. You get Addr_1...Addr_n. Then rename them to Street / City / State / ZIP with csv-header-rename.
What if my addresses have a different number of parts?
The tool splits positionally, so addresses with an extra apartment line will misalign City/State/ZIP versus addresses without one. Normalise the comma count in the source first, or process with- and without-apartment rows separately. The tool only pads width — it can't infer which field is missing.
The space after each comma — is it kept?
No. Every part is trimmed automatically, so , Springfield becomes Springfield with no leading space. You don't need a separate trim step for that.
My street name has a comma in it. What happens?
A comma split will break the street into two parts. The tool can't distinguish a street comma from a field comma. If your source uses a pipe or semicolon between fields, split on that instead so internal commas are safe.
State and ZIP are in one part (`IL 62704`). How do I separate them?
That format uses a space, not a comma, between state and ZIP. After the comma split, run the splitter again on that combined column with the delimiter set to a space.
Are customer addresses uploaded?
No. The tool runs in your browser with PapaParse. Street addresses, names, and order data are parsed locally and never sent to a server. Signed-in users have only a processed-count stat recorded.
Does it keep my other columns (name, order ID)?
Yes. Only the selected address column is replaced — in place. Name, order ID, email, and every other column keep their value and position.
How many addresses can I process at once?
Free tier handles 500 rows / 2 MB per file. Pro raises it to 100,000 rows / 100 MB. For larger order exports, chunk first with csv-row-splitter.
Can I move the new address columns to the front?
Yes — the split keeps them where the original column was. Use csv-column-reorder on the output to put Street / City / State / ZIP at the front.
I need the opposite — combine address fields into one cell. Which tool?
Use csv-column-merger. It joins multiple columns into one with a separator (, for a printable address) and names the result column.
Some rows have leftover commas or junk after splitting. How do I clean them?
Run csv-find-replace on the result to strip stray characters, or csv-whitespace-trimmer for residual spacing. The splitter trims parts but doesn't remove punctuation inside a part.
Can I automate address splitting in a pipeline?
Yes. csv-column-splitter is available as a local runner tool (Pro tier). Configure the column, delimiter, prefix, and maxParts, and run it against a file on your machine — processing stays local, so customer addresses never reach JAD's servers.
Privacy first
Processing runs locally in your browser with PapaParse. No file is uploaded — only metadata counters are saved for signed-in dashboard stats.