Have you ever thought of an Excel formula that will convert Numbers to Words? i.e. A formula that can convert the number 456,571 into Four Hundred and Fifty Six Thousand Five Hundred and Seventy One.
In this blog post, I am sharing two Excel formulas that can convert Numbers in Words.
Table of Contents
Pete M’s Formula
=CHOOSE(LEFT(TEXT(A1,"000000000"))+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")&IF(--LEFT(TEXT(A1,"000000000"))=0,,IF(AND(--MID(TEXT(A1,"000000000"),2,1)=0,--MID(TEXT(A1,"000000000"),3,1)=0)," Hundred"," Hundred and "))&CHOOSE(MID(TEXT(A1,"000000000"),2,1)+1,,,"Twenty ","Thirty ","Forty ","Fifty ","Sixty ","Seventy ","Eighty ","Ninety ")&IF(--MID(TEXT(A1,"000000000"),2,1)<>1,CHOOSE(MID(TEXT(A1,"000000000"),3,1)+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine"),CHOOSE(MID(TEXT(A1,"000000000"),3,1)+1,"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"))&IF((--LEFT(TEXT(A1,"000000000"))+MID(TEXT(A1,"000000000"),2,1)+MID(TEXT(A1,"000000000"),3,1))=0,,IF(AND((--MID(TEXT(A1,"000000000"),4,1)+MID(TEXT(A1,"000000000"),5,1)+MID(TEXT(A1,"000000000"),6,1)+MID(TEXT(A1,"000000000"),7,1))=0,(--MID(TEXT(A1,"000000000"),8,1)+RIGHT(TEXT(A1,"000000000")))>0)," Million and "," Million "))&CHOOSE(MID(TEXT(A1,"000000000"),4,1)+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")&IF(--MID(TEXT(A1,"000000000"),4,1)=0,,IF(AND(--MID(TEXT(A1,"000000000"),5,1)=0,--MID(TEXT(A1,"000000000"),6,1)=0)," Hundred "," Hundred and "))&CHOOSE(MID(TEXT(A1,"000000000"),5,1)+1,,,"Twenty ","Thirty ","Forty ","Fifty ","Sixty ","Seventy ","Eighty ","Ninety ")&IF(--MID(TEXT(A1,"000000000"),5,1)<>1,CHOOSE(MID(TEXT(A1,"000000000"),6,1)+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine"),CHOOSE(MID(TEXT(A1,"000000000"),6,1)+1,"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"))&IF((--MID(TEXT(A1,"000000000"),4,1)+MID(TEXT(A1,"000000000"),5,1)+MID(TEXT(A1,"000000000"),6,1))=0,,IF(OR((--MID(TEXT(A1,"000000000"),7,1)+MID(TEXT(A1,"000000000"),8,1)+RIGHT(TEXT(A1,"000000000")))=0,--MID(TEXT(A1,"000000000"),7,1)<>0)," Thousand "," Thousand and "))&CHOOSE(MID(TEXT(A1,"000000000"),7,1)+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")&IF(--MID(TEXT(A1,"000000000"),7,1)=0,,IF(AND(--MID(TEXT(A1,"000000000"),8,1)=0,--RIGHT(TEXT(A1,"000000000"))=0)," Hundred "," Hundred and "))&CHOOSE(MID(TEXT(A1,"000000000"),8,1)+1,,,"Twenty ","Thirty ","Forty ","Fifty ","Sixty ","Seventy ","Eighty ","Ninety ")&IF(--MID(TEXT(A1,"000000000"),8,1)<>1,CHOOSE(RIGHT(TEXT(A1,"000000000"))+1,,"One","Two","Three","Four","Five","Six","Seven","Eight","Nine"),CHOOSE(RIGHT(TEXT(A1,"000000000"))+1,"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"))
This awesome formula was developed by Pete M, a commercial manager/consultant, and was shared with the public by the Excel MVP Leila Gharani in her blog post.
Note: The formula assumes that you have the number in the cell A1. The formula will ignore numbers after decimal.
Chandoo’s Formula
Here is a similar formula created by the Excel MVP Chandoo that will convert Numbers into English Words. This formula uses the LET function which is currently available to Office 365 subscribers.
=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),"")))))
Chandoo, in his blog post has explained this formula in detail and has also done a video on the same.
Note: This formula works up to numbers 999,999 only and will ignore numbers after decimal.
Download the workbook
Excel workbook with Formulas to convert Numbers into Words
UDF to convert Numbers into Words
If you are comfortable using VBA, the following is a blog post that explains a User Defined Function in Excel that will convert Numbers into Words.
User Defined Function to convert Numbers in Words