Up to 999 trillion, rounded to 2 decimal places. Commas and currency symbols are ignored.

Result

Worksheet formula, no macros

Works in Excel 2007 and later, and in Google Sheets. Nothing to install and the workbook stays a normal .xlsx.

Excel can format a number any way you like, but it has no built-in function to write the number out in words. Cheques, invoices, purchase orders and legal documents all need the amount spelled out, and copying it by hand is where mistakes creep in.

This tool spells it out for you, and hands you the code to do the same thing inside your own workbook. Set the wording once on the left, and take it away as a worksheet formula that needs no macros, a LAMBDA function, or a VBA function. There is also a bulk converter if you just need a column of numbers turned into words right now.

What this converter does

One set of options drives four outputs, and all four produce identical wording for the same amount:

  • A live converter. Type an amount, read it back in words straight away.
  • An Excel formula. One long formula, no macros, works in Excel 2007 onward. The workbook stays an ordinary .xlsx file.
  • A LAMBDA function. Store the logic once under a name and write =NUM2WORDS(A1) in the sheet. Microsoft 365 and Excel 2024.
  • A VBA function. A SpellNumber style function you can rename, for workbooks where macros are already in use.
  • A bulk list converter. Paste a column of numbers, copy the words back, or download both as a CSV.

Everything about the wording is yours to change: the currency and its sub-unit (Dollars and Cents, Rupees and Paise, Dirhams and Fils), the letter case, text before and after such as Total: and Only, the word joining the two halves of the amount, and the message shown when a cell is empty or holds something that is not a number.

International and Indian numbering

Choose International for thousands, millions, billions and trillions. Choose Indian for thousands, lakhs and crores, which is what you want for amounts in rupees on an Indian invoice or cheque. Above 99 crore the Indian setting continues with Arab, Kharab and Neel.

How to use it

Start in the options panel. Enter the cell your amount sits in, pick your numbering system, and if you are writing money, tick Name a currency and sub-unit and fill in the four words. Watch the live result until it reads exactly the way you want it, then pick up whichever method suits your version of Excel.

The Excel formula, no macros

  1. Open the Worksheet formula tab.
  2. Copy the formula.
  3. Paste it into the cell where you want the words to appear.

That is all there is to it. The formula reads whichever cell you named, so if your amount is in D7 rather than A1, change the cell reference in the options first and copy the formula again. Nothing to install, no macro warnings, and the file stays a normal .xlsx.

The LAMBDA function

  1. Open the LAMBDA tab and copy the formula.
  2. In Excel, go to Formulas › Name Manager › New.
  3. Type NUM2WORDS in the Name box.
  4. Paste the copied formula into Refers to, and choose OK.

You can now write =NUM2WORDS(A1) anywhere in the workbook. This needs Microsoft 365 or Excel 2024; Excel 2021 and earlier do not have LAMBDA, so use the worksheet formula instead.

The VBA function

  1. Open the VBA tab and copy the code.
  2. In Excel, press Alt + F11 to open the Visual Basic editor.
  3. Choose Insert › Module and paste the code into the blank window.
  4. Return to the sheet and write =NumToWords(A1), or =AmountToWords(A1) if you named a currency.
  5. Save the file as Excel Macro-Enabled Workbook (.xlsm).

That last step matters. A .xlsx file cannot store macros, so if you save as .xlsx the module is thrown away and the function stops working the next time you open the file.

Converting a whole column

  1. Copy the column of numbers in Excel.
  2. Open the Convert a list tab and paste them into the left box.
  3. Copy the words from the right box and paste them into the next column in your sheet.

Rows line up one for one, so the words land beside the right numbers. Amounts pasted straight out of Excel are fine as they are: currency symbols, thousands separators and negatives written in brackets are all understood. If you would rather keep both columns together, use Download CSV.

Straight from a link

The amount and the tab can both go in the address, which is handy for a bookmark of the setup you use every day, or for sending someone a worked example.

Address What opens
…/number-to-words-converter/?number=2500.75 The converter with 2,500.75 already spelled out
…/number-to-words-converter/#ex-tab-vba The VBA tab
…/number-to-words-converter/?number=12345678#ex-tab-lambda The LAMBDA tab, with 12,345,678 in the box

The four tab names are #ex-tab-formula#ex-tab-lambda#ex-tab-vba and #ex-tab-batch. Choosing a tab on the page updates the address as well, so you can simply copy whatever is in your browser bar and share the tab you are looking at. These links open the tab without scrolling you down the page.

?n= works as a shorter spelling of ?number=, and the amount may be written the way it appears in your sheet: ?number=$1,234.56 is understood, since currency symbols and thousands separators are ignored. Anything that is not a number simply shows the invalid-number message.

One thing a link cannot carry is the wording: the currency, numbering system, letter case and the rest are set in the options panel, not in the address.

Which method should you use?

Excel formula LAMBDA VBA
Works in Excel 2007 and later Microsoft 365, Excel 2024 Excel with macros enabled
Save file as .xlsx .xlsx .xlsm
Survives emailing the file Yes Yes Only if the recipient allows macros
Setup needed None, just paste One entry in Name Manager Paste a module, save as .xlsm
What the cell looks like A very long formula =NUM2WORDS(A1) =NumToWords(A1)

In short: if you are sending the workbook to anyone else, use the worksheet formula, because it always arrives intact. On Microsoft 365, prefer LAMBDA for anything you maintain yourself, since the logic lives in one name instead of being copied into every cell. Choose VBA when the workbook already uses macros, or when you want the function available across a lot of sheets under a name of your own.

Examples

The same amount, worded for different jobs:

Amount Settings In words
1234.56 No currency One Thousand Two Hundred Thirty Four Point Five Six
1234.56 Dollars and Cents One Thousand Two Hundred Thirty Four Dollars and Fifty Six Cents
1234.56 Indian, Rupees and Paise, suffix Only One Thousand Two Hundred Thirty Four Rupees and Fifty Six Paise Only
1234.56 Dollars and Cents, UPPER CASE, suffix ONLY ONE THOUSAND TWO HUNDRED THIRTY FOUR DOLLARS AND FIFTY SIX CENTS ONLY
2500000 Indian, Rupees, suffix Only Twenty Five Lakh Rupees Only
12345678 Indian, Rupees, suffix Only One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight Rupees Only
1000000 International, no currency One Million
1500000 International, comma between groups One Million, Five Hundred Thousand
0.75 Dollars and Cents Seventy Five Cents
-500 No currency Minus Five Hundred

Good to know

Amounts are rounded to two decimals

An amount is rounded to two decimal places before it is put into words, in every one of the four methods. So 1.999 reads as two whole units rather than one unit and one hundred sub-units, and 1.567 gives fifty seven sub-units, not fifty six. That is what an invoice or a cheque needs, and it means the preview here and the formula in your sheet always agree.

The largest amount is just under 999 trillion

Excel stores numbers to fifteen significant digits, and beyond that it cannot hold the exact value, let alone spell it. Anything larger returns the out-of-range message instead of a wrong answer.

If Excel rejects the formula, check the list separator

Excel expects the parts of a formula separated the way your own installation writes them. Much of continental Europe and Latin America uses a semicolon rather than a comma. Change Formula list separator under Names in the generated code, copy the formula again, and it will paste cleanly.

Capitalise Each Word leaves your own words alone

Excel’s own PROPER function re-capitalises everything it touches, which turns USD into Usd. This tool never does that: the spelled-out number is capitalised, and any currency name, prefix or suffix you typed is used exactly as you wrote it. Pick UPPER CASE or lower case if you do want your own text changed as well.

Questions people ask

How do I convert numbers to words in Excel without VBA?

Use the Worksheet formula tab above. It generates one long formula built from
IF, LOOKUP and ROUND, so it runs in any Excel from 2007 onward and in Google Sheets, and the
file stays a normal .xlsx. On Microsoft 365 or Excel 2024 the LAMBDA tab is a better option:
you store the logic once under a name such as NUM2WORDS and then write
=NUM2WORDS(A1) in the sheet. Excel 2021 and earlier do not have LAMBDA.

What is the largest number this handles?

Just under 999 trillion, which is the point where Excel runs out of its 15 significant digits
of precision. Anything larger returns the out-of-range message. Amounts are rounded to two
decimal places, so 1.999 becomes two units rather than one unit and one hundred sub-units.

Can it write amounts in lakhs and crores?

Yes. Set Numbering system to Indian and 12,345,678 is read as
“One Crore Twenty Three Lakh Forty Five Thousand Six Hundred Seventy Eight”.
Above 99 crore it continues with the Indian scale names Arab (109),
Kharab (1011) and Neel (1013).

Why does my Excel reject the formula?

Almost always the list separator. Excel expects arguments separated the way your own
installation writes them, and much of continental Europe and Latin America uses a semicolon
rather than a comma. Switch Formula list separator under
“Names in the generated code” and copy the formula again.

Why does the VBA version stop working after I reopen the file?

The workbook was saved as .xlsx, which cannot store macros, so Excel discarded the module.
Save as Excel Macro-Enabled Workbook (.xlsm). If you would rather not deal with
macro warnings at all, use the worksheet formula or LAMBDA instead.

Does the same amount give the same words in all four?

Yes, deliberately. The preview, the worksheet formula, the LAMBDA and the VBA all round the
amount to two decimals first and then split it into units and sub-units, so an invoice total
reads identically no matter which one you use.

2 Comments

  1. HAL kENNY August 11, 2026 at 12:26 pm - Reply

    How can I configure the tool to convert numbers into dollars and cents?

    • PNRao August 15, 2026 at 3:06 pm - Reply

      “Hello! We are happy to help you with this. If you look at the ‘Options’ menu on the left side of the tool, click on ‘Currency’ and simply check the box that says ‘Name a currency and sub-unit.‘ It is already set up for Dollars and Cents by default, so once you check that box, your decimals will format perfectly! – PNRao

Leave A Comment