All posts

How to Split a CSV Into Separate Files by Column Value (Country, Owner, Status or Campaign)

··4 min read

To split a CSV by column value, choose the column that decides the segment and write one file per distinct value, keeping the header row in each. The free split CSV by column value tool does it in your browser: it counts the groups, lists their sizes, and gives you one download per file. This post covers when to split, how to avoid the usual mistakes, and why the verification step should come first.

Split a list by column →

Common reasons to split

  • By country or region, so each send goes at a local time and in a local language, and so country-specific rules (consent, opt-out wording) are applied per file.
  • By owner or rep, so each salesperson gets their own list. Splitting leads across sending inboxes covers the same idea for sending accounts.
  • By status, such as customer, lead, former customer or unsubscribed, so suppressed groups can't be mailed by accident.
  • By source, so you can compare how each source performs. Counting leads by source in a CSV is the companion post.
  • By campaign or tier, to feed different sequences from one master export.
  • By import size. If a tool won't take a big file, a split by a sensible column is neater than cutting at an arbitrary row.

What the tool does with the column

  1. You upload or paste the list and choose the column.
  2. Each row goes to the group for its value in that column. The group's label is the value as first written.
  3. With "ignore letter case" on, Canada, canada and CANADA go to one group. The tool also trims spaces around values, and reports how many spellings it merged.
  4. Blank cells go to a group labelled "(blank)" instead of being dropped.
  5. Groups are sorted largest first, and each gets its own CSV with the original header.

The output lists "Rows", "Files", "Largest file" and "Spellings merged", which is enough to see at a glance whether the split makes sense.

Check the groups before you download

Look at the table of groups first. Three problems show up there:

  1. Too many groups. A free-text column (job title, city typed by hand) gives hundreds of files, most with one row. Pick a different column or standardise the values.
  2. Near-duplicates. "United States", "USA" and "US" are three groups. The tool merges case and spaces, not meaning. Fix those with a find-and-replace in the column, then split again. The find and replace in CSV tool is built for it.
  3. A big blank group. If 30 percent of rows have no country, the split is exposing a gap in the data. Decide what to do with them before sending: enrich them, or hold them back.

Verify first, then split

The order matters because a split multiplies work. Verify ten segments one at a time and you upload ten files, track ten result sets, and have ten chances to forget one. Verify the master once and split the cleaned output.

  1. Clean the master: columns, duplicates, broken rows.
  2. Verify the emails at /verify.
  3. Keep the valid rows. Move invalid rows to your suppression file (cold email suppression lists). Put risky and catch-all rows in a separate file for a smaller, slower send; what to do with catch-all emails covers it.
  4. Split the valid file by the column you chose.
  5. Send or import each segment.

If you split first, the tool offers the list's addresses for checking, but you'll end up verifying per file.

Splitting for time zones and send windows

Splitting by country gets you most of the way to local send times, with the caveat that a country can have several time zones. If you need finer control, add a time-zone or region column first and split on that. Send each file in its own window rather than mailing everything at one clock time.

Keep each file at a size your sending setup can send comfortably in one window, and don't push a large segment out at once. If a country file is much bigger than the rest, split it again on a second column (state, company size) rather than sending the lot in one run.

Keep the master file

The pieces are copies. Three rules stop them drifting:

  1. Name them clearly: list-2026-11-09-canada.csv, not Untitled-3.csv.
  2. Record the split column and date somewhere with the master.
  3. Merge corrections back. If a rep fixes an address in their file, that fix has to go into the master, or the next export brings the old value back. Use compare two CSV files to see what changed between versions.

Quick answers

  • Does the header go in every file? Yes.
  • Is the file uploaded anywhere? The split runs in your browser.
  • Can I split by a column that has commas in it? Yes, as long as the CSV is properly quoted. If rows are broken, fix them first.
  • What about very large files? The browser has to hold the file, so very large files are better handled in a script. For ordinary lead lists it's quick.

Try it on your own list

Upload a sample at /verify. The first 100 checks are free with a Google sign-in, no card.

Pro, $39 a month: Unlimited email verification.* Never metered, never cut off. See pricing.

*Fair use: the first 100,000 checks a month at full speed, then slower, never cut off.

Common questions

How do I split a CSV into multiple files by column?

Pick the column that decides the group (country, owner, status), collect every row with the same value into one file, and keep the header row in each. In Excel that's a filter and a copy per value. The free splitter does every value in one pass and gives a download per group.

What if the same value is written differently?

Turn on the option to ignore letter case and the splitter merges values that differ only in capitals or surrounding spaces. Different words (UK and United Kingdom) still count as different values, so standardise those in the column first.

Should I verify emails before or after splitting?

Before. One verification run covers every segment, valid addresses are then sorted into the right pieces, and invalid ones never reach any of them. Verifying each piece separately works but costs more of your time.

How many files will I get?

One per distinct value in the column, plus one for blanks. Check the count before you download: a column with 400 distinct values (free-text job titles, for example) isn't a column to split on.

Can I split on two columns?

Not at once. Combine them into one helper column first (for example country plus status), then split on that.

Check your list before you send

Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.