How to generate email addresses from names
✓ Verified in LibreOffice 25.8.7.3 ✓ Verified in Google Sheets (2026-08-30)Build first-initial-plus-surname addresses from name columns — onboarding sheets, test data.
The formula
| App | Formula | Notes |
|---|---|---|
| Excel (desktop) | =LOWER(LEFT(A2,1)&B2)&"@example.com" | A2=first name, B2=last name. Adjust the pattern to your convention. |
| Google Sheets | =LOWER(LEFT(A2,1)&B2)&"@example.com" | Identical. |
| LibreOffice Calc | =LOWER(LEFT(A2,1)&B2)&"@example.com" | Identical. |
How it works
LEFT takes the first initial, & welds it to the surname, LOWER normalizes the case, and the domain is a literal: John Smith → jsmith@example.com. Real rosters need two more touches: SUBSTITUTE out spaces and apostrophes in surnames (O'Brien, van der Berg), and dedupe collisions — the running-count recipe turns the second jsmith into jsmith2. First.last style is =LOWER(A2&"."&B2)&"@...".
Verified, not just documented
We ran =LOWER(LEFT(A2,1)&B2)&"@example.com" in LibreOffice 25.8.7.3 (headless, with forced recalculation) and it returned jsmith@example.com — exactly the expected result. We then ran the same formulas in Google Sheets, executed 2026-08-30: a formula-only workbook goes into Google Drive, which converts it to a Sheet and recalculates every formula with Google’s own engine, and comes back out as .xlsx carrying the values Google computed. It returned jsmith@example.com for the worked example, the same value LibreOffice produced. Both engines’ numbers on this page are executed results. The Excel formula follows Microsoft’s official documented syntax — we do not run desktop Excel.
Functions used
LOWER · LEFT — see full Excel, Google Sheets & LibreOffice compatibility for each.
Related recipes
- How to capitalize only the first letter (sentence case)
- How to extract the first name from a full name
- How to extract the first word (text before the first space)
- How to extract the username from an email address
- How to flip "Last, First" into "First Last"