Convert numbers into words automatically

Hi all,

For those who need to convert numbers into words (1 to One) for multiple numbers, there’s a formula you can use on Excel/Google Sheets:

=REGEXREPLACE(IF(OR(LEN(FLOOR(A2,1))>=13,FLOOR(A2,1)<=0),"Out of range",
 PROPER(SUBSTITUTE(CONCATENATE(CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),1,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),
 CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),2,1)+1,"",CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),3,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),
 IF(VALUE(MID(TEXT(INT(A2),
 REPT(0,12)),2,1))>1,CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),3,1)+1,"","-one","-two","-three","-four","-five","-six","-seven","-eight","-nine"),
 IF(VALUE(MID(TEXT(INT(A2),
 REPT(0,12)),2,1))=0,CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),3,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),
 IF(A2>=10^9," billion ",""),
 CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),4,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),
 CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),5,1)+1,"",CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),6,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),
 IF(VALUE(MID(TEXT(INT(A2),
 REPT(0,12)),5,1))>1,CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),6,1)+1,"","-one","-two","-three","-four","-five","-six","-seven","-eight","-nine"),
 IF(VALUE(MID(TEXT(INT(A2),
 REPT(0,12)),5,1))=0,CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),6,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),
 IF(VALUE(MID(TEXT(INT(A2),
 REPT(0,12)),4,3))>0," million ",""),CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),7,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),
 CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),8,1)+1,"",CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),9,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),
 IF(VALUE(MID(TEXT(INT(A2),
 REPT(0,12)),8,1))>1,CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),9,1)+1,"","-one","-two","-three","-four","-five","-six","-seven","-eight","-nine"),
 IF(VALUE(MID(TEXT(INT(A2),
 REPT(0,12)),8,1))=0,CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),9,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),"")),
 IF(VALUE(MID(TEXT(INT(A2),
 REPT(0,12)),7,3))," thousand ",""),CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),10,1)+1,"","one hundred ","two hundred ","three hundred ","four hundred ","five hundred ","six hundred ","seven hundred ","eight hundred ","nine hundred "),
 CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),11,1)+1,"",CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),12,1)+1,"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"),"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"),
 IF(VALUE(MID(TEXT(INT(A2), 
 REPT(0,12)),11,1))>1,CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),12,1)+1,"","-one","-two","-three","-four","-five","-six","-seven","-eight","-nine"),
 IF(VALUE(MID(TEXT(INT(A2),
 REPT(0,12)),11,1))=0,CHOOSE(MID(TEXT(INT(A2),
 REPT(0,12)),12,1)+1,"","one","two","three","four","five","six","seven","eight","nine"),""))),"  "," "))&
 IF(IFERROR(QUERY({A2},"where Col1 Contains '.'"),)<>"",
 " and "&REGEXEXTRACT(TO_TEXT(A2), "\.(.+)")&" cents", )),"  ", " ")

Cheers.

2 Likes