Split CSV by column
Separate one CSV into files for each distinct group and download a manifest mapping group values to output filenames.
- 1Add input
- 2Adjust settings
- 3Get your result
Tool input and files are processed in this browser without being uploaded.
Before you start
Paste or import one UTF-8 CSV, choose a grouping column from its header, then download a ZIP with one CSV per group and a filename manifest.
How to use this tool
- Paste a CSV or import a UTF-8 .csv file and review its detected rows and columns.
- Select the grouping column from the header and check the number of groups before splitting.
- Download the ZIP and keep its manifest.json. Sum manifest row counts to reconcile with the source.
Supported inputs and limits
One CSV up to 1 MiB and 200,000 parsed cells; at most 100 nonblank groups. Exact strings, including leading zeroes, define the groups. Blank group values are rejected.
The ZIP contains a header-bearing CSV per group plus manifest.json. Numbered filenames avoid group-label path and collision problems; the separate manifest download maps exact labels to files and row counts. CSV cells that resemble formulas gain an apostrophe.
Worked example
Example input
team,name A,Ada B,Bo A,Cy
Example options
{"key": "team"}Example output
[
{
"value": "A",
"rows": 2,
"file": "group-001.csv"
},
{
"value": "B",
"rows": 1,
"file": "group-002.csv"
}
]When something does not work
Choose a column found in the CSV header, correct malformed rows and blank group values, and split or filter a source with more than 100 groups or 200,000 cells.
Frequently asked questions
How do I match group values to output filenames?
The ZIP and separate manifest.json use safe numbered filenames. Each manifest entry gives the original group value, its row count and its CSV filename.
What should the example produce?
Group A contains Ada and Cy; group B contains Bo. Add output row counts to verify the input total.
Which cases are outside its scope?
The tool accepts one UTF-8 CSV up to 1 MiB and 200,000 cells, with no more than 100 nonblank group values. It does not split a wide table by column positions or process large files.