Combine a Date With Text in Excel (Without Numbers)
By ExcelReady TeamUpdated 6 min read
The short answer
To combine a date and text in Excel, wrap the date in TEXT before you join it: ="Due "&TEXT(B2,"d mmm yyyy") returns Due 15 Mar 2024. Joining the date directly, as in ="Due "&B2, shows the serial number instead, like Due 45366, because Excel stores dates as numbers. The format code inside TEXT controls how the date looks.
Key takeaways
- Excel stores dates as serial numbers, so joining a raw date shows a number like 45366.
- Wrap the date in TEXT with a format code: TEXT(B2,"d mmm yyyy") gives 15 Mar 2024.
- d, m and y build the date: mmm is Mar, mmmm is March, dddd is the day name.
- In TEXT codes, m right after h means minutes, so write times as "h:mm".
- The result is text: keep the real date in its own cell for sorting and maths.
On this page+
To combine date and text in Excel and still see a real date, wrap the date in the TEXT function before you join it. A formula like ="Due "&TEXT(B2,"d mmm yyyy") gives Due 15 Mar 2024, while ="Due "&B2 gives Due 45366. This guide explains why that happens and shows the format codes you need for labels, report titles and email lines.
Why does a date turn into a number when you join it?#
Excel stores dates as serial numbers, and joining uses the stored number, not what you see. Day 1 is 1 January 1900, and every day after adds one. So 15 March 2024 is stored as 45366. The cell only looks like a date because of its number format.
When you join a date with &, CONCAT or TEXTJOIN, Excel drops the cell's format and uses the raw value:
| B2 shows | Formula | Result |
|---|---|---|
| 15/03/2024 | ="Due "&B2 | Due 45366 |
| 15/03/2024 | ="Due "&TEXT(B2,"dd/mm/yyyy") | Due 15/03/2024 |
The fix is always the same: convert the date to formatted text yourself, with TEXT, before joining. If the idea of dates as numbers is new, the guide to TEXT and VALUE explains how Excel moves between text and numbers.
How to combine a date and text with TEXT#
Use TEXT(date, format_code) inside the join. The format code is a pattern in double quotes that says how the date should look:
="Due "&TEXT(B2,"d mmm yyyy")Step by step:
"Due "is the text, with a space at the end so the words don't touch.&joins the two parts.TEXT(B2,"d mmm yyyy")turns the date into text like15 Mar 2024.
The same pattern works at the start, middle or end of a sentence:
=A2&" joined on "&TEXT(B2,"mmmm d, yyyy")If A2 is Priya and B2 is 15 March 2024, the result is Priya joined on March 15, 2024. For a refresher on joining with & and spaces, see how to combine text from several cells.
Date format codes for TEXT#
Build the date from d, m and y codes. The number of letters controls the style:
| Code | Shows | Example for 15 March 2024 |
|---|---|---|
d | Day, no leading zero | 15 |
dd | Day, two digits | 15 |
ddd | Short day name | Fri |
dddd | Full day name | Friday |
m / mm | Month number | 3 / 03 |
mmm | Short month name | Mar |
mmmm | Full month name | March |
yy / yyyy | Year | 24 / 2024 |
Mix them with spaces, slashes, commas or dashes:
| Formula | Result |
|---|---|
TEXT(B2,"dd/mm/yyyy") | 15/03/2024 |
TEXT(B2,"mm/dd/yyyy") | 03/15/2024 |
TEXT(B2,"yyyy-mm-dd") | 2024-03-15 |
TEXT(B2,"dddd d mmmm") | Friday 15 March |
To pull out just one part, such as the month, see how to get the month name from a date. The TEXT function guide covers number codes too, such as currency and percentages.
How to combine a date and time#
Add the time to the date for a real date-time value, or use two TEXT calls for a label. If A2 holds a date and B2 a time:
=TEXT(A2,"d mmm yyyy")&" at "&TEXT(B2,"h:mm AM/PM")This returns something like 15 Mar 2024 at 2:30 PM.
Watch the letter m. In TEXT codes, m right after h (or right before ss) means minutes, not months. So "h:mm" is hours and minutes, while "mm" alone is a month. If your time shows a month number where the minutes should be, check the code.
If you want a value you can still calculate with, don't join text at all. Use =A2+B2 and format the cell with a date-and-time format.
How to add today's date to a title#
Use TODAY inside TEXT to build a title that always shows the current date. This is common at the top of a report:
="Sales report as of "&TEXT(TODAY(),"d mmmm yyyy")On 1 November 2026 this shows Sales report as of 1 November 2026, and it updates by itself each day you open the file. TODAY takes no arguments, but it still needs the empty brackets.
The same trick works for a period label. If B2 holds the first day of a month, ="Sales for "&TEXT(B2,"mmmm yyyy") gives Sales for March 2024. A label like this updates whenever the date in B2 changes, so you never have to retype the title for a new month. You can also count forward: ="Due by "&TEXT(B2+30,"d mmm") adds 30 days before formatting.
Using CONCAT and TEXTJOIN with dates#
CONCAT and TEXTJOIN join the serial number too, so they need TEXT around the date as well:
=CONCAT("Invoice date: ",TEXT(B2,"dd mmm yyyy"))
=TEXTJOIN(" | ",TRUE,A2,TEXT(B2,"d mmm"),C2)The second formula joins a name, a short date and a status with | between them, skipping empty cells. CONCAT and TEXTJOIN need Excel 2019, Excel 2021 or Microsoft 365. In older versions, use & or CONCATENATE with the same TEXT wrapping.
Common mistakes when combining dates and text#
Most errors come from the format code or from the date itself. Check these:
- The date is already text. If B2 holds text like
15.03.2024, TEXT can't reformat it and returns it unchanged. Convert it first: see how to convert text to dates. - Region settings. Format codes follow the language of your Excel. In some languages the codes use other letters, so a shared file may show odd results on another computer.
- Missing spaces.
="Due"&TEXT(...)givesDue15 Mar 2024. Put the space inside the quotes. - Using the label for maths. The result is text. Keep the real date in its own column for sorting, filtering and date calculations, and use the joined label only for display.
Practise it#
Joining a date to text is a classic job-test task, because it checks whether you know dates are numbers. Practise TEXT and VALUE in a live spreadsheet, then practise joining text with & and CONCAT. Each lesson checks your formula instantly. Or try the exercise on this page first.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
Build a label like Starts 15 Mar 2025. Click C2 and join the word Starts and a space to the date in B2, formatted with TEXT and the code d mmm yyyy.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Label | |||
| 2 | ||||
| 3 | ||||
| 4 | ||||
| 5 | ||||
| 6 | ||||
| 7 | ||||
| 8 |
Tip: Put the word and its trailing space in quotes, then & and TEXT(B2,"d mmm yyyy").
Practise this in a lesson
Frequently asked questions
Why does my date turn into a number when I combine it with text?
Excel stores every date as a serial number, such as 45366 for 15 March 2024. The & operator joins that stored number, not the formatted date you see. Wrap the date in TEXT with a format code to keep it readable.
How do I combine a date and text in one cell?
Use ="Report for "&TEXT(B2,"dd/mm/yyyy"). TEXT turns the date into formatted text, and & joins it to your words.
How do I combine a date and time in Excel?
If the date is in A2 and the time in B2, add them: =A2+B2, then format the cell as a date and time. To join them as text, use =TEXT(A2,"d mmm yyyy")&" "&TEXT(B2,"h:mm").
Can I use CONCAT or TEXTJOIN with dates?
Yes, but they have the same problem as &: they join the serial number. Wrap the date in TEXT inside them, for example =CONCAT("Due ",TEXT(B2,"d mmm")).