Microsoft Excel is one of the most powerful tools for data handling, calculations, and reporting. However, many users are surprised to learn that Excel does not have a built-in function to convert numbers into words (for example, converting 1250 into One Thousand Two Hundred Fifty).
This feature is frequently required while preparing invoices, salary slips, financial statements, cheques, bills, and official documents. In this blog, you will learn simple and effective methods to convert numbers to words or text in Excel, including a professional VBA-based Excel hack.
Why Convert Numbers to Words in Excel?
Converting numbers into words is useful in many real-life and professional scenarios, such as:
- Preparing financial reports
- Creating invoices and billing systems
- Generating salary sheets
- Writing amounts on cheques
- Academic and administrative documentation
- Automating repetitive Excel tasks
Method 1: Convert Numbers to Words in Excel Using VBA (Best Method)
This is the most accurate and professional method to convert numbers into words in Excel.
Step 1: Open VBA Editor
- Open your Excel file
- Press Alt + F11
- Click on Insert → Module
Step 2: Paste the VBA Code
Option Explicit
Function SpellNumber(ByVal numIn)
Dim LSide, RSide, Temp, DecPlace, Count, oNum
oNum = numIn
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "
numIn = Trim(Str(numIn)) 'String representation of amount
' Edit 2.(0)/Internationalisation
' Don't change point sign here as the above assignment preserves the point!
DecPlace = InStr(numIn, ".") 'Pos of dec place 0 if none
If DecPlace > 0 Then 'Convert Right & set numIn
RSide = GetTens(Left(Mid(numIn, DecPlace + 1) & "00", 2))
numIn = Trim(Left(numIn, DecPlace - 1))
End If
RSide = numIn
Count = 1
Do While numIn <> ""
Temp = GetHundreds(Right(numIn, 3))
If Temp <> "" Then LSide = Temp & Place(Count) & LSide
If Len(numIn) > 3 Then
numIn = Left(numIn, Len(numIn) - 3)
Else
numIn = ""
End If
Count = Count + 1
Loop
SpellNumber = LSide
If InStr(oNum, Application.DecimalSeparator) > 0 Then ' << Edit 2.(1)
SpellNumber = SpellNumber & " point " & fractionWords(oNum)
End If
End Function
Function GetHundreds(ByVal numIn) 'Converts a number from 100-999 into text
Dim w As String
If Val(numIn) = 0 Then Exit Function
numIn = Right("000" & numIn, 3)
If Mid(numIn, 1, 1) <> "0" Then 'Convert hundreds place
w = GetDigit(Mid(numIn, 1, 1)) & " Hundred "
End If
If Mid(numIn, 2, 1) <> "0" Then 'Convert tens and ones place
w = w & GetTens(Mid(numIn, 2))
Else
w = w & GetDigit(Mid(numIn, 3))
End If
GetHundreds = w
End Function
Function GetTens(TensText) 'Converts a number from 10 to 99 into text
Dim w As String
w = "" 'Null out the temporary function value
If Val(Left(TensText, 1)) = 1 Then 'If value between 10-19
Select Case Val(TensText)
Case 10: w = "Ten"
Case 11: w = "Eleven"
Case 12: w = "Twelve"
Case 13: w = "Thirteen"
Case 14: w = "Fourteen"
Case 15: w = "Fifteen"
Case 16: w = "Sixteen"
Case 17: w = "Seventeen"
Case 18: w = "Eighteen"
Case 19: w = "Nineteen"
Case Else
End Select
Else 'If value between 20-99..
Select Case Val(Left(TensText, 1))
Case 2: w = "Twenty "
Case 3: w = "Thirty "
Case 4: w = "Forty "
Case 5: w = "Fifty "
Case 6: w = "Sixty "
Case 7: w = "Seventy "
Case 8: w = "Eighty "
Case 9: w = "Ninety "
Case Else
End Select
w = w & GetDigit _
(Right(TensText, 1)) 'Retrieve ones place
End If
GetTens = w
End Function
Function GetDigit(Digit) 'Converts a number from 1 to 9 into text
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
Function fractionWords(n) As String
Dim fraction As String, x As Long
fraction = Split(n, Application.DecimalSeparator)(1) ' << Edit 2.(2)
For x = 1 To Len(fraction)
If fractionWords <> "" Then fractionWords = fractionWords & " "
fractionWords = fractionWords & GetDigit(Mid(fraction, x, 1))
Next x
End Function
Step 3: Use the Function in Excel
In any Excel cell, type:
=SpellNumber(A1)
Example:
| Number | Result |
|---|---|
| 1250 | One Thousand Two Hundred Fifty |
| 50489 | Fifty Thousand Four Hundred Eighty Nine |
This method works perfectly for large numbers and is widely used in professional Excel automation.
Complete Tutorial
Method 2: Convert Numbers to Text (Not Words) Using TEXT Function
If you only want to convert numbers into text format (digits) and not into spelling, use this method.
Formula:
=TEXT(A1,"0")
Example:
- 12345 →
"12345"(as text)
This method is useful for:
- Preventing automatic calculations
- Formatting data
- Maintaining leading zeros
Method 3: Excel Add-Ins (Optional)
Some third-party Excel add-ins can convert numbers into words automatically.
Limitations:
- Mostly paid tools
- Limited customization
- Not ideal for long-term professional use
Which Method Should You Use?
| Requirement | Best Method |
|---|---|
| Convert number to words | VBA Method |
| Convert number to text | TEXT Function |
| Quick temporary solution | Add-ins |
Excel Hack Tip
If you regularly work with financial or accounting data, learning VBA-based Excel automation can save hours of manual work and significantly improve productivity.
Conclusion
Although Microsoft Excel does not provide a built-in number-to-word function, you can easily achieve this using VBA code. This Excel hack is extremely useful for professionals, students, educators, and business owners. By mastering this technique, you can enhance your Excel skills and automate important documentation tasks.
For more Excel hacks, tech tutorials, and productivity tips, stay connected with Learn Mitra.
convert numbers to words in excel, number to word excel vba, excel number to text, excel hacks, excel tricks, excel automation, excel vba tutorial, excel tips and tricks, number to words in excel sheet, excel for beginners, excel advanced tutorial, excel invoice automation, learn mitra excel, ms excel tips
Discover more from Easy Notes 4U Academy
Subscribe to get the latest posts sent to your email.
