How to Convert a Number to Words in Excel
By ExcelReady TeamUpdated 6 min read
The short answer
Excel has no built-in function to convert a number to words in English. You have three options: a formula that uses CHOOSE to spell out each digit group, a reusable LAMBDA function in Microsoft 365, or a VBA macro such as the SpellNumber code Microsoft publishes. For big numbers, split it into three-digit groups with TEXT and MID.
Key takeaways
- There is no SPELLNUMBER function in Excel; only BAHTTEXT exists, and it writes Thai.
- A CHOOSE formula can spell any whole number from 0 to 999 with no macros.
- TEXT(A2,"000000000") pads a number to 9 digits, and MID pulls out the millions, thousands and units groups.
- For cheques, write the cents separately with ROUND(MOD(A2,1)*100,0).
- Words are text: keep the original number in its own cell for any maths.
On this page+
- Does Excel have a function to convert numbers to words?
- How to spell out numbers from 0 to 999 with a formula
- How to split big numbers into groups with TEXT and MID
- How to add dollars and cents for cheques and invoices
- How to make it reusable with LAMBDA in Microsoft 365
- When to use a VBA macro instead
- Practise it
Excel has no built-in function to convert a number to words in English, so 742 won't turn into "seven hundred forty-two" with one click. You can still do it with a formula, a reusable LAMBDA in Microsoft 365, or a short macro. This guide shows all three, starting with a formula you can paste in today, and explains how to handle thousands, millions and cheque-style cents for invoices and payment forms.
Does Excel have a function to convert numbers to words?#
No. There is no SPELLNUMBER or NUMBERTOWORDS function in any version of Excel. The only related function is BAHTTEXT, which writes a number as Thai text with the currency name, so it doesn't help for English.
That leaves three practical routes:
| Method | Works in | Good for | Watch out for |
|---|---|---|---|
| CHOOSE formula | All versions | One-off sheets, no macros allowed | Long formula |
| LAMBDA function | Microsoft 365 and Excel 2024 | Reusing it like a real function | Not in older versions |
| VBA macro (SpellNumber) | Desktop Excel | Many files, currency words | Must save as .xlsm; macros may be blocked |
Whichever you pick, the result is text. Keep the real number in its own cell so totals still work.
How to spell out numbers from 0 to 999 with a formula#
A number below 1,000 has a hundreds part and a remainder from 0 to 99, and CHOOSE can turn each part into a word. CHOOSE picks an item from a list by position: =CHOOSE(3,"one","two","three") returns "three".
With the number in A2, this formula spells any whole number from 0 to 999:
=TRIM(IF(A2>=100,CHOOSE(INT(A2/100),"one","two","three","four","five","six","seven","eight","nine")&" hundred ","")&IF(MOD(A2,100)<20,CHOOSE(MOD(A2,100)+1,"","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),CHOOSE(INT(MOD(A2,100)/10)-1,"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety")&IF(MOD(A2,10)>0,"-"&CHOOSE(MOD(A2,10),"one","two","three","four","five","six","seven","eight","nine"),"")))It looks long, but it has only three pieces:
- Hundreds.
INT(A2/100)gives the hundreds digit, and CHOOSE turns it into a word plus " hundred ". - 0 to 19.
MOD(A2,100)is the remainder after the hundreds. If it is under 20, CHOOSE picks the word from a list of 20 (the first item is empty, for zero). - 20 to 99. Otherwise, the tens word comes from
INT(MOD(A2,100)/10)and the units word fromMOD(A2,10), joined with a hyphen.
TRIM removes the extra space left after "hundred" when there is no remainder. Some results:
| A2 | Result |
|---|---|
| 742 | seven hundred forty-two |
| 365 | three hundred sixty-five |
| 100 | one hundred |
| 40 | forty |
| 15 | fifteen |
INT and MOD do the digit work here; the guide to the MOD and INT functions explains them. British and Indian English usually add "and" after hundred ("seven hundred and forty-two"). To get that, replace &" hundred " in the formula with &" hundred"&IF(MOD(A2,100)>0," and "," "). The "and" then appears only when there is a remainder, so 100 stays "one hundred".
How to split big numbers into groups with TEXT and MID#
Numbers in the thousands and millions are spelled one group of three digits at a time. To get the groups, pad the number to nine digits with the TEXT function, then cut it up with the MID function.
For 4,725,310 in A2:
| Cell | Formula | Result |
|---|---|---|
| B2 (millions) | =VALUE(MID(TEXT(A2,"000000000"),1,3)) | 4 |
| C2 (thousands) | =VALUE(MID(TEXT(A2,"000000000"),4,3)) | 725 |
| D2 (units) | =VALUE(MID(TEXT(A2,"000000000"),7,3)) | 310 |
TEXT(A2,"000000000") returns the text "004725310": the zeros in the format force nine digits, the same trick that keeps leading zeros on IDs. MID(text, start, length) then takes three characters from position 1, 4 or 7. VALUE turns each group back into a number.
Now copy the 0–999 formula into E2, F2 and G2, pointing at B2, C2 and D2 instead of A2. Join the words with the group names:
=TRIM(IF(B2>0,E2&" million ","")&IF(C2>0,F2&" thousand ","")&G2)The result is four million seven hundred twenty-five thousand three hundred ten. The IF tests skip empty groups, so 1,005 becomes "one thousand five" and 2,000,000 becomes "two million". Joining text with & is covered in the guide to combining text in Excel. This setup handles whole numbers up to 999,999,999.
For lakhs and crores, keep the last three digits as one group, then split the remaining digits into pairs from the right: MID(TEXT(A2,"000000000"),5,2) is the thousands pair, position 3 is the lakhs pair and position 1 is the crores pair.
How to add dollars and cents for cheques and invoices#
Payment documents often show the amount in words with the cents as a fraction, like "one thousand two hundred fifty and 45/100". Split the amount into whole units and cents first. For 1,250.45 in A2:
- Whole part:
=INT(A2)returns 1250. Spell this with the formulas above. - Cents:
=ROUND(MOD(A2,1)*100,0)returns 45. ROUND fixes the tiny decimal errors that MOD can leave.
Then add the fraction to the words, with H2 holding the words for the whole part:
=H2&" and "&TEXT(ROUND(MOD(A2,1)*100,0),"00")&"/100"The "00" format keeps two digits, so 5 cents shows as 05/100. Many invoice templates put this line under the total; the guide to building an invoice with formulas shows where it fits. For more TEXT format codes, see the TEXT function's formats.
How to make it reusable with LAMBDA in Microsoft 365#
LAMBDA lets you save a formula as your own named function, so you type =WORDS999(A2) instead of the long formula. It needs Microsoft 365 or Excel 2024.
- Go to Formulas > Name Manager > New.
- Name it
WORDS999. - In Refers to, type
=LAMBDA(n, ...), pasting the 0–999 formula in place of the dots and replacing everyA2withn. - Click OK. Now
=WORDS999(742)returns "seven hundred forty-two" anywhere in that workbook.
The function belongs to that one workbook, so add it to a template if you use it often.
When to use a VBA macro instead#
A macro is the best choice when many files need amounts in words with currency names. Microsoft Support publishes a VBA function called SpellNumber in its article on converting numbers into words. You paste it into a module in the Visual Basic editor (Windows: Alt+F11; Mac: Tools > Macro > Visual Basic Editor), then use =SpellNumber(A2) like any function.
Keep three limits in mind. The file must be saved as an .xlsm macro-enabled workbook. Many companies block macros from files that come by email. And Excel for the web doesn't run VBA. If any of these apply to you, use the formula or LAMBDA route.
Practise it#
Spelling numbers is mostly a text job: cutting digits out with MID and joining words with &. Try the exercise on this page, then practise converting between text and values in a live spreadsheet and practise joining text with & and TEXTJOIN. Each lesson checks your formula instantly.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
To spell out a big number, you first split it into groups of three digits. Click C2 and use TEXT and MID to return the thousands group of the number in B2 (the 725 in 4,725,310): pad the number to 9 digits with TEXT, then take 3 characters starting at position 4.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Thousands group | |||
| 2 | ||||
| 3 | ||||
| 4 | ||||
| 5 | ||||
| 6 |
Tip: TEXT(B2,"000000000") gives 004725310. MID(...,4,3) takes 3 characters starting at position 4.
Practise this in a lesson
Frequently asked questions
Is there a formula to convert numbers to words in Excel?
Not a built-in one. You can build a formula with CHOOSE, INT and MOD that spells numbers up to 999, then repeat it for thousands and millions. In Microsoft 365 you can save it as a LAMBDA so it works like a normal function.
How do I use SpellNumber in Excel?
SpellNumber is not built in. It is VBA code you paste into a module through the Visual Basic editor (Alt+F11 on Windows). Then you can type =SpellNumber(A2). Save the file as an .xlsm macro-enabled workbook.
How do I write an amount in words on a cheque in Excel?
Spell out the whole-number part with a words formula, then add the cents as a fraction: TEXT(ROUND(MOD(A2,1)*100,0),"00")&"/100". For 1,250.45 that gives words for 1,250 followed by and 45/100.
Can Excel convert numbers to words in lakhs and crores?
Yes, but the groups are different. Take the last three digits as hundreds, then split the remaining digits into pairs for thousands, lakhs and crores, and add those words instead of thousand and million.
Why doesn't my number in words add up?
A number in words is text, so SUM and other maths ignore it. Keep the real number in one cell and the words in another cell that refers to it.