Convert Numbers to Words in Google Sheets (US & Indian Formats)

Published on

This guide shows you how to convert numbers to words in Google Sheets using formulas, named functions, and both Indian and US numbering systems.

If you use Google Sheets to create invoices, salary slips, purchase orders, or sales orders, you may often need to convert numbers into words. This could be required for compliance, clarity, or simply to make your documents more readable. To help with this, I’ve created two formulas (US/International and Indian formats) and two custom-named functions that handle this conversion.

Before proceeding, please note that my formula is designed to convert numbers up to 15 digits, meaning it supports values from 0 to 999,999,999,999,999, along with two decimal places.

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

  1. Using a formula (US/International or Indian format)
  2. Using a custom-named function (US/International or Indian format)
  3. Using the native BAHTTEXT function
  4. Using a supported add-on or Google Apps Script

In this post, I will provide my custom-coded formulas and the named functions based on them, which you can easily import into your Sheet and start using.

If you prefer using an add-on, you can explore options in the Google Workspace Marketplace, accessible from the Extensions menu in Google Sheets.

The BAHTTEXT function is already discussed in my function guide. It converts a number into Thai text, and while you can translate the result into English to some extent, it comes with limitations that I have already explained in that tutorial.

˃ Disclaimer:

The number-to-words formulas and named functions in this guide are provided for general use and convenience. While every effort has been made to ensure accuracy, you must independently verify outputs before using them in financial statements, invoices, legal documents, or other official records. The author is not responsible for errors, omissions, or consequences arising from their use.

Difference Between the US/International System and the Indian System

The US/International and Indian numbering systems format and name large numbers differently, which is why separate formulas are needed in Google Sheets.

In the US/International system, digits are grouped in sets of three (1,234,567 → 1 | 234 | 567) and large numbers follow the sequence thousand, million, billion, trillion, and so on. For example, 1,234,567 is written as One Million Two Hundred Thirty-Four Thousand Five Hundred Sixty-Seven.

In the Indian system, the first group contains three digits, and all subsequent groups contain two digits (1,234,567 → 12 | 34 | 567). Large numbers use thousand, lakh, crore, arab, kharab, and so on. The same number, 1,234,567, becomes Twelve Lakh Thirty-Four Thousand Five Hundred Sixty-Seven.

Because the grouping pattern and naming conventions differ, number-to-words conversion must follow the rules of whichever format you use—US/International for million–billion style numbering, or Indian for lakh–crore style numbering.

This tutorial provides formulas and named functions for both systems so you can choose the format appropriate for your documents or compliance requirements.

Convert Numbers to Words – Indian System Formula

To convert numbers to words in Google Sheets using the Indian numbering system (Thousand, Lakh, Crore, Arab, Kharab, etc.), you can use the following formula:

=LET(
  x, A2, Rupees, INT(x), Paise, ROUND((x-INT(x))*100),
  d, LEN(TO_PURE_NUMBER(Rupees)),
  limit, ARRAY_CONSTRAIN(VSTACK(0, 3, 5, 7, 9, 11, 13),
          IFS(d<=3, 1, d<=5, 2, d<=7, 3, d<=9, 4, d<=11, 5, d<=13, 6, d<=15, 7), 1),

  scale_word, LAMBDA(n, CHOOSEROWS(VSTACK("", "Thousand", "Lakh", "Crore", "Arab", "Kharab", "Neel"), n)),

  word_1_19, LAMBDA(n, CHOOSEROWS(VSTACK(
       "One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven",
       "Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"), n)),

  word_tens, LAMBDA(n, CHOOSEROWS(VSTACK(
       "","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"), n)),

  word_1_99, LAMBDA(n, IF(n<20, word_1_19(n),
       TEXTJOIN("-", TRUE, word_tens(INT(n/10)), IFERROR(word_1_19(MOD(n, 10)))))),

  word_1_999, LAMBDA(n, LET(h, INT(n/100), r, MOD(n, 100),
       TEXTJOIN(" ", TRUE,
         IF(h=0, "", word_1_19(h)&" Hundred"),
         IF(r=0, "", word_1_99(r))))),

  number_words, LAMBDA(n,
     TEXTJOIN(" ", TRUE,
       SORT(MAP(limit, LAMBDA(i,
         LET(part, INT(MOD(n / 10^i, IF(i=0, 1000, 100))),
             word_1_999(part) & " " &
             IF(part=0, , scale_word(XMATCH(i, limit)))
         ))),
       limit, FALSE)
     )
  ),

  IF(
    ISBETWEEN(x, 0, 10^15, TRUE, FALSE),
    TRIM(TEXTJOIN(" ", TRUE,
      IF(Rupees=0, "Zero", number_words(Rupees)),
      IF(Rupees=1, "Rupee", "Rupees"),
      "and",
      IF(Paise=0, "No Paise", IF(Paise=1, "One Paise", word_1_99(Paise)&" Paise"))
    )),
    "Out of Range"
  )
)

Example Result:

Example of number-to-words conversion in Google Sheets using the Indian system with lakh and crore formatting

Note:

This formula uses the Indian numbering system (Lakh–Crore).
Countries using this system include India, Pakistan, Bangladesh, and Nepal (and it is still used informally in Sri Lanka).

If you’re from one of these countries, you may replace
“Rupees” and “Paise” (highlighted in the formula) with your local currency name—
for example:

  • Bangladesh: Taka & Poisha
  • Pakistan: Pakistani Rupee & Paisa
  • Nepal: Nepalese Rupee & Paisa

How the Formula Works (Brief Explanation)

This formula is built using modular blocks that work together to generate accurate Indian number words up to 15 digits.

1. Input Handling

  • x – the number in A2
  • Rupees – whole number part
  • Paise – decimal part (up to two digits)

2. Digit Grouping (Core of the Indian System)

  • d measures how many digits the number has
  • limit dynamically determines the grouping pattern (3, 2, 2, 2… digits) required for:
    • Thousand
    • Lakh
    • Crore
    • Arab
    • Kharab
    • Neel

This is the core engine that enables proper Indian-style grouping.

3. Word Dictionaries

  • word_1_19 – words for 1 to 19
  • word_tens – Twenty, Thirty, Forty, etc.
  • word_1_99 – combines the above to form numbers up to 99
  • word_1_999 – handles Hundreds (e.g., “Three Hundred Forty-Two”)

4. Scale Words

  • scale_word assigns the correct Indian scale based on position:
    • Thousand
    • Lakh
    • Crore
    • Arab
    • Kharab
    • Neel

5. Main Conversion Engine

  • number_words loops through each digit group, converts it using word_1_999, and attaches the correct scale word.
  • Automatically removes unused scales (e.g., skips “Zero Lakh”).

6. Final Assembly

Combines:

  • Rupees in words
  • Correct singular/plural (“Rupee” vs “Rupees”)
  • Paise in words
  • Handles:
    • Zero
    • One
    • No Paise
    • Out of range numbers

Using the Formula

To use it, simply replace A2 with the cell that contains your number.
The cell reference appears only once, making the formula easy to copy across rows.

Convert Numbers to Words – US/International System Formula

To convert numbers to words in Google Sheets using the US/International numbering system (Thousand, Million, Billion, Trillion), you can use the following formula:

=LET(
  x, A2, dollars, INT(x), cents, ROUND((x-INT(x))*100),
  limit, SEQUENCE(MIN(ROUNDUP(LEN(TO_PURE_NUMBER(dollars))/3), 5)),

  scale_word, LAMBDA(n, CHOOSEROWS(VSTACK("", "Thousand", "Million", "Billion", "Trillion"), n)),

  word_1_19, LAMBDA(n, CHOOSEROWS(VSTACK(
      "One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven",
      "Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"), n)),

  word_tens, LAMBDA(n, CHOOSEROWS(VSTACK(
      "","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"), n)),

  word_1_99, LAMBDA(n, IF(n<20, word_1_19(n),
      TEXTJOIN("-", TRUE, word_tens(INT(n/10)), IFERROR(word_1_19(MOD(n, 10)))))),

  word_1_999, LAMBDA(n, LET(h, INT(n/100), r, MOD(n, 100),
      TEXTJOIN(" ", TRUE,
        IF(h=0, "", word_1_19(h) & " Hundred"),
        IF(r=0, "", word_1_99(r))))),

  number_words, LAMBDA(n,
      TEXTJOIN(" ", TRUE,
        SORT(
          MAP(limit, LAMBDA(i,
            LET(part, INT(MOD(n / 1000^(i-1), 1000)),
              word_1_999(part) & " " &
              IF(part=0,, scale_word(i))
            )
          )),
        limit, FALSE)
      )
  ),

  IF(
    ISBETWEEN(x, 0, 10^15, TRUE, FALSE),
    TRIM(TEXTJOIN(" ", TRUE,
      IF(dollars=0, "Zero", number_words(dollars)),
      IF(dollars=1, "Dollar", "Dollars"),
      "and",
      IF(cents=0, "No Cents", IF(cents=1, "One Cent", word_1_99(cents) & " Cents"))
    )),
    "Out of Range"
  )
)

Example Result:

Example of number-to-words conversion in Google Sheets using the US/International system with million and billion formatting

Note:

You can replace “Dollars” and “Cents” with any currency name, such as
Dirhams & Fils, Riyals & Halalas, Euros & Cents, Pounds & Pence, Pesos & Centavos, etc.

The number-to-words logic remains unchanged.

How the Formula Works (Brief Explanation)

This formula uses a structured set of blocks to convert numbers into words up to 15 digits using the US/International (Million–Billion–Trillion) system.

1. Input Handling

  • x – input number
  • dollars – whole number portion
  • cents – decimal part (rounded to two digits)

2. Digit Grouping (Core Engine of the US/International System)

  • The US/International system groups digits in 3-digit segments:
    1 | 234 | 567 | 890 | …
  • limit determines how many such groups the number has (Thousand → Million → Billion → Trillion).
  • Supports up to Trillion because of the 15-digit design.

3. Word Dictionaries

  • word_1_19 – numbers from 1 to 19
  • word_tens – Twenty, Thirty, Forty, etc.
  • word_1_99 – builds numbers up to 99
  • word_1_999 – handles 1–999 (Hundreds + remainder)

4. Scale Words

  • scale_word attaches the correct scale:
    • Thousand
    • Million
    • Billion
    • Trillion

5. Main Conversion Engine

  • number_words loops through each 3-digit block.
  • Converts each block using word_1_999.
  • Attaches the appropriate scale word based on position.
  • Automatically excludes scales for zero blocks (e.g., skips “Zero Million”).

6. Final Assembly

Combines everything into a readable phrase:

  • Dollar amount in words
  • Proper singular/plural (“Dollar” vs “Dollars”)
  • “and” conjunction
  • Cents in words
  • Handles:
    • Zero
    • One
    • Out-of-range numbers

Using the Formula

To use it, simply replace A2 with the cell that contains your number.
The cell reference appears only once, making the formula easy to reuse and drag down.

Named Functions to Convert Numbers to Words in Google Sheets

If you prefer a cleaner, reusable way to convert numbers to words in either the International (US) or Indian numbering systems, you can use the custom Named Functions NUM_TO_WORDS_US and NUM_TO_WORDS_IND.

Syntax of the Number-to-Words Named Functions

NUM_TO_WORDS_IND(number)
NUM_TO_WORDS_US(number)

Both functions include all the features of the full number-to-words formulas shown earlier.

Examples

=NUM_TO_WORDS_IND(25500010.75) 
→ Two Crore Fifty-Five Lakh Ten Rupees and Seventy-Five Paise
=NUM_TO_WORDS_IND(B2) 
→ Two Crore Fifty-Five Lakh Ten Rupees and Seventy-Five Paise 
  (if B2 contains 25,500,010.75)
=NUM_TO_WORDS_US(25500010.75) 
→ Twenty-Five Million Five Hundred Thousand Ten Dollars and Seventy-Five Cents
=NUM_TO_WORDS_US(B2) 
→ Twenty-Five Million Five Hundred Thousand Ten Dollars and Seventy-Five Cents
  (if B2 contains 25,500,010.75)

How to Use These Named Functions

Since Named Functions are saved per spreadsheet, you need to import them into any Google Sheet where you want to use them. If you want them available in multiple sheets, simply import them into each one—or create duplicates of the sheet where they already exist.

Steps to Import the Number-to-Words Named Functions

  1. Make a copy of my sample sheet.
  2. Open the Google Sheet where you want to use the function.
  3. Go to Data → Named functions → Import function, and select the function(s) to import from the copied file.

Frequently Asked Questions (FAQs)

1. Can I use these formulas without creating named functions?

Yes. You can copy the full formulas directly into any cell and replace A2 with your input cell. However, creating named functions like NUM_TO_WORDS_US and NUM_TO_WORDS_IND makes your spreadsheet cleaner and easier to maintain.

2. Do the formulas work with decimal values?

Absolutely. Both formulas convert decimal values into Paise (Indian system) or Cents (International system). For example, 125.50 becomes One Hundred Twenty-Five Rupees and Fifty Paise or One Hundred Twenty-Five Dollars and Fifty Cents.

3. What is the maximum number I can convert?

Both formulas support numbers up to 10¹⁵ (one quadrillion). If the number exceeds this range, the result will display “Out of Range.”

4. Does the function work with formatted numbers (commas)?

Yes. The formulas internally use TO_PURE_NUMBER(), so formatted values like 25,50,010.75 are correctly interpreted.

5. Can I use these functions across multiple sheets or workbooks?

Yes. Either re-import the named functions into each file or make a copy of the first file that already contains them.

6. Will the formulas work in Excel?

No. These formulas are specific to Google Sheets and use functions not available in Microsoft Excel. If you want Excel-compatible solutions, check out these guides:

7. Can I customize words like “Rupees,” “Paise,” “Dollars,” or “Cents”?

Yes. After importing the named function, you can edit it in Data → Named functions and adjust the wording to your preference.

Conclusion

Converting numbers to words—whether in the Indian or International numbering system—becomes effortless with these powerful Google Sheets formulas and named functions. Instead of manually writing out amounts like Fifty Lakh or Twenty Million, you can now automate the process with a clean, reusable function that works for both whole numbers and decimals.

By creating and importing the NUM_TO_WORDS_IND and NUM_TO_WORDS_US named functions, you ensure accuracy, readability, and consistency across all your financial sheets, invoices, and reports. With just a single function call, you get clear, properly formatted number-to-word output every time.

If you frequently deal with monetary values or large numbers, these formulas will save time, reduce errors, and make your spreadsheets significantly more professional.

Resources

Prashanth KV
Prashanth KV
Your Trusted Google Sheets and Excel Expert Prashanth KV is a Diamond Product Expert in Google Sheets, officially recognized by Google for his contributions to the Docs Editors Help Community and featured in the Google Product Experts Directory. Explore his blog to learn advanced formulas, automation tips, and problem-solving techniques to elevate your spreadsheet skills.

Top Discussions

More like this

Pivot Table Formatting, Output & Special Behavior in Google Sheets

Pivot Tables in Google Sheets are powerful—but they can get tricky once you move...

Pivot Table Calculations & Advanced Metrics in Google Sheets

When it comes to built-in tools for data analysis and visualization in Google Sheets,...

Google Sheets Pivot Table Tutorial: Basics, Setup, and Date Grouping

The easiest way to summarize, analyze, and report data in Google Sheets is by...

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.