Get Initials From a Name in Excel
By ExcelReady TeamUpdated 7 min read
The short answer
To get initials from a name in Excel, take the first letter of the first name and the first letter after the space: =LEFT(A2,1)&MID(A2,FIND(" ",A2)+1,1) turns Maria Lopez into ML. In Microsoft 365 or Excel 2024, =CONCAT(LEFT(TEXTSPLIT(A2," "))) returns the initials of every word, including middle names.
Key takeaways
- LEFT(A2,1) gives the first initial; MID(A2,FIND(" ",A2)+1,1) gives the letter right after the first space.
- Join the pieces with & to make the initials, and add "." between them if you want periods.
- =CONCAT(LEFT(TEXTSPLIT(A2," "))) handles any number of names in Microsoft 365 or Excel 2024.
- Run TRIM on the names first, because double spaces make the formulas pick the wrong letters.
- Wrap the formula in UPPER if some names are typed in lowercase.
On this page+
- How the initials formula works
- How to get initials in Microsoft 365 with TEXTSPLIT
- How to get initials with a middle name in older Excel
- How to add periods or spaces between initials
- Other name formats: first initial plus last name, and Last, First
- How to get initials without a formula (Flash Fill)
- Why your initials formula gives the wrong result
- Practise it
To get initials from a name in Excel, take the first letter of the name and the first letter after the space, then join them: =LEFT(A2,1)&MID(A2,FIND(" ",A2)+1,1) turns Maria Lopez into ML. In Microsoft 365 there is a shorter formula that also handles middle names. This guide is for anyone building staff lists, ID badges, usernames or sign-off columns from a list of full names.
How the initials formula works#
The formula finds two letters and joins them with &. All the examples use names in column A, starting in A2:
| A | B | |
|---|---|---|
| 1 | Full name | Initials |
| 2 | Maria Lopez | ML |
| 3 | Kwame Mensah | KM |
| 4 | Lena Fischer | LF |
| 5 | Tomas Silva | TS |
| 6 | Priya Nair | PN |
=LEFT(A2,1)&MID(A2,FIND(" ",A2)+1,1)| Part | What it does | Result for Maria Lopez |
|---|---|---|
LEFT(A2,1) | Takes 1 character from the start | M |
FIND(" ",A2) | Finds the position of the space | 6 |
FIND(" ",A2)+1 | The position of the next letter | 7 |
MID(A2,7,1) | Takes 1 character from position 7 | L |
& | Joins the two letters | ML |
Type it in B2, then fill it down to B6 (Windows: Ctrl+D; Mac: ⌘D). The LEFT function guide and the MID function guide explain both functions in more detail, and the lesson on LEFT, RIGHT, MID and LEN lets you practise them on product codes.
How to get initials in Microsoft 365 with TEXTSPLIT#
In Microsoft 365 and Excel 2024, TEXTSPLIT can break a name into words, and LEFT can take the first letter of each:
=CONCAT(LEFT(TEXTSPLIT(A2," ")))For Maria Lopez, TEXTSPLIT returns the two words Maria and Lopez, LEFT turns them into M and L (when you leave out its second argument, LEFT takes 1 character), and CONCAT joins them into ML. The same formula turns Ana Sofia Reyes into ASR, so it works for any number of names.
A shorter version for exactly two names uses TEXTAFTER: =LEFT(A2)&LEFT(TEXTAFTER(A2," ")). To split names into separate first and last name columns instead, see how to split full names in Excel.
How to get initials with a middle name in older Excel#
Without TEXTSPLIT, add a third piece that starts after the second space. FIND's third argument tells it where to start looking, so FIND(" ",A2,FIND(" ",A2)+1) finds the second space:
=LEFT(A2,1)&MID(A2,FIND(" ",A2)+1,1)&MID(A2,FIND(" ",A2,FIND(" ",A2)+1)+1,1)For Ana Sofia Reyes, the first space is at position 4 and the second at position 10, so the formula returns ASR. On a two-word name, the second FIND fails and the formula shows #VALUE!. If your list mixes two-part and three-part names, wrap it in IFERROR and fall back to the two-letter version:
=IFERROR(LEFT(A2,1)&MID(A2,FIND(" ",A2)+1,1)&MID(A2,FIND(" ",A2,FIND(" ",A2)+1)+1,1),LEFT(A2,1)&MID(A2,FIND(" ",A2)+1,1))How to add periods or spaces between initials#
Join extra text between the letters with &. For M.L.:
=LEFT(A2,1)&"."&MID(A2,FIND(" ",A2)+1,1)&"."In Microsoft 365, TEXTJOIN puts a separator between any number of initials, and the final &"." adds the last one:
=TEXTJOIN(".",TRUE,LEFT(TEXTSPLIT(A2," ")))&"."This turns Ana Sofia Reyes into A.S.R. The lesson on joining text with &, CONCAT and TEXTJOIN covers these joining tools step by step.
Other name formats: first initial plus last name, and Last, First#
Two related formats come up often in staff lists and usernames.
First initial and last name (M. Lopez): take the first letter, add a period and a space, then everything after the space:
=LEFT(A2,1)&". "&MID(A2,FIND(" ",A2)+1,100)The 100 just means "the rest of the text". For a username such as mlopez, drop the period and space and wrap it in LOWER: =LOWER(LEFT(A2,1)&MID(A2,FIND(" ",A2)+1,100)). The guide to creating email addresses from names builds on this.
Last, First order (Lopez, Maria): the first name comes after the comma and space, so swap the pieces:
=MID(A2,FIND(" ",A2)+1,1)&LEFT(A2,1)This returns ML, with the first-name initial first.
How to get initials without a formula (Flash Fill)#
Flash Fill copies a pattern you type, so it can make initials with no formula at all. It's handy for a one-off list.
- In B2, type the initials for the first name by hand: ML.
- Click B3 and choose Data > Flash Fill (on Windows you can also press Ctrl+E).
- Excel fills the rest of the column: KM, LF, TS and PN.
Check the results before you rely on them. Flash Fill guesses the pattern from your example, so a name with a middle name or a title can come out differently. If it guesses wrong, type a second example in B3 and run it again.
The bigger limit is that Flash Fill results are plain text, not formulas. If a name in column A changes, or you add new names, the initials don't update; you have to run Flash Fill again. For a list that keeps changing, the formulas above are the safer choice.
Why your initials formula gives the wrong result#
Most problems come from the data, not the formula. Check these:
- Extra spaces. A leading space makes LEFT return a space, and a double space makes MID pick the second space instead of a letter. Clean the names with
=TRIM(A2)first, or put TRIM inside the formula. - Only one name. FIND can't find a space and returns #VALUE!. Use IFERROR with
LEFT(A2,1)as the fallback. - Lowercase names. "james o'neil" gives jo. Wrap the formula in UPPER to get JO.
- Titles and suffixes. "Dr. Maria Lopez" gives DM. Remove titles first with SUBSTITUTE or Find and Replace.
- Hyphenated names. "Anne-Marie Dubois" gives AD, since there's no space inside Anne-Marie. Check these by hand if the second letter matters.
The same text tools help with other clean-up jobs, such as extracting the domain from an email or extracting numbers from text.
Practise it#
Try the exercise on this page: it builds the two-letter initials formula from LEFT, MID and FIND. Then practise LEFT, RIGHT, MID and LEN in a live spreadsheet and practise joining text with & and TEXTJOIN. Each formula is checked as soon as you press Enter.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
In B2, get Maria Lopez's initials from A2: take the first letter with LEFT, then join the letter after the space with MID and FIND.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Initials | |||
| 2 | Maria Lopez | |||
| 3 | Kwame Mensah | |||
| 4 | Lena Fischer | |||
| 5 | Tomas Silva | |||
| 6 | Priya Nair | |||
| 7 | ||||
| 8 | ||||
| 9 |
Tip: FIND(" ",A2) gives the position of the space. Add 1 to start MID on the next letter, and take 1 character.
Practise this in a lesson
Frequently asked questions
What is the formula to get initials in Excel?
For a first and last name in A2, use =LEFT(A2,1)&MID(A2,FIND(" ",A2)+1,1). LEFT takes the first letter, FIND locates the space, and MID takes the letter after it.
How do I get initials from a full name with a middle name?
In Microsoft 365 or Excel 2024, use =CONCAT(LEFT(TEXTSPLIT(A2," "))), which takes the first letter of every word. In older Excel, add a third MID that starts after the second space.
How do I add periods between initials?
Join a period after each letter: =LEFT(A2,1)&"."&MID(A2,FIND(" ",A2)+1,1)&"." turns Maria Lopez into M.L. In Microsoft 365, =TEXTJOIN(".",TRUE,LEFT(TEXTSPLIT(A2," ")))&"." works for any number of names.
Why does my initials formula return #VALUE!?
FIND can't find a space, usually because the cell holds only one name or is empty. Wrap the formula in IFERROR, for example =IFERROR(LEFT(A2,1)&MID(A2,FIND(" ",A2)+1,1),LEFT(A2,1)).
Can Flash Fill get initials in Excel?
Yes. Type the initials for the first name in the next column, then use Data > Flash Fill. It works well for a one-off list but doesn't update when names change.