Converting Numbers to Words in Indian Rupees and Other Currencies in Excel (2025 Edition)
Here’s how to convert numbers into words in Indian Rupees—or any other currency—in Excel.
When working with financial documents such as invoices, quotations, tax forms, cheques, or payment vouchers, it’s often necessary to represent currency values in both numerical and written word format. This adds a layer of professionalism and helps prevent fraud or misinterpretation.
Example
While Microsoft Excel does not have a built-in feature to convert numbers to words, there are multiple effective ways to achieve this—through VBA, LAMBDA functions, or the all-in-one Kutools for Excel add-in.
Convert Numbers to Words in Indian Rupees with VBA (All Microsoft Versions)
- Convert Numbers to Words in Other Currencies (USD, EUR, etc.)
- Save Your Workbook as a Macro-Enabled File
Convert Numbers to Words in Indian Rupees with LAMBDA Function (Microsoft 365 Only)
Convert Numbers to USD, EUR, and 30+ Other Currencies (All Microsoft Versions)
Convert Numbers to Words in Indian Rupees with VBA (All Microsoft Versions)
For users of any Excel version, VBA (Visual Basic for Applications) provides a customizable method to convert numeric amounts into words using the Indian numbering system (e.g., thousands, lakhs, crores).
Step 1. Press Alt + F11 to open the VBA editor (Microsoft Visual Basic for Applications window).

Step 2. Go to Insert > Module.

Step 3. Paste the VBA code into the Module.
Convert numbers into words in Indian Rupees
Function ConvertToRupees(ByVal MyNumber)
'UpdatebyExtendoffice
Dim Units As String, SubUnits As String, TempStr As String
Dim DecimalPlace As Integer, Count As Integer
Dim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Lakh "
Place(4) = " Crore "
MyNumber = Trim(Str(MyNumber))
DecimalPlace = InStr(MyNumber, ".")
If DecimalPlace > 0 Then
SubUnits = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
TempStr = GetHundreds(Right(MyNumber, 3))
If TempStr <> "" Then Units = TempStr & Place(Count) & Units
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
ConvertToRupees = "Rupees " & Application.WorksheetFunction.Trim(Units)
If SubUnits <> "" Then
ConvertToRupees = ConvertToRupees & " and " & SubUnits & " Paise"
End If
ConvertToRupees = ConvertToRupees & " Only"
End Function
Private Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
Private Function GetTens(TensText)
Dim Result As String
If Val(Left(TensText, 1)) = 1 Then
Select Case Val(TensText)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
End Select
Else
Select Case Val(Left(TensText, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
End Select
Result = Result & GetDigit(Right(TensText, 1))
End If
GetTens = Result
End Function
Private Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function

Step 4. Save and return to Excel.
Step 5. Select a cell and use the formula like this:
Press Enter key

💡 Tip: This method supports decimals (Paise) and works offline.
Limitations of Using VBA
- Requires saving the workbook as a macro-enabled file (.xlsm).
- Macros can be blocked by security settings in some environments.
Convert Numbers to Words in Other Currencies (USD, EUR, etc.)
To customize the output for other currencies, such as "Dollars" or "Euros", you can adjust the string values in the VBA function. Below is a simplified and more flexible version of the function.
Flexible VBA Code Template (Custom Currency)
'UpdatebyExtendoffice
Public Function NumberToWordsCustom(ByVal num As Double, Optional ByVal currency2 As String, Optional ByVal subCurrency As String) As String
Dim result As String
Dim dollars As Long
Dim cents As Long
dollars = Int(num)
cents = Round((num - dollars) * 100)
If Len(currency2) = 0 Then currency2 = "Dollars"
If Len(subCurrency) = 0 Then subCurrency = "Cents"
result = currency2 & " " & SpellNumber_English(dollars)
If cents > 0 Then
result = result & " and " & SpellNumber_English(cents) & " " & subCurrency
End If
NumberToWordsCustom = result & " Only"
End Function
Private Function SpellNumber_English(ByVal MyNumber As Long) As String
Dim Units As Variant, Tens As Variant, Teens As Variant
Dim Place() As String
Dim TempStr As String
Dim Count As Integer
Dim t As String
Dim StrNumber As String
Dim n As Integer
Place = Split(" Thousand Million Billion", " ")
Units = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine")
Tens = Array("", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
Teens = Array("Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen")
StrNumber = Trim(Str(MyNumber))
Count = 0
Do While StrNumber <> ""
n = Val(Right(StrNumber, 3))
If n <> 0 Then
t = ConvertHundreds(n, Units, Tens, Teens)
If Count > 0 Then t = t & " " & Place(Count - 1)
TempStr = t & " " & TempStr
End If
If Len(StrNumber) > 3 Then
StrNumber = Left(StrNumber, Len(StrNumber) - 3)
Else
StrNumber = ""
End If
Count = Count + 1
Loop
SpellNumber_English = Trim(TempStr)
End Function
Private Function ConvertHundreds(ByVal n As Integer, Units As Variant, Tens As Variant, Teens As Variant) As String
Dim result As String
If n >= 100 Then
result = Units(Int(n / 100)) & " Hundred "
n = n Mod 100
End If
If n >= 20 Then
result = result & Tens(Int(n / 10)) & " "
n = n Mod 10
ElseIf n >= 10 Then
result = result & Teens(n - 10) & " "
n = 0
End If
If n > 0 Then
result = result & Units(n)
End If
ConvertHundreds = Trim(result)
End Function
Example VBA Formula:

Example VBA Formula of Other Currency:
=NumberToWordsCustom(A2, "Euros", "Cents")
=NumberToWordsCustom(A2, "Pounds", "Pence")
The code is flexible—simply pass in the desired currency and subunit.
Save Your Workbook as a Macro-Enabled File
If you're using VBA, it's critical to save your workbook with macros enabled. Otherwise, your code will be lost when the file is closed.
Step 1. Go to File > Save As

Step 2. Select a location and choose file type: Excel Macro-Enabled Workbook (*.xlsm).

Step 3. Click Save.
✅ Your custom functions like =ConvertToRupees(A2) will now persist and be reusable anytime.
Convert Numbers to Words in Indian Rupees with LAMBDA Function (Microsoft 365 Only)
For Excel 365 users, you can use LAMBDA, a new Excel feature that lets you define custom formulas—no VBA required.
🪄 What is LAMBDA?
LAMBDA is a feature in Excel that lets you create your own custom functions using formulas—just like built-in functions such as SUM or IF, but without needing any code or macros. It’s great for simplifying repetitive logic and making your spreadsheets cleaner and easier to maintain.
Step 1: Go to the Name Manager and click Formulas > Name Manager.

Step 2: Create a new Name.
Click New button.
Enter a Name.
Example: RupeeToWords
Step 3: Paste this LAMBDA formula into Refers to field:
=LAMBDA(n, LET( units, {"","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"}, teens, {"Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"}, tens, {"","","Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety"}, num, INT(n), paise, ROUND((n - INT(n)) * 100, 0), ConvertTwo, LAMBDA(x, IF(x<10, INDEX(units, x+1), IF(x<20, INDEX(teens, x-9), INDEX(tens, INT(x/10)+1) & IF(MOD(x,10)>0, " " & INDEX(units, MOD(x,10)+1), "") ) ) ), ConvertThree, LAMBDA(x, IF(x=0, "", IF(x<100, ConvertTwo(x), INDEX(units, INT(x/100)+1) & " Hundred" & IF(MOD(x,100)>0, " " & ConvertTwo(MOD(x,100)), "") ) ) ), words, IF(num=0, "Zero", TEXTJOIN(" ", TRUE, IF(INT(num/10000000)>0, ConvertTwo(INT(num/10000000)) & " Crore", ""), IF(MOD(INT(num/100000),100)>0, ConvertTwo(INT(MOD(num,10000000)/100000)) & " Lakh", ""), IF(MOD(INT(num/1000),100)>0, ConvertTwo(INT(MOD(num,100000)/1000)) & " Thousand", ""), IF(MOD(INT(num/100),10)>0, INDEX(units, INT(MOD(num,1000)/100)+1) & " Hundred", ""), IF(MOD(num,100)>0, ConvertTwo(MOD(num,100)), "") ) ), result, "Rupees " & words & IF(paise>0, " and " & ConvertTwo(paise) & " Paise", "") & " Only", result ))Click OK to save the new Name.

Step 3. Close the Name Manager and return to Excel.
Step 4. Use the formula in any cell like this:
Press Enter key.

👀 The full LAMBDA function code handles Crores, Lakhs, Thousands, and decimals.
Convert Numbers to USD, EUR, and 30+ Other Currencies (All Microsoft Versions)
For the most efficient and professional solution, use the Kutools for Excel's Numbers to Words. This powerful tool supports:
🌍 Over 30 currencies, including:
- US Dollars (USD)
- Euros (EUR)
- Chinese Yuan (CNY)
- British Pounds (GBP)
- etc.
Step 1. Select the cells you want to convert.

Step 2. Go to Kutools > Content > Numbers to Words

Step 3. Choose your target currency and click OK.

Numbers are converted to the specified currency.

😁 Tip: If you want to directly convert numbers to words, tick the Not converted to Currency option, and the result will be shown as this:

When to Use Each Method
Use VBA if you need a flexible, programmable solution and you're familiar with macros.
- Use LAMBDA if you’re using Excel 365, and only occasionally need to convert Indian Rupee values. It's a lightweight, shareable solution that requires no macros or external tools—perfect for simple or personal tasks.
- Use Kutools for Excel if you want the easiest, fastest, and most versatile solution—no coding required. Kutools is especially useful when:
- You deal with multiple currencies.
- Need to convert values in bulk or large datasets.
- Want a no-macro, professional-ready tool with 30+ currency options and AI-powered performance.
Best Office Productivity Tools
Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time. Click Here to Get The Feature You Need The Most...
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
All Kutools add-ins. One installer
Kutools for Office suite bundles add-ins for Excel, Word, Outlook & PowerPoint plus Office Tab Pro, which is ideal for teams working across Office apps.





- All-in-one suite — Excel, Word, Outlook & PowerPoint add-ins + Office Tab Pro
- One installer, one license — set up in minutes (MSI-ready)
- Works better together — streamlined productivity across Office apps
- 30-day full-featured trial — no registration, no credit card
- Best value — save vs buying individual add-in