Excel Number to Words Formula - KING OF EXCEL

Tuesday, August 11, 2020

Excel Number to Words Formula

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.
convert number to words with this excel formula

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

Click here to download the sample file for this page. You can see number to words formula in column C. Play with the values or examine the formula to learn more.
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.

Learn more about LET function

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.
#evba #etipfree #eama #kingexcel
📤How to Download ebooks: https://www.evba.info/2020/02/instructions-for-downloading-documents.html?m=1

Popular Posts