- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to Convert Numbers to Words in Indian Rupees in Excel?
When we need to convert numbers to words in Indian rupees in Excel, it can be a time‑consuming process if we do it manually as we need to type the large numbers. We can complete this time-consuming process much more quickly by using the VBA application. Even though the VBA code will be lengthy, we can use this process if there are many values to convert. Read this tutorial to learn how to convert numbers to words in Indian rupees in Excel.
Converting Numbers to Words in Indian Rupees in Excel
Here we will create a new VBA module, then use the formula to get any one of the results, and use the auto-fill handle to get all the results. Let us see a simple process to know how we can convert numbers to words in Indian rupees in Excel.
Step 1
Consider an Excel sheet with a list of numbers, similar to the image below.

Now right-click on the sheet name and select view code to open the VBA application, and click on insert and select module.
Right click > view code > insert > module
Step 2
Then, as shown in the image below, type the following programme into the text box.
Program
Public Function RupeeFormat(SNum As String) 'Update By Nirmal Dim xDPInt As Integer Dim xArrPlace As Variant Dim xRStr_Paisas As String Dim xNumStr As String Dim xF As Integer Dim xTemp As String Dim xStrTemp As String Dim xRStr As String Dim xLp As Integer xArrPlace = Array("", "", " Thousand ", " Lacs ", " Crores ", " Trillion ", "", "", "", "") On Error Resume Next If SNum = "" Then RupeeFormat = "" Exit Function End If xNumStr = Trim(Str(SNum)) If xNumStr = "" Then RupeeFormat = "" Exit Function End If xRStr = "" xLp = 0 If (xNumStr > 999999999.99) Then RupeeFormat = "Digit excced Maximum limit" Exit Function End If xDPInt = InStr(xNumStr, ".") If xDPInt > 0 Then If (Len(xNumStr) - xDPInt) = 1 Then xRStr_Paisas = RupeeFormat_GetT(Left(Mid(xNumStr, xDPInt + 1) & "0", 2)) ElseIf (Len(xNumStr) - xDPInt) > 1 Then xRStr_Paisas = RupeeFormat_GetT(Left(Mid(xNumStr, xDPInt + 1), 2)) End If xNumStr = Trim(Left(xNumStr, xDPInt - 1)) End If xF = 1 Do While xNumStr <> "" If (xF >= 2) Then xTemp = Right(xNumStr, 2) Else If (Len(xNumStr) = 2) Then xTemp = Right(xNumStr, 2) ElseIf (Len(xNumStr) = 1) Then xTemp = Right(xNumStr, 1) Else xTemp = Right(xNumStr, 3) End If End If xStrTemp = "" If Val(xTemp) > 99 Then xStrTemp = RupeeFormat_GetH(Right(xTemp, 3), xLp) If Right(Trim(xStrTemp), 3) <> "Lac" Then xLp = xLp + 1 End If ElseIf Val(xTemp) <= 99 And Val(xTemp) > 9 Then xStrTemp = RupeeFormat_GetT(Right(xTemp, 2)) ElseIf Val(xTemp) < 10 Then xStrTemp = RupeeFormat_GetD(Right(xTemp, 2)) End If If xStrTemp <> "" Then xRStr = xStrTemp & xArrPlace(xF) & xRStr End If If xF = 2 Then If Len(xNumStr) = 1 Then xNumStr = "" Else xNumStr = Left(xNumStr, Len(xNumStr) - 2) End If ElseIf xF = 3 Then If Len(xNumStr) >= 3 Then xNumStr = Left(xNumStr, Len(xNumStr) - 2) Else xNumStr = "" End If ElseIf xF = 4 Then xNumStr = "" Else If Len(xNumStr) <= 2 Then xNumStr = "" Else xNumStr = Left(xNumStr, Len(xNumStr) - 3) End If End If xF = xF + 1 Loop If xRStr = "" Then xRStr = "No Rupees" Else xRStr = " Rupees " & xRStr End If If xRStr_Paisas <> "" Then xRStr_Paisas = " and " & xRStr_Paisas & " Paisas" End If RupeeFormat = xRStr & xRStr_Paisas & " Only" End Function Function RupeeFormat_GetH(xStrH As String, xLp As Integer) Dim xRStr As String If Val(xStrH) < 1 Then RupeeFormat_GetH = "" Exit Function Else xStrH = Right("000" & xStrH, 3) If Mid(xStrH, 1, 1) <> "0" Then If (xLp > 0) Then xRStr = RupeeFormat_GetD(Mid(xStrH, 1, 1)) & " Lac " Else xRStr = RupeeFormat_GetD(Mid(xStrH, 1, 1)) & " Hundred " End If End If If Mid(xStrH, 2, 1) <> "0" Then xRStr = xRStr & RupeeFormat_GetT(Mid(xStrH, 2)) Else xRStr = xRStr & RupeeFormat_GetD(Mid(xStrH, 3)) End If End If RupeeFormat_GetH = xRStr End Function Function RupeeFormat_GetT(xTStr As String) Dim xTArr1 As Variant Dim xTArr2 As Variant Dim xRStr As String xTArr1 = Array("Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen") xTArr2 = Array("", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety") Result = "" If Val(Left(xTStr, 1)) = 1 Then xRStr = xTArr1(Val(Mid(xTStr, 2, 1))) Else If Val(Left(xTStr, 1)) > 0 Then xRStr = xTArr2(Val(Left(xTStr, 1)) - 1) End If xRStr = xRStr & RupeeFormat_GetD(Right(xTStr, 1)) End If RupeeFormat_GetT = xRStr End Function Function RupeeFormat_GetD(xDStr As String) Dim xArr_1() As Variant xArr_1 = Array(" One", " Two", " Three", " Four", " Five", " Six", " Seven", " Eight", " Nine", "") If Val(xDStr) > 0 Then RupeeFormat_GetD = xArr_1(Val(xDStr) - 1) Else RupeeFormat_GetD = "" End If End Function

Step 3
Then, using the ALT + Q command, save the sheet as a macro-enabled workbook and exit the vba application.
Then, in the Excel sheet, click on an empty cell, type =RupeeFormat(A2), and press enter to get our first result.
Save > ALT + Q > Empty cell > Formula > Enter

Step 4
To get all the results, drag down from the first result using the auto-fill handle, and our final result will be similar to the below image.

Conclusion
In this tutorial, we used a simple example to demonstrate how you can convert numbers to words in Excel.