Split a CSV file by column value
The split job on CSV input, with CSV-specific parsing handled — delimiters, encodings, quoting.
Free. Unlimited. No signup.
Runs entirely in your browser · No upload · No signup · Open the network tab and check
How it works
- 1
Drop your CSV
The tool auto-detects the delimiter — comma, semicolon, or tab — and reads the header row. Parsed in your browser; nothing uploads.
- 2
Pick the column to split by
Choose Region, Client, Category — whichever column defines the groups. Quoted values and embedded newlines are already handled by real CSV parsing.
- 3
Split and download
One CSV per unique value, each keeping the header row, your original delimiter, and the UTF-8 byte-order mark if the input carried one. More than three files arrive zipped.
A worked example: a 5,000-row export, split by region
Your tracking system hands you orders-export.csv — 5,000 rows, semicolon-delimited, UTF-8 with a BOM, with a Region column holding six values. Split by Region and one run produces six CSVs — orders-export-North.csv through orders-export-West.csv — each semicolon-delimited with the BOM re-attached and the header row on top, plus a zip of all six.
Each regional file opens in Excel exactly like the original did — same delimiter, same encoding — just that region's rows.
Constraints & edge cases
My export uses semicolons, not commas — does that work?
+
Yes, and the outputs keep it that way. The delimiter is auto-detected (comma, semicolon, or tab) and every output file is written with the same delimiter as the input — so a semicolon-delimited export from a European-locale Excel splits into semicolon-delimited pieces that open cleanly in the same Excel.
Will Excel still show my accents correctly after the split?
+
If your file starts with a UTF-8 byte-order mark — which Excel's own “CSV UTF-8” export adds — the tool detects it from the raw bytes and re-attaches it to every output, so Excel keeps reading the pieces as UTF-8. Files in legacy encodings like Windows-1252 are decoded as UTF-8 in this version, which can garble accented characters: re-save as CSV UTF-8 first if you see that.
Some cells contain line breaks — addresses, notes. Do rows stay intact?
+
Yes. Quoted fields with embedded newlines are parsed as single cells, not broken into extra rows — the failure mode that text-to-columns and naive scripts hit. A quoted two-line address stays one cell in one row, in whichever output file its group belongs to.
How large a CSV can it take?
+
Intake caps at 100 MB with a 50 MB processing guard per file, and the file is parsed fully in memory rather than streamed. A 5,000-row export is nowhere near the limit; hundred-megabyte database dumps are past it and should be cut down first. Output line endings are normalized to CRLF, which Excel expects.
What happens to rows with a blank value in the split column?
+
They are collected into their own output file with a -blank suffix instead of being dropped, so missing-value rows stay visible and auditable.
How to split a CSV by column value, by hand
A CSV is a text file, so the honest answer is that you have both spreadsheet routes and command-line routes available. Which one is less painful depends almost entirely on whether your data contains commas inside its fields.
Open in Excel, then filter and saveTwo minutes per group, plus a real risk of silent data damage
- 1Open the CSV in Excel, filter the split column to one value, copy the visible rows to a new sheet, and use Save As → CSV UTF-8.
- 2Repeat for each value.
Where it breaks. Excel changes CSV data on the way in, and this is the single most common way people quietly corrupt a file. Leading zeros are stripped, so a ZIP code of 02134 becomes 2134. Long numbers become scientific notation. Anything that looks like a date is converted to one — the reason the gene-naming community formally renamed several genes. None of it is flagged; you find out when the recipient does.
Power Query into ExcelTwenty minutes to build, safe with respect to types
- 1In a new workbook, choose Data → From Text/CSV and pick your file.
- 2In the preview, click Transform Data rather than Load, so you can set column types explicitly before anything is converted.
- 3Set your ID-like columns to Text, then Group By your split column with All Rows, and drill into each group to load it.
Where it breaks. Setting types explicitly does fix the corruption problem, and this is the route to use if you are staying in Excel. It still cannot write one file per group, so you finish by exporting each result by hand.
The command lineMinutes if you already write awk, an afternoon of debugging if you do not
- 1On macOS or Linux, an awk one-liner can write each row to a file named after a chosen column — printing the header into each output file first so the results are valid CSVs.
- 2On Windows, PowerShell's Import-Csv, Group-Object and Export-Csv do the same in three piped commands.
Where it breaks. awk splits on commas, and a CSV's own commas do not care about that. One quoted field containing a comma — an address, a company name like “Smith, Jones & Co”, a free-text note — and every row after that column shifts by one for that record. PowerShell's Import-Csv parses quoting properly, so it is the safer of the two, but it is slow on large files and rewrites your headers.
Windows and Mac
The Excel and Power Query routes work the same on both platforms. The command-line route is the one that differs: awk is built in on macOS, while Windows users want PowerShell instead.
If your data is clean — no commas inside fields, no leading zeros, no long ID numbers — any of these is fine for a one-off. If it is real-world address or customer data, the spreadsheet routes risk silent corruption and the awk route risks silent misalignment, and you will not notice either until someone downstream does.
Split it here instead — free, no signup, and your file never leaves your machine.