How to Convert Numbers to Words in Excel (SpellNumber)
Updated 2026-09-28 · 12 min read
Excel has no built-in number-to-words function. Use the SpellNumber VBA macro: press Alt+F11, insert a module, paste the SpellNumber code, then type =SpellNumber(A1). For Indian rupees, use a modified macro that outputs lakh/crore (code below).
Method 1: SpellNumber VBA macro (Microsoft's official code)
- Press Alt + F11 to open the Visual Basic Editor.
- Go to Insert → Module and paste Microsoft's SpellNumber function (search "Microsoft SpellNumber VBA" for the current code).
- Save the workbook as .xlsm (macro-enabled).
- In any cell, type =SpellNumber(125000) → "One Hundred Twenty Five Thousand".
Note: the stock SpellNumber uses the International system and US-style wording. For Pakistani/Indian rupee work, adapt it (Method 2) or convert your figures with our free tool and paste the results.
Method 2: Indian rupees version (lakh/crore)
Modify the macro's scale array from thousand/million/billion to thousand/lakh/crore/arab and adjust the digit grouping (first group of 3, then groups of 2). Search for "SpellNumber Indian rupees VBA" — several maintained versions exist on GitHub and Stack Overflow. Always test with 100000 → "One Lakh" and 10000000 → "One Crore" before trusting it on invoices.
Method 3: No macros — use an online converter
If macros are blocked by your office IT policy (common in banks), convert amounts with our tool's Bulk mode: paste a column of numbers, copy the words column, and paste into Excel. No code, no security warnings.
Google Sheets alternative
Google Sheets has no SpellNumber either. Use Extensions → Apps Script with a number-to-words script, or the bulk-convert-and-paste workflow above.