You join a date to a label and Excel hands you “Invoice dated 46309”. The date is gone, replaced by a number nobody can read. Nothing is broken — and the fix is one function.
Why 46309 and not a date
Excel does not store dates as dates. It stores a number of days counted from 1 January 1900, and then displays it as a date. The format is a display setting, not the value.
When you join text, Excel takes the value and drops the display. You get the raw number. The same happens with currency and percentages: $1,250.00 becomes 1250, and 12% becomes 0.12.
Currency, percentages, decimals: number formats are explained step by step in lesson 5 of our free Excel training, Number Format in Excel. The full training has 16 lessons.
The TEXT function puts the format back
TEXT converts a value into text in the format you choose. You wrap it around the cell that misbehaves:
=”Invoice dated “&TEXT(A2,”dd/mm/yyyy”)
Result: Invoice dated 14/10/2026. The second argument is the format code — the same codes you already use in the Format Cells window (Ctrl + 1 > Number > Custom).
Each letter has a meaning: d for the day, m for the month, y for the year. By changing the code, you can display the same date in many ways. All the codes are explained in Date Format in Excel.
Two things to know
- The result is text, not a number. You can no longer calculate with it. Use TEXT only for what will be read — a title, a sentence, a label on a chart.
- The format codes follow your Excel language. In a French Excel, the date codes use jj/mm/aaaa, not dd/mm/yyyy. A file that travels between two languages can show an incorrect result, like 14/mm/yyyy, for this exact argument.