In Google Sheets, use =REGEXEXTRACT(A2,"@(.+)$") to pull the domain out of an email address. In Excel, use =TEXTAFTER(A2,"@"). That’s the whole email-to-domain trick. Back in 2022, I inherited a webinar registration export: 2,300 rows of email addresses and a signup date, nothing else. My manager wanted it segmented by industry before Friday. I split every domain in about 40 seconds and felt like a genius for exactly one hour.
Then I looked at what I actually had. A column of strings. Getting the domain from an email, it turns out, is the easy part.
Let’s get into it.
📌 TL;DR: Google Sheets → =REGEXEXTRACT(A2,"@(.+)$"). Excel → =TEXTAFTER(A2,"@"). Whole column in one cell → =ARRAYFORMULA(IF(A2:A="","",REGEXEXTRACT(A2:A,"@(.+)$"))). And the caveat nobody puts in the tutorial: a domain is a string, not a company. Free-mail rows belong to the mailbox provider, and a mail domain isn't always the website.
How Do You Extract a Domain From an Email Address in Google Sheets?
Use =REGEXEXTRACT(A2,"@(.+)$"). It returns everything after the @ sign. Drop it in B2, next to your first email address, and the domain appears.
Three email-to-domain formulas do this job in Sheets, and each one has its moment:
=REGEXEXTRACT(A2,"@(.+)$")→ the cleanest one. It grabs every character after the @, and it fails loudly on a row that isn’t an email address.=INDEX(SPLIT(A2,"@"),2)→ no regex needed. It cuts the address in two at the @ and hands you the second piece.=RIGHT(A2,LEN(A2)-FIND("@",A2))→ the old-school version. It counts characters instead of matching patterns, so it works almost anywhere.
Google’s own REGEXEXTRACT help page documents the pattern syntax if you want to push it further.
But here’s what every tutorial skips. You almost never have one email address. You have 900.
So run the whole column from a single cell:
=ARRAYFORMULA(IF(A2:A="","",REGEXEXTRACT(A2:A,"@(.+)$")))
That IF wrapper earns its keep. Without it, the formula prints an error in every empty row below your data.
And if your list has typos in it (a missing @, a stray space), wrap the single-row version in IFERROR instead:
=IFERROR(REGEXEXTRACT(A2,"@(.+)$"),"")
Why blank rather than #N/A? Because in a sales sheet, blanks sort, filter, and count cleanly. Errors spread into every formula downstream.
📌 Example: My file held 2,300 rows of nothing but emails → one ARRAYFORMULA → 1,888 company domains and 412 free-provider rows, in under a minute.
How Do You Extract a Domain From an Email Address in Excel?
In current Excel, =TEXTAFTER(A2,"@") returns the domain. Microsoft added that function for Microsoft 365, and its TEXTAFTER page covers the optional arguments.
Plenty of teams still run older builds, though, where that function simply doesn’t exist. So here’s the fallback:
=RIGHT(A2,LEN(A2)-FIND("@",A2))
It finds the position of the @, subtracts that from the total length, and returns the remaining characters from the right. Microsoft’s RIGHT function page explains both arguments. Reach for that one when Excel has to find the domain from an email address on an old install.
One honest difference between the two apps. Excel has no ARRAYFORMULA equivalent here, so you fill the formula down the column yourself. Or use =TEXTSPLIT(A2,"@") and let it spill into two cells.
Either way, extracting a domain from an email in Excel takes about ten seconds. The harder part starts when you want data Excel doesn’t hold. That round trip runs through a sheet, and I cover it in the email lookup in Excel guide.
How Do You Split an Email Into a Name and a Domain?
=SPLIT(A2,"@") returns the local part and the domain in two cells. Google’s SPLIT documentation covers the delimiter options.
Want only the piece before the @? Then use =REGEXEXTRACT(A2,"^(.+)@").
So why bother with the left half at all? Because it shows you how a company builds its addresses.
Pull the local part down 50 rows from one employer. The pattern jumps out fast: first.last, or flast, or just first. That’s a free sanity check on any contact data somebody hands you later.
The structure here is refreshingly small. Under RFC 5322, an email address is a local part, an @ sign, and a domain. One separator, two pieces, every address on earth.
How Do You Filter Out Gmail and Other Free Email Domains?
Flag them with a REGEXMATCH formula, then filter the column. Put this in C2, pointing at your new domain column:
=IF(B2="","",IF(REGEXMATCH(LOWER(B2),"^(gmail|yahoo|hotmail|outlook|icloud|aol|proton|protonmail|live|msn)\.(com|net|me|mail)$"),"personal","company"))
It lowercases the domain, checks it against the common free providers, and writes either personal or company. Just a label you can filter on.
This is where my webinar file stopped being fun. 412 of those 2,300 rows were gmail.com.
Because a free-provider row can never become a company row. That domain belongs to the mailbox provider, not to anyone’s employer. gmail.com is Google’s. No amount of clever formula work changes it.
💡 Pro Tip: Run the free-provider filter BEFORE any enrichment run, not after. Those rows can never match a company, and you pay for them anyway. Filtering first is the cheapest credit saving there is.
Then filter for real: Data → Create a filter, click the arrow on column C, and show only the company rows. Google’s sort and filter guide walks the menu if you’ve never used it.
Keep the personal rows, though. They’re still people who registered; they just need a different route.
How Do You Find a Company Website From an Email Address?
The domain after the @ is usually the company website, so try https:// plus that domain. So when someone asks how to find a company website from an email address, that’s the honest answer: read the domain, then verify it.
Turn your whole domain column into clickable URLs with one formula:
=IF(B2="","","https://"&B2)
That works most of the time. But “most” isn’t “always,” and four cases break the rule:
- Free mail providers. gmail.com, outlook.com, yahoo.com → there’s no company behind the domain at all. The mailbox provider owns it.
- Mail-only subdomains and sending domains. mail.company.com, e.company.com, send.company.com → strip the prefix and you have the real site.
- Group and subsidiary mailboxes. A subsidiary often sends from the parent’s mail domain while running its own website. The domain names the parent, not the employer.
- Rebrands and country domains. Old mail domains keep working long after a site moves. The address then points at a home page that’s gone.
So verify before you trust the URL. Check that the domain really receives mail with the Google Admin Toolbox MX check. An MX record is the DNS entry that says “deliver mail here.” No MX record, no live mailbox.
Then open the URL in a tab. Ten seconds per domain, and you’ll catch the parked pages and the redirects.
Working the other direction, with company names and no websites at all? That job has its own guide: find a company website in Google Sheets.
Now the real question underneath all of this. People asking it don’t want a URL. They want to know WHO these people work for, and that’s a lookup, not a formula.
How Do You Turn That Domain Column Into Company Data?
Run a domain-to-company lookup on the column. A formula cannot do it. This is where the job stops being text manipulation and becomes Data Enrichment.
Why can’t a formula do it? Because no spreadsheet function knows which company sits behind stripe.com, what industry it’s in, or how many people work there. That fact lives in a database, not in a text function.
Here’s the loop I run on a domain column:
- Install the add-on. Grab the CUFinder add-on from the Google Workspace Marketplace.
- Copy your API key. Open your CUFinder dashboard and copy the API key from there.
- Enter the key in the add-on. Paste it once and you’re connected.
- Pick the service that matches your job. Open the add-on from the Google Sheets menu. It opens as a right panel listing all the enrichment services. Domain → company name is Find Company Name from Website. Domain → full company profile, with the firmographic data like industry and size, is Company Enrichment. And if you want the PERSON behind the address instead of the company, that’s Reverse Email Lookup, which takes the whole email, not the domain.
- Set the columns and the range, then run. Input column = your domain column. Output column = wherever the answers should land. Row range = rows 2-2301 for my webinar file. Then run it.
A few things you should know before spending a credit. Unmatched rows stay empty, because an honest lookup doesn’t guess. Free-provider rows will never match, which is exactly why you filtered them first.
Credits also get consumed per row, and coverage varies by region and segment. So test 20 rows before you run 2,000. I’ve mis-mapped an output column before, and small test batches are how I stopped paying for that.
If a name is all you need, the get a company name from a domain guide goes deeper on that single field. And when the human matters more than the employer, bulk reverse email lookup is the route to take.
A Worked Example: 5 Rows, Before and After
Here’s my webinar file, shrunk to five rows. Column A holds the emails. Columns B, C, and D sit empty.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Domain | Company | Industry | |
| 2 | lena.fischer@hansellogistics.com | |||
| 3 | m.ruiz@bluepinesoftware.com | |||
| 4 | priya.nair@corvidanalytics.com | |||
| 5 | tomokafor87@gmail.com | |||
| 6 | sofia.berg@tidewaterrobotics.com |
Then three steps, in this order. First, the ARRAYFORMULA fills column B, free and instant. Next, Find Company Name from Website reads column B and writes column C. Finally, company enrichment in Google Sheets fills column D. A minute later, the same five rows look like this:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Domain | Company | Industry | |
| 2 | lena.fischer@hansellogistics.com | hansellogistics.com | Hansel Logistics | Freight & Logistics |
| 3 | m.ruiz@bluepinesoftware.com | bluepinesoftware.com | Bluepine Software | Software |
| 4 | priya.nair@corvidanalytics.com | corvidanalytics.com | Corvid Analytics | Data Analytics |
| 5 | tomokafor87@gmail.com | gmail.com | ||
| 6 | sofia.berg@tidewaterrobotics.com | tidewaterrobotics.com | Tidewater Robotics | Industrial Robotics |
→ emails → domains → companies → industries. That’s the chain, and every arrow is a different kind of work.
Now look at row 5. The formula worked perfectly: gmail.com really is that address’s domain. The lookup then found nothing, because there’s no company to find.
Both results are correct. A tool that filled row 5 would be inventing a company.
What Mistakes Should You Avoid When Extracting Email Domains?
The big ones: starting on row 1, trusting the domain blindly, and forgetting to lowercase. I’ve made all six, several on the same Friday.
- Running the formula on the header row. Start your range at row 2, or you’ll get an error where the word “Email” sits.
- Trusting the domain as a website without checking. Remember the four exceptions above: free mail, sending subdomains, parent domains, and rebrands.
- Leaving free-provider rows in an enrichment run. They can’t match anything, so you pay for guaranteed blanks. Filter the column first.
- Forgetting to lowercase. Company.COM and company.com become two separate segments in a pivot table. Wrap the column in LOWER() and that problem disappears.
- Pasting values over your formula column too early. Keep the formula column intact, then paste-special the values into a second column once you’ve spot-checked them.
- Treating an old domain column as current. Domains change at rebrands and acquisitions, so a two-year-old column carries real Data Decay. Re-run it before you send anything.
🔍 Did You Know? An email address has only two parts: a local part and a domain, split by the @ sign. That's why one small formula solves this for every address on earth.
FAQ: Extracting Domains From Email Addresses
How to extract domain from email address?
Use =REGEXEXTRACT(A2,"@(.+)$") in Google Sheets, or =TEXTAFTER(A2,"@") in current Excel. Both return everything after the @ sign. Copy the formula down your column, or wrap the Sheets version in ARRAYFORMULA to fill the whole column from one cell.
How do I find the domain of an email address?
It’s the text after the @ sign, so for one address you can simply read it. For a column of addresses, use a formula instead: =REGEXEXTRACT(A2,"@(.+)$"). And no, you don’t need a tool. Sheets and Excel both do it natively.
How to get a domain name for an email address?
If you mean buying a domain to send mail from, that’s a registrar plus a mail provider. You register the domain, point its MX records at your mail host, then create mailboxes. That’s a different job from this guide, which extracts a domain from an address you already have.
How to extract email addresses from Google Sheets?
That’s the reverse job: pulling addresses out of a text column with regex. Try =REGEXEXTRACT(A2,"[\w.+-]+@[\w-]+\.[\w.]+"), which grabs the first email address inside a longer string. It works nicely on pasted signatures, notes, and form responses.
Is an email domain the same as a company website?
Usually yes, with four exceptions. Free mail providers, mail-only sending subdomains, parent-company mailboxes, and post-rebrand domains all break the match. So open the URL before you trust it, and check the MX record if the domain looks unfamiliar.
Can I get a company name from an email domain?
Yes, but not with a formula. It takes a lookup against a company database. The formula gives you a string like bluepinesoftware.com. A domain-to-company service turns that string into a real name, an industry, and a size.
How do I remove the domain and keep just the name part?
Use =REGEXEXTRACT(A2,"^(.+)@") in Google Sheets, or =TEXTBEFORE(A2,"@") in current Excel. Both return the local part, meaning everything before the @ sign. That’s the piece that reveals a company’s email pattern across a list.
Your Domain Column Is Two Minutes Away
You’ve got the whole set now. One formula for a single row. An ARRAYFORMULA for the whole column. A filter for the free-mail rows. And a lookup for the part no formula can reach.
Picture the good version of my Friday. 2,300 raw addresses land in your inbox at nine. By ten they’re split, filtered, matched, and segmented by industry, and you close the laptop. That’s roughly where I landed a year after staring at 412 gmail rows.
The domain is only column B, though. The whole data enrichment in Google Sheets hub covers what comes after it: names, revenue, tech stacks, people. Tell me in the comments: what’s sitting in column A of the file you’re staring at right now?