Converting Amounts in Words in Excel is not an easy task, Excel does not have the inbuilt function to convert any number into words, that is why we have to add external VBA codes to our file to convert any number into words.
In this article, i have given 8 Methods to convert your values into words easily.
Each Function has a download section you can download the code file at the end of each method.
You can jump directly to any method as the Table of contents is given below, click any method & it will jump you to that point.
1 Convert Amount to Text in Excel
In this method, we are using a .xlam file, which we have to upload in our Excel, and after that, we will use =SpellNumber formula to convert any amount to Words.
Once we upload this file in our Excel, then the formula will work in the whole Excel, you don’t need to upload it again and again.
This code is specially made for Indian Rupees, so if you are from India then this code will be very helpful for you.
Steps to Upload .xlam file into your Excel-
Step 1- Go to File Menu then open Excel Options Menu
Step 2- Now Click on Add-Ins then Click on GO button
Step 3- Click on the Browse button then Select the file which you have downloaded here then click on OK button
Step 4- Now your Excel is ready to convert the amount into words. use the below formula to convert values to words.
=SpellNumber(A14)
Final Output
Tutorial Video
2 Convert Number Amount to Word Text in Excel
Convert Number or Amount to English Words Formula to be useed “=NumberToText(A1)“
Output-Screenshot
Tutorial Video
Download Excel Module Add-ins File Below
Note: The add-ins upload process is given in Method No.1 above
3 Convert Amount in Words in Indian Rupees in Excel with VBA Code
Formula to be used: “=RupeeFormat(A1)”
Output-Screenshot
VBA CODE:
Public Function RupeeFormat(SNum As String)
'Updateby TechGuruPlus
Dim xDPInt As Integer
Dim xArrPlace As Variant
Dim xRStr_Paise 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_Paise = RupeeFormat_GetT(Left(Mid(xNumStr, xDPInt + 1) & "0", 2))
ElseIf (Len(xNumStr) - xDPInt) > 1 Then
xRStr_Paise = 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_Paise <> "" Then
xRStr_Paise = " and " & xRStr_Paise & " Paise"
End If
RupeeFormat = xRStr & xRStr_Paise & " 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
4 Convert Amount to Hindi Words in Excel
Formula to be used: “=NumberToHindi(A1)”
Output-Screenshot
Tutorial Video
Download Excel Module Add-ins File Below
5 Convert Number to Word with Online Tool
Check Online Tool:
Convert Number to Hindi & English Online
6 Convert Number to Words in Dollar or Any Other Currency in Excel
This is the same method as Method No. 1 given above, follow the step there & upload the .xlam file, and use the same formula to convert the amount in to dollar text.
Formula to be used: “=SpellNumber(A14)”
Final Output
Tutorial Video
7 Convert Number to Words in Dollars in Excel
This format will show the amount in words but the result will be shown in Million, Billions. To convert amount in words with dollar and cents you have to copy the below VBA code and paste into your Module section as the steps are given below-
Formula to be used: “=AmountToWord(A14)”
Use VBA Code
Option Explicit
'Main Function
Function AmountToWord(ByVal MyNumber)
Dim Dollars, Cents, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "
MyNumber = Trim(Str(MyNumber))
DecimalPlace = InStr(MyNumber, ".")
If DecimalPlace > 0 Then
Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
"00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Select Case Dollars
Case ""
Dollars = "No Dollars"
Case "One"
Dollars = "One Dollar"
Case Else
Dollars = Dollars & " Dollars"
End Select
Select Case Cents
Case ""
Cents = " and No Cents"
Case "One"
Cents = " and One Cent"
Case Else
Cents = " and " & Cents & " Cents"
End Select
AmountToWord = Dollars & Cents
End Function
Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
' Convert the hundreds place.
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
' Convert the tens and ones place.
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
Function GetTens(TensText)
Dim Result As String
Result = "" ' Null out the temporary function value.
If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19…
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"
Case Else
End Select
Else ' If value between 20-99…
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 "
Case Else
End Select
Result = Result & GetDigit _
(Right(TensText, 1)) ' Retrieve ones place.
End If
GetTens = Result
End Function
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
Steps to Enter the VBA code in your file-
Step 1- Press Alt+F11 to open the Visual Basic editor window.
Step 2- Now go to Insert Menu, then Go to Module Option.
Step 3- Copy the code in the frame above and paste it to this window.
Step 4- Now go to the Excel sheet and use this formula to convert values
=AmountToWord(A8)
Final Output
Download Excel Module Add-ins File Below
Note: The add-ins upload process is given in Method No.1 above
8 Convert Date To English Words in Excel
If you are searching for VBA code to convert Date to English Words in Excel? then you can download the VBA coding from below download button and install this Add-ins in your excel as explained in below given video.
Formula to be used “=DateToText(A1)“
Output-Screenshot
Tutorial Video
Download Excel Module Add-ins File Below
Your attached file for number to text can’t download.please tell me the way download your file for edit spellnumber.
Very Very Good
I cannot download the file. I think link has been broken.
Osm sir
Sir aap me number to text file Jo h usme apne apne Kya type Kiya h Jo ki ham file ko download karke Excel m addin krte h or fr apne aap number word m change ho jata h
Sir plzzz give reply bcoz wo file open nhi ho rahi h
If we convert any amount having point like 123.47 it will shows “Rupees One Hundred TwentyThree Paise FourtySeven Only” but it have to show like “Rupees One Hundred Twenty Three and Fourty Seven Paise Only”. Just think about it as not everyone having a bill containing round figure only.
I can not find spellnumber download file. Please share your spellnumber file.
I saw your lecture convert number into text format but I am unable to find file which I need to copy in excel