Skip to main content

Converting Numbers to Words in Indian Rupees and Other Currencies in Excel (2025 Edition)

Author: Xiaoyang Last Modified: 2025-06-13

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

12,350.50 → Rupees Twelve Thousand Three Hundred Fifty and Fifty Paisas Only

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 Indian Rupees with LAMBDA Function (Microsoft 365 Only)

Convert Numbers to USD, EUR, and 30+ Other Currencies (All Microsoft Versions)

When to Use Each Method


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).

vba-editor

Step 2. Go to Insert > Module.

select-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
paste-code

Step 4. Save and return to Excel.

Step 5. Select a cell and use the formula like this:

=ConvertToRupees(A2)

Press Enter key

use-formula

💡 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:

=NumberToWordsCustom(A2, "Dollars", "Cents")
vba-formula-to-other-currency

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

use-save-as

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

use-save-as-macro-enabled

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.

select-name-manager

Step 2: Create a new Name.

  • Click New button.

    create-new-name
  • Enter a Name.

    Example: RupeeToWords

    create-name
  • 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 ))
  • paste-lambda-function
  • 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:

=RupeeToWords(A2)

Press Enter key.

use-lambda-formula

👀 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.
Download

Step 1. Select the cells you want to convert.

select-cells

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

select-numbers-to-words

Step 3. Choose your target currency and click OK.

select-currency-in-dialog

Numbers are converted to the specified currency.

kutools-convert-result

😁 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:

convert-to-words

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

đŸ€– Kutools AI Aide: Revolutionize data analysis based on: Intelligent Execution   |  Generate Code  |  Create Custom Formulas  |  Analyze Data and Generate Charts  |  Invoke Kutools Functions

Popular Features: Find, Highlight or Identify Duplicates   |  Delete Blank Rows   |  Combine Columns or Cells without Losing Data   |   Round without Formula ...
Super Lookup: Multiple Criteria VLookup    Multiple Value VLookup  |   VLookup Across Multiple Sheets   |   Fuzzy Lookup ....
Advanced Drop-down List: Quickly Create Drop Down List   |  Dependent Drop Down List   |  Multi-select Drop Down List ....
Column Manager: Add a Specific Number of Columns  |  Move Columns  |  Toggle Visibility Status of Hidden Columns  |  Compare Ranges & Columns ...
Featured Features: Grid Focus   |  Design View   |   Big Formula Bar    Workbook & Sheet Manager   |  Resource Library (Auto Text)   |  Date Picker   |  Combine Worksheets   |  Encrypt/Decrypt Cells    Send Emails by List   |  Super Filter   |   Special Filter (filter bold/italic/strikethrough...) ...
Top 15 Toolsets12 Text Tools (Add Text, Remove Characters, ...)   |   50+ Chart Types (Gantt Chart, ...)   |   40+ Practical Formulas (Calculate age based on birthday, ...)   |   19 Insertion Tools (Insert QR Code, Insert Picture from Path, ...)   |   12 Conversion Tools (Numbers to Words, Currency Conversion, ...)   |   7 Merge & Split Tools (Advanced Combine Rows, Split Cells, ...)   |   ... and more
Use Kutools in your preferred language – supports English, Spanish, German, French, Chinese, and 40+ others!

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!