How to convert a numeric value into an English word?

December 2016

The Office Software Excel, offers users the option to carry out various operations on the data in the fields of the spreadsheet. A user defined function can be used to convert a numeric value to an English word. Some knowledge of programming concepts such as functions and looping techniques would help understand and write the functions, but is not essential. There are many resources available on the internet where functions that can be used to convert a numeric value to an English word can be downloaded and included in the Excel worksheets for free.

To convert a numeric value into an English word, here is the formula you will need:

This is a post from the forum, thanks to rajput391

Below, you will find the code to enter in your Excel sheet:
1. Press Alt+F11 > copy and pate in module (if module does not show insert module, click insert on menu bar > Module)
2. Alt+Q Save code and return to Excel sheet
3. Insert > function > user defined > A1 or relevant cell

Function words(fig, Optional point = "Point") As String    
Dim digit(14) As Integer    
alpha = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")    
figi = Trim(StrReverse(Str(Int(Abs(fig)))))    
For i = 1 To Len(figi)    
digit(i) = Mid(figi, i, 1)    
Next    
For i = 2 To Len(figi) Step 3    
If digit(i) = 1 Then    
digit(i) = digit(i - 1) + 10: digit(i - 1) = 0    
Else: If digit(i) > 1 Then digit(i) = digit(i) + 18    
End If    
Next    
For i = 1 To Len(figi)    
If (i Mod 3) = 0 And digit(i) > 0 Then words = "hundred " & words    
If (i Mod 3) = 1 And digit(i) + digit(i + 1) + digit(i + 2) > 0 Then _    
words = Choose(i / 3, "thousand ", "million ", "billion ") & words    
words = Trim(alpha(digit(i)) & " " & words)    
Next    
If fig <> Int(fig) Then    
figc = StrReverse(figi)    
If figc = 0 Then figc = ""    
figd = Trim(WorksheetFunction.Substitute(Str(Abs(fig)), figc & ".", ""))    
words = Trim(words & " " & point)    
For i = 1 To Len(figd)    
If Val(Mid(figd, i, 1)) > 0 Then    
words = words & " " & alpha(Mid(figd, i, 1))    
Else: words = words & " Zero"    
End If    
Next    
End If    
If fig < 0 Then words = "Negative " & words    
End Function

Related :

This document entitled « How to convert a numeric value into an English word? » from CCM (ccm.net) is made available under the Creative Commons license. You can copy, modify copies of this page, under the conditions stipulated by the license, as this note appears clearly.