How To Convert Number To Word in Excel

In our professional life, sometimes we need to convert number value into word in excel. You can do this by creating a macro. Today I’ll show you how to do that in 5 easy steps:

Step-1:
Press alt+F8 to open Visual Basic Editor. If your macro is disable you have to enable your macro first.

Step-2:
Click the Insert Tab and then click Module

Step-3:
Copy the following code into the module window

Option Explicit

Function NumberToWord(ByVal aNumber)
Dim Takas, Paisa, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "
aNumber = Trim(Str(aNumber))
DecimalPlace = InStr(aNumber, ".")
If DecimalPlace > 0 Then
    Paisa = GetTens(Left(Mid(aNumber, DecimalPlace + 1) & "00", 2))
    aNumber = Trim(Left(aNumber, DecimalPlace - 1))
End If
Count = 1
Do While aNumber <> ""
    Temp = GetHundreds(Right(aNumber, 3))
    If Temp <> "" Then Takas = Temp & Place(Count) & Takas
    If Len(aNumber) > 3 Then
        aNumber = Left(aNumber, Len(aNumber) - 3)
    Else
        aNumber = ""
    End If
    Count = Count + 1
Loop
Select Case Takas
    Case ""
    Takas = "No Takas"
    Case "One"
    Takas = "One Taka"
    Case Else
    Takas = Takas & " Takas"
    End Select
    Select Case Paisa
    Case ""
    Paisa = " and No Paisa"
    Case "One"
    Paisa = " and One Cent"
    Case Else
    Paisa = " and " & Paisa & " Paisa"
End Select
NumberToWord = Takas & Paisa
End Function

Function GetHundreds(ByVal aNumber)
Dim Result As String
If Val(aNumber) = 0 Then Exit Function
aNumber = Right("000" & aNumber, 3)
If Mid(aNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(aNumber, 1, 1)) & " Hundred "
End If
If Mid(aNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(aNumber, 2))
Else
Result = Result & GetDigit(Mid(aNumber, 3))
End If
GetHundreds = Result
End Function

Function GetTens(TensText)
Dim Result As String
Result = ""
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"
        Case Else
    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 "
        Case Else
    End Select
Result = Result & GetDigit _
(Right(TensText, 1)) '
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

Step-4:
Click Save button and press Alt+Q button to return to the excel. Your defined function is now ready to use.You can use this function as other built-in function. i.e. There is value 9,216,857.34 in c20 column. You want to convert it into word at c21 column. So, write =NumberToWord(c20) and press Enter. You will see “Nine Million Two Hundred Sixteen Thousand Eight Hundred Fifty Seven Takas and Thirty Four Paisa” at c21.

Step-5:
Last step is to save your file with macro. Click File then Click Save As and Then select Excel Macro-Enabled Workbook (.xlsm) and click Save. Your work is done. Now you can reuse the file.

If you like my post like my facebook page http://www.facebook.com/freetechtrainer/. Be with us and hope you can learn many things.

Add a Comment