Mail Merge Formatting: Fix Numbers, Dates and Fonts in Word
Word does not take number and date formats from Excel: a mail merge receives the raw value, so $1,500.00 arrives as 1500 and a date may show up in US order. You fix that in Word by adding a switch to the merge field: \# "$#,##0.00" for currency and \@ "d MMMM yyyy" for dates. Press Alt+F9 to show the field codes, type the switch inside the braces, press Alt+F9 again and update.
This guide gives you working examples for numbers, currency, percentages, dates and text case, and then fixes the other common formatting problems: merged text in the wrong font, blank lines from empty fields, double-spaced addresses and tables that fall apart.

How to see and edit a merge field's code
Merge fields are always surrounded by chevrons, like «Amount». The chevrons are only how Word displays the field: typing «Amount» by hand creates plain text, not a field. Behind each one is a field code you can edit:
- Alt+F9 shows or hides the codes of all fields. «Amount» becomes
{ MERGEFIELD Amount }. - Shift+F9 does the same for the selected field only.
- Click inside the braces, after the field name, and type the switch. Do not type the braces themselves: they only work when inserted by Word (Ctrl+F9 creates an empty pair).
- Press Alt+F9 to switch back, then select the text and press F9 to update. With Preview Results on, you see the formatted value right away.
Format numbers and currency with \#
The numeric picture switch \# takes a pattern in quotes. A 0 always shows a digit, a # shows a digit only if there is one, and anything else (a currency sign, a space, text) is printed as typed.
{ MERGEFIELD Amount \# "#,##0.00" } 1,234.50
{ MERGEFIELD Amount \# "$#,##0.00" } $1,234.50
{ MERGEFIELD Amount \# "#,##0" } 1,235
{ MERGEFIELD Amount \# "$#,##0.00;($#,##0.00)" } ($1,234.50) for a negative value
{ MERGEFIELD Amount \# "#,##0.00 EUR" } 1,234.50 EUR
{ MERGEFIELD ZIP \# "00000" } 02134
Three things to know:
- Long decimals. Excel sometimes passes values with a long tail of decimals, such as 1234.5000000001. Any picture with a fixed number of decimals, such as
#,##0.00, rounds it properly. - Separators follow your Windows region. The comma and point in the pattern are the thousands and decimal separators of your regional settings. On a German or French system the pattern for 1.234,50 is written with those separators.
- Leading zeros.
\# "00000"restores zeros that Excel dropped from ZIP codes or IDs, as long as the value is a number with up to that many digits.
Format percentages
Excel stores 25% as 0.25, and that is what Word receives. A % in the picture is only printed as a character; it does not multiply by 100. So you need a small formula field around the merge field:
{ = { MERGEFIELD Rate } * 100 \# "0%" } 25%
{ = { MERGEFIELD Rate } * 100 \# "0.0%" } 25.0%
Insert both pairs of braces with Ctrl+F9: first the outer pair, type = and a space, then Ctrl+F9 again for the inner pair and type MERGEFIELD Rate.
Format dates with \@
The date switch \@ works the same way. Note the capital M for months: a lowercase m means minutes.
{ MERGEFIELD InvoiceDate \@ "d MMMM yyyy" } 2 March 2025
{ MERGEFIELD InvoiceDate \@ "MMMM d, yyyy" } March 2, 2025
{ MERGEFIELD InvoiceDate \@ "dd/MM/yyyy" } 02/03/2025
{ MERGEFIELD InvoiceDate \@ "MM/dd/yyyy" } 03/02/2025
{ MERGEFIELD InvoiceDate \@ "dddd, d MMMM" } Sunday, 2 March
A date that arrives with a time attached (for example 3/2/2025 12:00:00 AM) is cleaned up by the same switch, since the pattern contains no time. If the switch seems to have no effect, check that the Excel column contains real dates and not text that only looks like a date.
Change text case with \*
The format switch \* changes capitalisation, which helps when your list is a mix of "SMITH" and "smith":
{ MERGEFIELD LastName \* Upper } SMITH
{ MERGEFIELD LastName \* Lower } smith
{ MERGEFIELD City \* Caps } New York (first letter of each word)
{ MERGEFIELD Note \* FirstCap } First letter of the first word only
Caps capitalises the first letter of each word but leaves the other letters alone, so a name typed in all caps stays in caps. For a list like that, clean the column in Excel first with =PROPER(A2).
Keep the field's font style
Merged text takes the formatting of the field in Word, never the formatting of the Excel cell. Bold, colours and fonts in your spreadsheet are ignored. To style a merged value:
- Select the whole field, including both chevrons. Clicking it turns it grey.
- Apply the font, size, bold or colour.
- If the formatting reverts after an update or in the finished documents, press Alt+F9, select the whole code including the braces, apply the formatting there, and switch back.
- Still not sticking? Add
\* CHARFORMATto the code and format the first letter ofMERGEFIELD; Word then applies that letter's formatting to the whole result.
You cannot format only part of one value (for example bold the first word of an address). Split the data into two columns instead and format each field separately.
Avoid blank lines from empty fields
When a field is empty for some recipients (a second address line, a company name), its line can remain as an empty gap. There are three fixes, from simplest to most flexible.
Address Block. For postal addresses, Insert Address Block leaves out empty parts automatically.
Text before or after a field with \b and \f. \b adds text before a value and \f adds text after it, but only if the field is not empty. That is useful for labels inside a line:
{ MERGEFIELD Phone \b "Phone: " }
prints "Phone: 555 0100", or nothing at all when there is no phone number.
An IF field that contains the line break. Put the optional field and its paragraph mark inside an IF, so the whole line disappears when the field is empty. Here, the Enter after { MERGEFIELD Address2 } is typed inside the quotes, and the City line starts right after the closing brace:
{ MERGEFIELD Address1 }
{ IF { MERGEFIELD Address2 } <> "" "{ MERGEFIELD Address2 }
" }{ MERGEFIELD City }, { MERGEFIELD State } { MERGEFIELD ZIP }
You can build simple IF fields from Mailings, Rules, If...Then...Else; for nested conditions and more examples see How to Use Conditional Logic (IF Statements) in Mail Merge.
Fix paragraph spacing in addresses
Word's default Normal style adds 8 pt of space after every paragraph, so an address with one paragraph per line looks double-spaced. Select the address and either apply the No Spacing style or set Spacing Before and After to 0 pt on the Layout tab. Alternatively, end each address line with Shift+Enter (a line break) instead of Enter.
Turn on Show/Hide (Ctrl+Shift+8) while you format the template. It shows stray empty paragraphs, spaces before fields and manual page breaks that will repeat in every merged document.
Tables in mail merge documents
- Fix the column widths. By default a table resizes to fit its content, so one long value can stretch a column and squash the rest. Choose Table Layout, AutoFit, Fixed Column Width.
- Align numbers right in amount columns and give every amount the same
\#picture, so decimals line up. - Keep rows together. In Table Properties, Row, clear "Allow row to break across pages" so a row is not split between two pages.
- One row per recipient only. A Word mail merge puts one Excel row into each document. It cannot fill a table with several rows per recipient (for example all line items of one invoice). The Directory type lists all records one after another in a single document, which suits lists but not per-customer tables.
Or fix the format in Excel instead
If you would rather not edit field codes, give Word text that is already formatted. Add a helper column in Excel with the TEXT function and insert that column as the merge field instead:
=TEXT(B2,"$#,##0.00") $1,234.50
=TEXT(C2,"d mmmm yyyy") 2 March 2025
=TEXT(D2,"0%") 25%
=TEXT(E2,"00000") 02134
Because the result is text, Word prints it exactly as shown. The downside is that every new column needs its own helper, and anyone editing the sheet has to keep them.
The same template without field switches
MailMergic mail merges your Word template in the browser and takes the date, currency and number formats from your Excel file, so a value formatted as $1,500.00 or 2 March 2025 in the spreadsheet arrives that way in the document, without \# or \@ switches. Conditional content is set with visual rules instead of IF field syntax, including hiding empty address lines. Each row becomes its own PDF or Word file, named from your data, ready to download or email.
The free plan lets you generate 100 documents a month (with a watermark), no credit card needed. Upload your Word template and preview it with your own data.
Checklist before you finish the mail merge
- Every amount and date field has a switch (or a formatted helper column).
- Merged values have the same font and size as the text around them.
- Spaces and punctuation sit outside the fields: «FirstName» «LastName», not «FirstName»«LastName».
- Records with empty optional fields leave no blank lines.
- Preview Results looks right for the shortest and the longest names and addresses in your list. Mailings, Check for Errors catches missing fields before you finish.
Printing labels or envelopes? The same switches apply there; see How to Mail Merge Labels, Envelopes and Name Tags in Word.
Upload DOCX · Get DOCX or PDF