How to Extract Email Addresses From Excel: Formulas, Flash Fill and a Free Tool
How to extract email addresses from Excel: use a free no-upload extractor, Flash Fill, REGEXEXTRACT or VBA, then dedupe and verify before you send.

On this page
- Why are email addresses hard to pull out of a spreadsheet?
- Which method should you use?
- How to extract email addresses from Excel with a free browser tool
- How do you use Flash Fill to pull emails out of cells?
- What formula extracts an email address from a cell?
- Can you extract emails in Google Sheets instead?
- How do you get email addresses out of hyperlinks?
- How do you send the extracted emails to Outlook or Gmail?
- Is it legal to email the addresses you extract?
- What goes wrong, and how do you fix it?
- Frequently asked questions
- Conclusion: key takeaways
- Editorial policy
- Content transparency
- About the author
If you want to know how to extract email addresses from Excel, the short answer is: pull every address out of the cells with one tool or one formula, then remove duplicates and verify the list. The fastest route is our free email extractor: drop the .xlsx file, click Extract emails and download a clean CSV. It reads every sheet at once and runs in your browser, so the spreadsheet is never uploaded. Below we also cover Flash Fill, REGEXEXTRACT, classic formulas for older Excel, Google Sheets and VBA for hyperlinks.
Quick answer: Open the free email extractor, add your Excel file and click Extract emails.
- Whole workbook: the tool scans every tab, column and note, then lists each address once.
- One column in Excel 365: use
REGEXEXTRACTand fill down. - Older Excel: use Flash Fill (Ctrl+E) or the TRIM/MID/SUBSTITUTE formula below.
- Before sending: run the list through an email verifier to remove dead addresses.
Free LeadCanal tools for this guide
Check and fix it yourself in a few seconds, no signup needed.
Why are email addresses hard to pull out of a spreadsheet?
A tidy sheet with one address per cell in an “Email” column needs no extraction at all. The trouble starts with the files people actually share. In our work cleaning client lead lists, we see the same patterns again and again:
- Mixed cells: “Jane Doe, Sales Manager, jane.doe@acme.com” in a single cell.
- Several addresses per cell: a main and a backup address separated by a slash or semicolon.
- Scattered columns: emails in Notes, Comments or Contact columns across several tabs.
- Hidden addresses: cells that show “Email us” while the real address sits in a mailto hyperlink.
- Duplicates and case: the same person as Jane.Doe@Acme.com and jane.doe@acme.com.
Each method below handles some of these. The right one depends on your Excel version and how messy the data is.
Which method should you use?
| Method | Best for | Excel version | Cost | Handles many per cell |
|---|---|---|---|---|
| LeadCanal email extractor | Whole workbooks, messy text, several tabs | Any .xlsx, .ods or .csv | Free, no upload | Yes |
| Flash Fill | One consistent column, quick jobs | Excel 2013 and later | Included | No |
| REGEXEXTRACT | Formula that updates with the data | Microsoft 365 | Included | Yes |
| TRIM/MID/SUBSTITUTE formula | Older Excel with space-separated text | Excel 2010 and later | Included | No (first match) |
| Google Sheets REGEXEXTRACT | Files already in Google Drive | Google Sheets | Free | First match only |
| VBA function | Addresses hidden in hyperlinks | Excel for Windows or Mac desktop | Included | One link per cell |
How to extract email addresses from Excel with a free browser tool
We built this tool because clients send us spreadsheets in every possible shape, and writing a new formula for each file wastes time. Here is the process:
- Open the extract emails from text tool on any computer or phone.
- Drop your .xlsx, .ods or .csv file. You can add several files, or paste copied cells into the text box.
- Open Options. “Remove duplicates” and “Lowercase” are on by default.
- Tick Business emails only to skip Gmail, Yahoo, Outlook.com and similar free providers, or Skip role addresses to drop info@, sales@ and support@.
- Optional: type a domain such as acme.com to keep only that company, and pick an order (as found, A to Z, or grouped by domain).
- Click Extract emails, then copy the list or download CSV or TXT.
The CSV has three columns: Email, Domain and Type, where Type is Business, Free or Role. That makes it easy to sort before outreach. The tool also catches obfuscated forms such as “name [at] company [dot] com” when that option is on.
One limit to know: the tool opens .xlsx and .ods, not the old .xls format. If you have an .xls file, use File, Save As and pick Excel Workbook (.xlsx) or CSV first.
Worked example: an event attendee export
A typical job for us: a client exports attendee data from an event platform into a workbook with three tabs. Emails sit in a Contact column on one tab and inside free-text Notes on the others, often two per cell.
We drop the workbook into the Excel email extractor, tick Business emails only and Skip role addresses, and choose Group by domain. The download gives us one de-duplicated CSV with the company domain next to each person. Next we run it through the free email verifier, and if the file is too large for the sending platform’s import, the CSV splitter cuts it into batches. No formulas, and nothing left the laptop.
Why does a no-upload extractor matter?
Contact spreadsheets hold personal data: names, phone numbers, sometimes notes about customers. Many online extractors upload your file to their server. Ours runs entirely in your browser, so the file is never uploaded or stored. Close the tab and the data is gone. It also checks the file type and signature before opening anything.
How do you use Flash Fill to pull emails out of cells?
Flash Fill learns a pattern from an example. It works well when every cell follows the same layout.
- Put your mixed text in column A, starting at A2.
- In B2, type the email address exactly as it appears in A2.
- Click B3 and press Ctrl+E, or go to Data, Flash Fill.
- Check the results. If a row looks wrong, correct it and Excel adjusts the rest.
Flash Fill is static. It does not update when the source cells change, and it guesses badly when the layout varies from row to row. For messy exports, a formula or the extractor is safer.
What formula extracts an email address from a cell?
Microsoft 365: REGEXEXTRACT
Excel for Microsoft 365 has a REGEXEXTRACT function that matches a pattern. For the first email in A2:
=IFERROR(REGEXEXTRACT(A2,"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}"),"")
To get every address in a cell, set the third argument (return_mode) to 1 and join the results:
=IFERROR(TEXTJOIN(", ",TRUE,REGEXEXTRACT(A2,"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}",1)),"")
IFERROR keeps cells without an address blank instead of showing #N/A.
Older Excel: the TRIM, MID and SUBSTITUTE formula
Without regex, you can find the “word” that contains the @ sign. This works when the address is separated from other text by spaces:
=TRIM(MID(SUBSTITUTE(TRIM(A2)," ",REPT(" ",200)),(LEN(LEFT(A2,SEARCH("@",A2)))-LEN(SUBSTITUTE(LEFT(A2,SEARCH("@",A2))," ","")))*200+1,200))
It counts the spaces before the @, pads each space to 200 characters, and cuts out the padded word. Two cautions: it only returns the first address, and punctuation stuck to the address, such as a trailing comma or bracket, stays attached. Wrap it in SUBSTITUTE to strip those, or clean the results with the extractor.
How do you list emails from several columns at once?
If addresses already sit alone in their cells but are spread across columns B to D, Excel 365 can gather them into one list:
=FILTER(TOCOL(B2:D500),ISNUMBER(SEARCH("@",TOCOL(B2:D500))))
Wrap it in UNIQUE to remove repeats. In older Excel, copy the columns under each other and use Data, Remove Duplicates.
Can you extract emails in Google Sheets instead?
Yes. Google Sheets has had REGEXEXTRACT for years:
=IFERROR(REGEXEXTRACT(A2,"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}"),"")
It returns the first match only. For cells with several addresses, the browser tool is simpler. You can also download the sheet as .xlsx or CSV from File, Download and drop it into the email extractor.
How do you get email addresses out of hyperlinks?
When a cell shows “Contact” but links to mailto:jane@acme.com, the address is not in the cell text, so formulas cannot see it. A small VBA function reads the link instead:
- Press Alt+F11 to open the VBA editor, then choose Insert, Module.
- Paste the function below and close the editor.
- In an empty column, enter
=LinkEmail(A2)and fill down. - Copy the column and paste as values, then save the file as .xlsm if you want to keep the macro.
Function LinkEmail(c As Range) As String
If c.Hyperlinks.Count > 0 Then
LinkEmail = Replace(c.Hyperlinks(1).Address, "mailto:", "")
End If
End Function
This reads links inserted with Insert, Link. Links built with the HYPERLINK formula keep the address in the formula itself, which the extractor picks up when you drop the .xlsx file.
How do you send the extracted emails to Outlook or Gmail?
Once you have a clean column, join it with semicolons for Outlook:
=TEXTJOIN("; ",TRUE,B2:B200)
Copy the result into the To or Bcc field. The extractor can do this directly: set “Separate results with” to Semicolon (Outlook) or Comma, then click Copy. For a contact import, the CSV to VCF converter turns the list into vCards that phones and most address books accept. If your source is a plain text export instead, our guide on converting TXT to CSV shows how to get it into columns first.
Is it legal to email the addresses you extract?
Extracting is a data task. Sending is where the law applies. We follow these rules on every list we build:
- CAN-SPAM (US): commercial email needs an honest sender and subject, a physical postal address and a working opt-out that you honor within 10 business days. See the FTC compliance guide.
- GDPR (EU and UK): you need a lawful basis, usually consent or legitimate interest for relevant B2B outreach, plus a clear privacy notice and an easy way to object. The European Commission’s data protection pages explain the rules.
- Consent and origin: record where each address came from. People who gave you their email for one purpose did not agree to every future campaign.
- No harvesting: do not scrape private data or harvest addresses to send spam. Bulk-mailing extracted lists without a reason to contact those people breaks the law in many countries and wrecks your sender reputation.
Also verify before you send. Old spreadsheets carry addresses that no longer exist, and a high bounce rate can push your domain into spam folders. Our email verifier flags invalid and risky addresses first.
What goes wrong, and how do you fix it?
| Problem | Likely cause | Fix |
|---|---|---|
| #VALUE! from the classic formula | The cell has no @ sign | Wrap the formula in IFERROR(…,””) |
| #NAME? from REGEXEXTRACT | Your Excel version lacks the function | Use the classic formula, Flash Fill or the browser tool |
| Address ends with a comma or bracket | Punctuation touches the address | Use the regex method or the extractor, which strips it |
| Only one email per cell found | Formula returns the first match | Use return_mode 1 or the extractor |
| Tool says the file type is not supported | Old .xls format | Save as .xlsx or CSV, then try again |
| Same person appears twice | Different capitalization | Lowercase first, then remove duplicates |
| Filters removed every result | Business-only or a domain filter is too strict | Untick the filters and run again |
Frequently asked questions
How to extract email addresses from Excel without formulas?
Drop the file into the free LeadCanal email extractor and click Extract emails. It scans every sheet and gives you a de-duplicated CSV, with no formulas or macros.
How do I extract only email addresses from an Excel column?
Use REGEXEXTRACT in Microsoft 365, Flash Fill for a consistent layout, or copy the column into the extractor’s text box.
Can I extract multiple email addresses from one cell?
Yes. REGEXEXTRACT with return_mode 1 returns all matches, and the browser tool finds every address in every cell automatically.
How do I extract the domain from an email address in Excel?
Use =TEXTAFTER(A2,"@") in Microsoft 365, or =MID(A2,FIND("@",A2)+1,100) in older versions. The extractor’s CSV already includes a Domain column.
Does Flash Fill work for email extraction?
It does when every cell has the same structure. With mixed layouts it often grabs the wrong text, so check the results row by row.
Is my spreadsheet uploaded when I use the LeadCanal tool?
No. The extraction runs in your browser, the file stays on your device and nothing is stored on our servers.
Can I extract emails from a PDF or Word file the same way?
Yes. The same tool reads PDF, DOCX, PPTX, TXT, HTML, VCF and EML files, so you can mix sources in one run.
Should I verify extracted emails before sending?
Always. Spreadsheets age fast, and sending to dead addresses raises bounces and hurts deliverability.
Conclusion: key takeaways
Knowing how to extract email addresses from Excel comes down to matching the method to the file, then cleaning and verifying before anyone hits send. For most real-world workbooks the browser tool is quickest: open the free email extractor and drop your file in. More file utilities are on our free tools page.
- Use the free LeadCanal extractor to pull every email from a whole workbook in one step.
- In Microsoft 365, REGEXEXTRACT with return_mode 1 finds all addresses in a cell.
- Flash Fill and the TRIM/MID formula suit older Excel and consistent layouts.
- Read mailto hyperlinks with a short VBA function, since formulas cannot see them.
- Remove duplicates, lowercase and verify the list before you send anything.
- Follow CAN-SPAM and GDPR and never harvest addresses for spam.
Key takeaways
Extracting emails from Excel
| 1 | Use the free LeadCanal extractor to pull every email from a whole workbook in one step. |
| 2 | In Microsoft 365, REGEXEXTRACT with return_mode 1 finds all addresses in a cell. |
| 3 | Flash Fill and the TRIM/MID formula suit older Excel and consistent layouts. |
| 4 | Read mailto hyperlinks with a short VBA function, since formulas cannot see them. |
| 5 | Remove duplicates, lowercase and verify the list before you send anything. |
| 6 | Follow CAN-SPAM and GDPR and never harvest addresses for spam. |
Editorial policy
We write guides about tasks our team does every day: cleaning spreadsheets, building contact lists and preparing them for outreach. Formulas were checked against Microsoft and Google documentation, and tool steps match the current version of our extractor. We update the guide when Excel or our tools change.
Content transparency
This guide was researched with keyword data on what people ask about pulling emails from spreadsheets and checked against official documentation. LeadCanal built and offers the free email extractor, verifier and converters mentioned here. Other methods are covered fairly, including when Excel alone is enough.
About the author
The LeadCanal team builds verified B2B lists, enriches CRM data and runs cold email infrastructure every day. We handle client CSV lead lists, VCF contacts and PDF reports constantly, which is why we built browser-based file tools that keep that data on your own device.