 # Number to Words – Excel Formula

Share

Ever wanted to turn a number to words like 123,456 to One hundred twenty-three thousand four hundred fifty-six? You can use this elegant Excel formula to get convert number to words. ## Excel Number to Words Formula

Below I have provided number to words Excel formula. It assumes you have input number in cell A1.

Note: This function can convert numbers up to 999,999 into words.

`The function:=LET(th, INT(A1/1000),th.h, MOD(th/100, 10),th.t, MOD(th, 100),th.tens1, INT(th.t/10),th.tens2, MOD(th.t,10),h,MOD(A1/100,10),t, MOD(A1,100),tens1, INT(t/10),tens2, MOD(t,10),tys, {"twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninety"},upto19, {"one","two","three","four","five","six","seven","eight",`
`"nine","ten","eleven","twelve","thirteen","fourteen","fifteen",`
`"sixteen","seventeen","eighteen","nineteen"},CONCAT(IF(th<1, "",IF(th.h>=1,INDEX(upto19,th.h)&" hundred ","") &IF(th.t<1,"",IF(th.tens1<2,INDEX(upto19, th.t), INDEX(tys,th.tens1-1) &IF(th.tens2>=1,"-"&INDEX(upto19,th.tens2),"")))&" thousand "),IF(h>=1,INDEX(upto19,h)&" hundred ",""),IF(t<1,"",IF(tens1<2,INDEX(upto19, t), INDEX(tys,tens1-1)&IF(tens2>=1,"-"&INDEX(upto19,tens2),"")))))`

## How this formula works?

### Formula & UDF to get Words from Number

In order to understand the number to words formula, you must first understand the newly introduced LET() function.

### LET Excel Function:

LET function let’s us define variables to use with in the context of a formula. You can use LET function to shrink long formulas. Here is a quick example to explain the LET function.

Original formula:

`=IF(SUM(A1:A10)>100, “Too high”, `
`IF(SUM(A1:A10)>20, “Medium”, `
`IF(SUM(A1:A10)>0, “Positive”, `
`“Could be zero or negative”)))`

Same formula with LET():

`=LET(s, SUM(A1:A10), `
`IF(s>100, “Too high”, `
`IF(s>20, “Medium”, `
`IF(s>0, “Positive”, `
`"Could be zero or negative”))))`

We are using the SUM(A1:A10) several times in the original formula. In the LET() formula version, we start by defining a variable s that is equal to SUM(A1:A10) and then we use s in rest of the formula. This simplifies the formula and supposedly makes it faster too (as Excel would calculate SUM(A1:A10) once.

LET function is introduced newly and available only in Excel 365. Click here to read the documentation on LET function.

### Understanding Number to Words Excel formula

The process for turning number to words is not complicated. If you know how to convert words for numbers up to 999, then same logic is applied to thousands, millions and billions too.

So let’s understand the process for numbers up to 999.

1. Define two arrays upto19 and tys to hold {one,two…,nineteen} and {twenty, thirty…,ninety} respectively.
2. From the input number (say in A1), calculate these 4 numbers and store them in variables.
1. h = MOD(A1/100,10)
2. t =  MOD(A1,100)
3. tens1 = INT(t/10)
4. tens2 = MOD(t,10)
3. One way to look at these four variables is,
1. h has hundreds digit
2. t tells the last two digits
3. tens1 tells the tens digit
4. tens2 tells the ones digit
4. So for an input number like 987, the 4 values would be h=9,  t=87, tens1=8 and tens2=7
5. Now, construct the words version of number by simply concatenating below:
1. INDEX(upto19, h)
2. ” hundred “
3. if tens1<2 then INDEX(upto19, t)
4. else INDEX(tys, tens1-1)&”-“&INDEX(upto19, tens2)

The actual formula needs a few more if conditions to stop the flow when you hit a round number (like 500 should five hundred with no other words after).

The process for numbers up to 999,999:

We just need to follow the same idea as above, but twice. Once for thousands and once for balance.

### Known limitations of this formula:

• This formula works up to numbers 999,999 only.  You can scale it up to work with numbers up to a billion easily, but the formula gets longer.
• It ignores any portion after decimal point. So 1003.20 becomes one thousand three.
• It doesn’t show “zero” for 0 input value. The output would be blank instead.

## Excel Number to Words Formula - Video Explanation

Just in case your head hurts after all that explanation above, watch this video to understand how the formula works (plus a quick demo of LET function).

Play Video

## Excel Number to Words - VBA User Defined Formula

If you are not able to use the formula version then consider using below VBA UDF to convert number to words. This works up to a billion.

``````
Public Function number2words(thisNum As Double) As String
Dim bn As Integer, mn As Integer, th As Integer, h As Integer, retval As String

On Error GoTo msg

bn = Int(thisNum / 1000000000)
mn = Int(thisNum / 1000000) Mod 1000
th = Int(thisNum / 1000) Mod 1000
h = thisNum Mod 1000

If bn >= 1 Then
retval = num2words999(bn) & " billion "
End If
If mn >= 1 Then
retval = retval & num2words999(mn) & " million "
End If
If th >= 1 Then
retval = retval & num2words999(th) & " thousand "
End If
retval = retval & num2words999(h)

number2words = retval
Exit Function

msg:
number2words = "error"

End Function

Private Function num2words999(thisNum As Integer) As String
'convert any number up to 999 to words

Dim tys As Variant, upto19 As Variant

tys = Array("twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety")
upto19 = Array("one", "two", "three", "four", "five", "six", "seven", "eight",
"nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen",
"sixteen", "seventeen", "eighteen", "nineteen")

Dim h As Integer, t As Integer, tens1 As Integer, tens2 As Integer, retval As String

h = Int(thisNum / 100) Mod 10
t = thisNum Mod 100
tens1 = Int(t / 10)
tens2 = t Mod 10

If h >= 1 Then
retval = upto19(h - 1) & " hundred "
End If
If t >= 1 Then
If tens1 < 2 Then
retval = retval & upto19(t - 1)
Else
retval = retval & tys(tens1 - 2)
If tens2 >= 1 Then
retval = retval & "-" & upto19(tens2 - 1)
End If
End If
End If
num2words999 = retval
End Function
``````

## How to use the Number2Words UDF?

You do not need prior VBA knowledge to use this function. It works like any other Excel function once you install it.

### To install Number2Words function:

• You must have Personal Macros enabled. If not, click here to read on how to do that.
• Go to your Personal Macros workbook. Add a module or open an existing module.
• Paste the above code there.

### How to use the Number2Words function:

To use this function on value in A1, simply write =Number2Words(A1)

### Known limitations:

• This function ignores any portion after decimal point
• It doesn’t say “Zero” if input is 0 or blank. It would simply return blank.
• The results are not capitalized. Use Excel functions like PROPER() to do that.
• This function works up to 2 billion.
• If you email the result workbook to a colleague or client, then they cannot refresh the formula (unless they too have installed Number2Words UDF)

### Formula & UDF to get Words from Number

I hope you are finding the number to words formulas useful. Let me know if you are facing any issues or have suggestions for changing the outputs.

### Indian version coming soon…

I am planning to add an Indian version of this (where instead of nine hundred eighty-seven thousand four hundred fifty-one the output would be nine lakhs eighty-seven thousand four hundred fity-one for example).  I will update this page with such a formula (and UDF) once it is ready.

### Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

### Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Excel School made me great at work.
5/5

– Brenda

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

## Related Tips

### 5 Responses to “Number to Words – Excel Formula”

1. Nick Partridge says:

As well as the Indian version, perhaps you could look into an English version as against the American version.
Things diverge after one hundred with one hundred one OR one hundred AND one.
I'm sure that it is always AND after n00 or n00,000 where there any of those zeros have a value. So five hundred thousand and sixteen. There could be two and's seven hundred and eighty-six thousand four hundred and twenty-six.

2. sandeep kothari says:

Chandoo, you are a genius.

3. Robert H. Gascon says:

Hi Chandoo,
Please take a look at my NumToWords and NumToDollars formulas that I shared here:
https://techcommunity.microsoft.com/t5/excel/excel-numtowords-formula/m-p/727433

• Chandoo says:

That is a genius technique Robert. Thanks for posting it here.

4. David says:

100000000 One Hundred FALSE Million
Is there any reason for this error?

### Get FREE Excel & Power-BI Newsletter

One email per week with Excel and Power BI goodness. Join 100,000+ others and get it free.