Excel Mail Merge: Set Up Your Data and Connect It to Word
You cannot run a mail merge inside Excel itself. Excel holds the data (one row per recipient), and the mail merge runs in Word, which reads your sheet and fills one document per row. Most mail merge problems, such as wrong dates, lost leading zeros or missing recipients, start in the spreadsheet, so this guide is about setting up the Excel side correctly and then connecting it to Word.

Can you do a mail merge in Excel?
Not on its own. Excel has no Mailings tab and no way to produce one letter per row. The usual setup is:
- Excel is the data source: column names in the first row, one recipient per row below.
- Word is where the mail merge happens: you write the letter, connect the workbook under Mailings > Select Recipients, insert merge fields and generate the documents.
If you would rather not use Word at all, online tools can read the Excel file directly and fill a PDF, Word or Excel template. There is more on that at the end of this guide.
How to lay out the sheet
Word reads your sheet like a database table. It works best when the sheet looks like one:
- One header row, in row 1. No title, logo or empty rows above it. Each header becomes a merge field name.
- One record per row. One person, customer or certificate per row, with no blank rows in between.
- One piece of information per column. Split names into FirstName and LastName, and addresses into Street, City and PostalCode. You can always combine columns in Word, but you cannot split them there.
- Short, unique column names. Use names like FirstName or InvoiceDate. Word turns spaces into underscores ("First Name" becomes First_Name) and struggles with punctuation, so keep names to letters, numbers and underscores. Never leave a header cell empty.
- No merged cells. Merged cells break the grid Word expects. Use one cell per value and, if you want a visual heading, put it on another sheet.
- No totals, subtotals or notes in the list. A "Total" row at the bottom becomes one more letter.
- Formulas are fine. Word reads the result of a formula, not the formula itself.
A sheet that is ready for a mail merge looks like this:
| FirstName | LastName | Company | Street | City | ZIP | Amount | DueDate |
|---|---|---|---|---|---|---|---|
| Sarah | Jones | Pine Studio | 120 Pine Street | Boston | 02134 | 1,250.00 | 14 Nov 2026 |
| David | Smith | 45 Oak Avenue | Chicago | 60610 | 89.90 | 30 Nov 2026 |
Note that David has no company. Empty cells are fine; Word simply inserts nothing. How to stop that from leaving a blank line in the address is covered in our Mailings tab guide.
Numbers, dates and ZIP codes: why they change in Word
This is the part that catches almost everyone. Word reads the stored value of each cell, not the way Excel displays it. So the sheet above can arrive in Word as:
- Amount: 1250 instead of 1,250.00, without the currency symbol. Calculated values can show long decimals.
- DueDate: in your computer's default date order, for example 11/14/2026, instead of 14 Nov 2026.
- ZIP: 2134 instead of 02134, if the column was stored as a number.
- Percentages: 0.15 instead of 15%.
There are two reliable fixes. Pick one per column.
Fix 1: Turn the value into text in Excel
Add a helper column with the TEXT function, which produces exactly the text you want Word to print, and use that column in the mail merge:
- Amount:
=TEXT(G2,"#,##0.00") - Date:
=TEXT(H2,"d mmmm yyyy")(in Excel, lowercase m is the month) - Five-digit ZIP:
=TEXT(F2,"00000") - Percentage (if column I holds one):
=TEXT(I2,"0%")
For ZIP codes, phone numbers, customer numbers and anything else that is an identifier rather than a quantity, the cleanest option is to format the column as Text before you type or paste the values. Formatting it as Text afterwards does not bring back zeros Excel has already dropped.
Fix 2: Format the field in Word
Keep the raw value in Excel and add a format switch to the merge field in Word. Press Alt+F9 to show field codes and edit them:
{ MERGEFIELD Amount \# "#,##0.00" }
{ MERGEFIELD DueDate \@ "d MMMM yyyy" }
{ MERGEFIELD ZIP \# "00000" }
In Word, capital M is the month. Our Mailings tab guide has more on switches. Fix 1 is easier to check because you can see the result in the sheet; fix 2 keeps the sheet clean.
Watch out for columns that mix numbers and text
Word decides whether a column is a number or text by looking at the first rows. If a column mostly holds numbers but some cells contain text (for example ZIP codes like 60610 next to 60610-1234, or invoice numbers with a letter prefix), the minority values can come through blank. Make the whole column text, either with the Text format or a TEXT helper column.
Multiple sheets and filtered lists
- Word uses one sheet per mail merge. When you connect a workbook, the Select Table window lists every sheet (shown with a $ at the end, like Customers$) and every named range. Pick the one with your list.
- Data spread over several sheets: pull it into one sheet first, for example with XLOOKUP or VLOOKUP on a customer number, then mail merge from that sheet.
- Only some rows: you do not need a separate file. Filter the recipients in Word under Edit Recipient List, or create a named range that covers only those rows.
- Several lists in one workbook: keep each list on its own sheet rather than stacked on one sheet with gaps in between.
Connect the Excel file to Word
- Save the workbook and close it in Excel.
- In Word, open your letter and go to Mailings > Start Mail Merge > Letters (or Labels, Envelopes, E-mail Messages).
- Click Select Recipients > Use an Existing List and choose the workbook.
- In Select Table, pick the sheet or named range and tick First row of data contains column headers.
- Click Edit Recipient List and scroll through it. Every row of your sheet should be there, with sensible values in each column. This is the fastest way to catch a wrong sheet or a broken header.
- Insert your fields with Insert Merge Field, check a few records with Preview Results, then use Finish & Merge.
New to this? Our simple mail merge walkthrough goes through these steps with a small example list.
Changing the data later
The Word document stays linked to the workbook. If you correct a typo or add rows, save the workbook, then reopen the Word document (click Yes when Word asks to run the SQL command) or click Refresh in Edit Recipient List. If you rename or move the workbook, Word asks you to find it again. If you rename a column, any field that used the old name has to be inserted again.
CSV files and Google Sheets
Word can use a CSV file the same way. If names with accents or umlauts come out garbled, save the file as CSV UTF-8 in Excel and choose Unicode (UTF-8) if Word asks for the encoding. Word cannot connect to a Google Sheet directly; download it as .xlsx or .csv first.
Checklist before you start the mail merge
- Headers in row 1, no blank or duplicate header names
- One record per row, no blank rows, no totals row
- No merged cells
- Identifiers (ZIP, phone, customer number) stored as text
- Amounts, dates and percentages either formatted with TEXT or with a field switch in Word
- All data needed for the letter on one sheet
- Workbook saved and closed
Excel mail merge without the formatting work
MailMergic reads your Excel file (.xlsx, .xls), a CSV or a Google Sheet directly in the browser and uses the first row as your list of fields. Unlike Word, it reads the display format of each column, so 1,250.00 stays a currency amount and 14 Nov 2026 stays a date, without helper columns or field switches. You can also override the format per column, and the preview flags missing values and data mismatches before you generate.
Upload your Word letter as the template, drag the columns into place, and generate one PDF or Word file per row. Download them, or on a paid plan email each document to the address in its row. The free plan covers 100 documents a month (with a watermark). Start a Word mail merge from your Excel file. If your template is a PDF form or another spreadsheet instead of a Word letter, see mail merge from Excel for the other options.