# Why does a date turn into a number when joined with text?

Joining uses the date's serial number. Format it with TEXT first: =B2&" is due on "&TEXT(C2,"mmm d, yyyy").

**Excel:** `=B2&" is due on "&TEXT(C2,"mmm d, yyyy")` (Every current version)

**Google Sheets:** the same formula works.

## Example

Sample data (row 1 is the header):

| A | B | C | D |
| --- | --- | --- | --- |
| Invoice | Customer | Due date | Reminder |
| INV-301 | Contoso | 2026-10-31 |  |
| INV-302 | Fabrikam | 2026-11-14 |  |
| INV-303 | Litware | 2026-11-26 |  |
| INV-304 | Adatum | 2026-12-19 |  |

Formula in D2, filled to D5: `=B2&" is due on "&TEXT(C2,"mmm d, yyyy")`

Result: Contoso is due on Oct 31, 2026; Fabrikam is due on Nov 14, 2026; Litware is due on Nov 26, 2026; Adatum is due on Dec 19, 2026

## How it works

Joining with & uses the value underneath the date, its serial number, so `B2&" is due on "&C2` shows 46326. TEXT turns the date into text in the format you choose, "mmm d, yyyy" here, before it is joined.

## Other ways

- `=B2&" is due on "&TEXT(C2,"m/d/yyyy")`: Any date format code works inside TEXT. (Shows dates like 10/31/2026.)
- `=CONCAT(B2," is due on ",TEXT(C2,"mmm d, yyyy"))`: CONCAT joins the same pieces.

## Common mistakes

- In format codes, "mm" right after "h" means minutes. In date-only codes use "m" or "mm" for the month as usual.
- Numbers lose their formatting the same way: use `TEXT(D2,"$#,##0.00")` for an amount in a sentence.
- The result is text. Keep the real date in its own column for sorting and calculating.

## Questions

**How do I include the weekday?**

`TEXT(C2,"dddd, mmm d")` gives "Saturday, Oct 31".

**How do I stop a number showing many decimals in a sentence?**

Format it inside TEXT: `TEXT(B2,"0.0")`.

Every formula and result on this page was checked by running it in the Spreadsheet Practice formula engine on 2026-10-30.

Source: https://spreadsheetpractice.com/formulas/date-turns-into-number-when-joined-with-text
