Back to Blog

Clean Names and Emails in Google Sheets with REGEXEXTRACT and SPLIT

Extract emails, split names, and clean contact data with REGEXEXTRACT, SPLIT, and ARRAYFORMULA.

Jan 30th, 2026SheetFX

Clean Names and Emails in Google Sheets with REGEXEXTRACT and SPLIT

January 30th, 2026

Messy contact data is common. You might receive values like:

Alex Johnson <[email protected]>

This guide shows how to split the name and email into clean columns using REGEXEXTRACT and SPLIT.

Extract the email address

=REGEXEXTRACT(A2, "[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}")
  • This pattern finds a standard email address inside the text.
  • It ignores the name portion entirely.

If you need case-insensitive matching, wrap with UPPER on the input:

=REGEXEXTRACT(UPPER(A2), "[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}")

Extract the name

If the format is Name <email>, you can take everything before the angle bracket:

=TRIM(LEFT(A2, FIND("<", A2) - 1))

Split into two columns

If the name and email are separated by a space and angle bracket, SPLIT can do the job quickly:

=SPLIT(SUBSTITUTE(A2, "<", ""), ">", TRUE, TRUE)

This removes the opening bracket and splits on the closing bracket. You will get two columns: name and email.

Make it scalable with ARRAYFORMULA

For a full column:

=ARRAYFORMULA(IF(A2:A="", "", REGEXEXTRACT(UPPER(A2:A), "[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}")))

And for names:

=ARRAYFORMULA(IF(A2:A="", "", TRIM(LEFT(A2:A, FIND("<", A2:A) - 1))))

Related functions

Newsletter

Weekly Sheets tips are coming soon.

We are putting together a short, practical newsletter for Google Sheets and Apps Script. Launching soon.