How to convert a numeric value into an English word?

October 2017

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
Published by aakai1056. Latest update on October 25, 2012 at 01:29 PM by Jeff.
This document, titled "How to convert a numeric value into an English word?," is available under the Creative Commons license. Any copy, reuse, or modification of the content should be sufficiently credited to CCM (ccm.net).