Convert Numbers to Words in Google Sheets: Formula

If you use Google Sheets for creating invoices, salary slips, purchase orders, or sales orders, you may want to convert numbers to words. This may be to comply with regulations or to make the numbers easier to read. Whatever the reason, I have written a formula and a custom-named function for it.

Before proceeding, please note that my formula is coded to convert numbers up to 8 digits long, meaning from 1 to 99,999,999.00

There are four ways to convert numbers to words in Google Sheets:

  1. Using a formula.
  2. Using a custom-named function.
  3. Using the BAHTTEXT native function.
  4. Using a supported add-on or Google Apps Script.

In this post, I will provide my custom-coded formula and a named function based on it that you can import into your Sheet and use. The output will be in an international system.

If you want to use an add-on, you can find one in the Google Workspace Marketplace. You can go to the Marketplace from the Extensions menu in your Sheet.

The BAHTTEXT function is already featured in my function guide. This native Google Sheets function converts a number into Thai text. You can translate it into English and use it to some extent, but it has limitations that I already mentioned in that tutorial.

Formula to Convert Numbers to Words in Google Sheets

To convert numbers to words in Google Sheets, you can use the following formula:

=INDEX(TRIM(LET(n,INT(B7),vrA,SEQUENCE(9),vrB,SEQUENCE(10,1,10),vrC,SEQUENCE(8,1,20,10),vrD,VSTACK("One","Two","Three","Four","Five","Six","Seven","Eight","Nine"),vrE,VSTACK("Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"),vrF,VSTACK("Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"),td," Thousand ",hd," Hundred ",mn," Million ",ln,VALUE(LEFT(n,2)),fv,RIGHT(n,5),le,LEN(fv),ltdn,XLOOKUP(SEQUENCE(5),IF(le=1,"",le),VALUE(RIGHT(fv,2)),),rgA,VSTACK(VALUE(MID(fv,SEQUENCE(5),1)),VALUE(MID(LEFT(TEXT(n,"00000000"),3),SEQUENCE(3,1,3,-1),1))),rgB,XLOOKUP(rgA,vrA,vrD,IF(,,)),rgC,XLOOKUP(ltdn,vrB,vrE,IF(,,)),rgD,XLOOKUP(IF(ltdn-rgA>0,ltdn-rgA,),vrC,vrF,IF(,,)),z,INDEX(rgA,1),w,INDEX(rgA,2),ww,INDEX(rgA,3),uu,INDEX(rgA,6),u,INDEX(rgA,7),a,INDEX(rgB,1),aa,INDEX(rgB,2),aaa,INDEX(rgB,3),aaaa,INDEX(rgB,4),aaaaa,INDEX(rgB,5),aaaaaa,INDEX(rgB,6),pq,INDEX(rgB,7),b,INDEX(rgC,2),bb,INDEX(rgC,3),bbb,INDEX(rgC,4),bbbb,INDEX(rgC,5),c,INDEX(rgD,2),cc,INDEX(rgD,3),ccc,INDEX(rgD,4),cccc,INDEX(rgD,5),xl,XLOOKUP(VALUE(LEFT(fv,2)),vrB,vrE,0),xll,XLOOKUP(IF(VALUE(LEFT(fv,2))-INDEX(rgA,2)>0,VALUE(LEFT(fv,2))-INDEX(rgA,2),""),vrC,vrF,IF(,,)),codeAA,IFS(AND(le=5,xl>0,ww=0),xl&td&" "&aaa,AND(le=5,xl=0,ww=0),xll&" "&aa&td&" "&aaa,AND(le=5,xl>0,ww>0),xl&td&" "&aaa&hd,AND(le=5,xl=0,ww>0),xll&" "&aa&td&" "&aaa&hd,1=1," "),testA,XLOOKUP(ln,vrB,vrE,IF(,,)),testB,XLOOKUP(IF(ln-u>0,ln-u,),vrC,vrF,IF(,,)),codeA,IFS(AND(testA>0,uu>0),testA&mn,AND(testB>0,uu>0),testB&" "&pq&mn,AND(testA>0,uu=0),testA&mn,AND(testB>0,uu=0),testB&" "&pq&mn,1=1," "),codeB,IFS(AND(le=5,bbbb>0),bbbb,AND(le=5,bbbb=0),cccc&" "&aaaaa,1=1," "),codeC,IFS(AND(n>999999,z=0,w=0,ww=0,uu=0)," ",AND(n>999999,z=0,w=0,ww>0,uu=0),REPLACE(codeAA,1,10,""),1=1,codeAA),IFS(le=1,a,AND(b>0,le=2),b,AND(b=0,le=2),c&" "&aa,AND(le=3,bb=0),a&hd&cc&" "&aaa,AND(le=3,bb>0),a&hd&bb,AND(le=4,bbb>0,w=0),a&td&aa&bbb,AND(le=4,bbb=0,w=0),a&td&aa&ccc&" "&aaaa,AND(le=4,bbb>0,w>0),a&td&aa&hd&bbb,AND(le=4,bbb=0,w>0),a&td&aa&hd&ccc&" "&aaaa,AND(n>9999,n<100000),codeC&" "&codeB,AND(n>99999,n<1000000),aaaaaa&hd&" "&codeC&" "&codeB,AND(n>999999,n<10000000,uu>0),pq&mn&aaaaaa&hd&" "&codeC&" "&codeB,AND(n>999999,n<10000000,uu=0),pq&mn&" "&codeC&" "&codeB,AND(n>9999999,n<100000000,uu>0),codeA&" "&aaaaaa&hd&" "&codeC&" "&codeB,AND(n>9999999,n<100000000,uu=0),codeA&" "&codeC&" "&codeB))))

The above formula converts the number in cell B7 into words in the international system. When you use the formula, just replace B7 with the cell reference containing the number.

Screenshot of a Google Sheets formula to convert numbers to words.
Figure 1

Note: The cell reference only appears once in the formula, making it very convenient to use.

The number-to-words converter formula has the following features:

  • It is a combination formula and does not require any helper cells.
  • It converts the numbers from 1 to 99,999,999.
  • When the cell containing the number contains decimals, it converts the integer part only. The decimal part is ignored. You can use the ROUND, ROUNDDOWN, or ROUNDUP functions to round the number before converting it to words. For example, you can replace B7 with ROUND(B7).

Named Function to Convert Numbers to Words in Google Sheets

If you prefer a much cleaner way to convert numbers to words in the international system in Google Sheets, you can use my custom-named function, NumberToWords().

Syntax of the NumberToWords custom-named function:

NUMBERTOWORDS(number)

This carries all the features of the above number-to-word converter formula.

Here are some examples of how to use NumberToWords in Google Sheets:

=NUMBERTOWORDS(125055) // Returns "One Hundred Twenty Five Thousand Fifty Five"
=NUMBERTOWORDS(A1) // Converts the number in cell A1 to words
=NUMBERTOWORDS(ROUND(A1)) // Rounds and converts the number in cell A1 to words
Custom Google Sheets named function to convert numbers to words.
Figure 2

To use the NumberToWords function, you need to import it into the sheet you want to use. If you want to use it in multiple sheets, you can import it into each sheet or make a copy of the first sheet.

Follow these three steps to import NumberToWords and convert numbers to words in your Google Sheets:

  1. Make a copy of my sample sheet.
  2. Open the sheet in which you want to use the function.
  3. Go to the Data menu > Named functions and click Import function.

NumberToWords Array Formula

We usually use the ARRAYFORMULA function in Google Sheets to expand a formula result, but it does not work with the NumberToWords custom-named function.

However, you can still convert multiple numbers to words in one go using NumberToWords and the MAP lambda function.

Here is the generic formula:

=MAP(array,LAMBDA(r, NUMBERTOWORDS(r)))

Replace array with the cell range that contains the numbers. For example, to convert the numbers in the range C3:C7 to words, you can use the following formula in cell D3, assuming that D3:D7 is empty:

=MAP(A1:A10,LAMBDA(r, NUMBERTOWORDS(r)))
Array formula in Google Sheets to convert numbers to words for multiple cells at once.
Figure 3

Conclusion

You can use the UPPER, LOWER, and PROPER functions with the above number verbalizer function to format the converted numbers to words in Google Sheets.

You can also prefix or suffix custom text, such as “Rupees” or “Only”.

Here are a few examples:

=UPPER(NUMBERTOWORDS(1502)) // Returns ONE THOUSAND FIVE HUNDRED TWO
=NUMBERTOWORDS(1502)&" Only" // Returns One Thousand Five Hundred Two Only
="Rupees "&NUMBERTOWORDS(1502)&" Only" // Returns Rupees One Thousand Five Hundred Two Only

Related Reading:

  1. How to Create Named Functions in Google Sheets.
  2. Convert Time Duration to Day, Hour, Minute in Google Sheets.
  3. Create Unit Converter in Google Sheets Using the Convert Function.
  4. How to Convert Currency Text to Number in Google Sheets.
  5. How to Convert Currency in Google Sheets Using GoogleFinance Function.
Prashanth KV
Prashanth KV
Your Trusted Google Sheets and Excel Guide Prashanth KV brings a wealth of experience in Google Sheets and Excel, cultivated through years of work with multinational corporations in Mumbai and Dubai. As a recognized Google Product Expert in Docs Editors, Prashanth shares his expertise through insightful blogging since 2012. Explore his blog for practical tips and guidance on maximizing your spreadsheet skills.

Finding Most Frequent Text in Excel with Dynamic Array Formulas

Looking to identify the most frequently occurring text in Excel? You can do this...

Hierarchical Numbering Sequences in Excel

Creating hierarchical numbering sequences in an Excel spreadsheet can significantly improve the way you...

How to Easily Repeat a Sequence of Numbers in Excel

Excel offers multiple ways to accomplish tasks, and the simplicity of each approach depends...

Create a Sequence of Dates at Every Nth Row in Excel (Dynamic Array)

Would you like to create a sequence of dates in every nth row in...

More like this

XMATCH Row by Row: Finding Values Across a Range in Google Sheets

Using the BYROW function with XMATCH in Google Sheets allows us to match values...

Limit Formula Expansion to a Specific Row in Google Sheets

In this tutorial, I’ll explain how to limit the expansion of an array formula...

3-D Referencing Structured Data Tables in Google Sheets

When you have several tables within a single sheet—not across multiple sheets in a...

55 COMMENTS

    • Hi, Vijeta,

      Sorry for the inconvenience. The formula is very complex and it would take me lots of time and also ‘painful’ to re-code it. I’ll definitely make an attempt in future.

      Thanks for your understanding.

  1. Hi Prashanth,

    Thank you so much of this amazing formula. How about if there is a centavo amount and I need to show it as well in words, can you share it with me the formula?

    Cheers,

    Jessie

    • Hi, Fadli,

      What about using the GOOGLETRANSLATE function.

      You can wrap the formula that returns the amount in words with GOOGLETRANSLATE function. Here is one example.

      =googletranslate(if(and(F7="Upper",F9=TRUE),Upper(C14),if(and(F7="Proper",F9=TRUE),proper(C14),if(and(F7="Lower",F9=TRUE),lower(C14)," "))),"en","es")

      Best,

  2. Can I have a copy of the GoogleSheet so that I can use it with my students? I have a couple kiddos who need extra supports to access the same curriculum as their peers. This would be perfect to teach them to use.

    • I have sent the Sheets via email.

      Regarding the converter in INR, I am Sorry to say right now I don’t have that formula.

      I know I can tweak the formulas used and even make it shorter. Because this converter is coded by me several months back. Now I am more accustomed to array formulas.

      Due to time constraint, I am unable to do that. If I make any changes, I will update that in this post in future.

      Thanks

    • Hi Dmitry,

      I’ll send you the number to word converter file via Email soon. It’ll be an editable version which you can use.

      I’ve also noted few other requests and sending them too.

      Thanks.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.