## How to convert figures into words in Excel

In this post, I will show you how to convert a peso number into words in Microsoft Excel. It is very useful when using a Microsoft Excel workbook template to print checks. We will guide you on how to use the SpellNumber function formula in Microsoft Excel. Thus, any amount in Peso currency allows you to convert into English words.

To convert a Dollar amount into words, please visit this article from Microsoft, click here.

## What is SpellNumber formula in Excel?

SpellNumber function is a formula used to convert numbers into English words in Microsoft Excel. To add this capability, you need to paste the** SpellNumber** function code into a **VBA (Visual Basic for Applications)** module and save as **Excel Macro Enabled Workbook**.

Here is the guide on how to create the SpellNumber function.

## Creating SpellNumber function

**STEP 1**. Open your **Microsoft Excel Workbook**. In a blank cell, type the peso amount or number you want to convert. Later you have to type in a blank cell the formula =SpellNumber(D8) to get result. Where D8 is the cell location of peso number.

As sample above I have provide **P150.45** then it must be turned into One Hundred Fifty Pesos & 45/100 by using the formula **=SpellNumber**.

**STEP 2.** Press **Alt + F11** key, it will open the visual basic window. Click** Insert **tab, then **Module** folder under VBA Project. Copy codes below, then Paste in the blank module.

Highlight and Copy Codes below or download this text file

```
Option Explicit
'Main Function
Function SpellNumber(ByVal MyNumber)
Dim Pesos, Cents, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "
' String representation of amount.
MyNumber = Trim(Str(MyNumber))
' Position of decimal place 0 if none.
DecimalPlace = InStr(MyNumber, ".")
' Convert cents and set MyNumber to dollar amount.
If DecimalPlace > 0 Then
Cents = GetTens2(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 Pesos = Temp & Place(Count) & Pesos
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Select Case Pesos
Case ""
Pesos = "No Pesos"
Case "One"
Pesos = "One Peso"
Case Else
Pesos = Pesos & ""
End Select
Select Case Cents
Case ""
Cents = " Pesos Only "
Case "One"
Cents = " and One Cent"
Case Else
Cents = " & " & Cents & "/100 Pesos Only"
End Select
SpellNumber = Pesos & Cents
End Function
' Converts a number from 100-999 into text
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
' Converts a number from 10 to 99 into text.
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
' Converts a number from 1 to 9 into text.
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
' Converts a number from 10 to 99 into text.
Function GetTens2(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 = "10"
Case 11: Result = "11"
Case 12: Result = "12"
Case 13: Result = "13"
Case 14: Result = "14"
Case 15: Result = "15"
Case 16: Result = "16"
Case 17: Result = "17"
Case 18: Result = "18"
Case 19: Result = "19"
Case Else
End Select
Else ' If value between 20-99...
Select Case Val(Left(TensText, 1))
Case 2: Result = "2"
Case 3: Result = "3"
Case 4: Result = "4"
Case 5: Result = "5"
Case 6: Result = "6"
Case 7: Result = "7"
Case 8: Result = "8"
Case 9: Result = "9"
Case Else
End Select
Result = Result & GetDigit2 _
(Right(TensText, 1)) ' Retrieve ones place.
End If
GetTens2 = Result
End Function
' Converts a number from 1 to 9 into text.
Function GetDigit2(Digit)
Select Case Val(Digit)
Case 0: GetDigit2 = "0"
Case 1: GetDigit2 = "1"
Case 2: GetDigit2 = "2"
Case 3: GetDigit2 = "3"
Case 4: GetDigit2 = "4"
Case 5: GetDigit2 = "5"
Case 6: GetDigit2 = "6"
Case 7: GetDigit2 = "7"
Case 8: GetDigit2 = "8"
Case 9: GetDigit2 = "9"
Case Else: GetDigit2 = ""
End Select
End Function
```

**STEP 3**. Press **Alt + Q** to close, then save your document as **Excel Macro Enabled Workbook.**

**STEP 4.** Open your Microsoft Excel workbook again. Try using the formula =SpellNumber(Cell Reference) and press enter. For Example, **=SpellNumber(D8) **where D8 is the cell containing the number you want to convert. You can also type the number manually, like =SpellNumber(150.45). It should convert the Peso number to English words.

This guide was made using Microsoft Excel 2019 version.

That’s it, you’re done. If you have a question on how to convert peso numbers into words in Excel, please leave a comment below.

Block pop-ups notification in your PC

i Try folowing this instrustion it working at first but on the second time its not working anymore

itry to reset it again but what appears is (#Name?). how can i reset this? please help

Hi Heart,

You forgot to include (Cell location) after the SpellNumber formula. Make sure that all macros are enabled. Good Luck

Hi Sir , how about if with “**” ?

Example: **One Thousand Pesos Only**

Hi! I keep watching this from Youtube but it’s not working, when I found your instructions I finally made it. It’s a big help for my job. God bless you. Thank you so much.

Thank you Anney!!

thank you very much. very helpful.

I follow the instructon but the decimal point was not add 1

Why does the peso word placed after the numeric centavos? Like one & 50/100 pesos only while it should be one peso and 50/100 only.

Hi please try this one, there are edits

Option Explicit

‘Main Function

Function SpellNumber(ByVal MyNumber)

Dim Pesos, Cents, Temp

Dim DecimalPlace, Count

ReDim Place(9) As String

Place(2) = ” Thousand ”

Place(3) = ” Million ”

Place(4) = ” Billion ”

Place(5) = ” Trillion ”

‘ String representation of amount.

MyNumber = Trim(Str(MyNumber))

‘ Position of decimal place 0 if none.

DecimalPlace = InStr(MyNumber, “.”)

‘ Convert cents and set MyNumber to dollar amount.

If DecimalPlace > 0 Then

Cents = GetTens2(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 Pesos = Temp & Place(Count) & Pesos

If Len(MyNumber) > 3 Then

MyNumber = Left(MyNumber, Len(MyNumber) – 3)

Else

MyNumber = “”

End If

Count = Count + 1

Loop

Select Case Pesos

Case “”

Pesos = “No Pesos”

Case “One”

Pesos = “One Peso”

Case Else

Pesos = Pesos & “”

End Select

Select Case Cents

Case “”

Cents = ” Pesos Only ”

Case “One”

Cents = ” and One Cent”

Case Else

Cents = ” Pesos” & ” & ” & Cents & “/100 Only”

End Select

SpellNumber = Pesos & Cents

End Function

‘ Converts a number from 100-999 into text

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

‘ Converts a number from 10 to 99 into text.

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

‘ Converts a number from 1 to 9 into text.

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

‘ Converts a number from 10 to 99 into text.

Function GetTens2(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 = “10”

Case 11: Result = “11”

Case 12: Result = “12”

Case 13: Result = “13”

Case 14: Result = “14”

Case 15: Result = “15”

Case 16: Result = “16”

Case 17: Result = “17”

Case 18: Result = “18”

Case 19: Result = “19”

Case Else

End Select

Else ‘ If value between 20-99…

Select Case Val(Left(TensText, 1))

Case 2: Result = “2”

Case 3: Result = “3”

Case 4: Result = “4”

Case 5: Result = “5”

Case 6: Result = “6”

Case 7: Result = “7”

Case 8: Result = “8”

Case 9: Result = “9”

Case Else

End Select

Result = Result & GetDigit2 _

(Right(TensText, 1)) ‘ Retrieve ones place.

End If

GetTens2 = Result

End Function

‘ Converts a number from 1 to 9 into text.

Function GetDigit2(Digit)

Select Case Val(Digit)

Case 0: GetDigit2 = “0”

Case 1: GetDigit2 = “1”

Case 2: GetDigit2 = “2”

Case 3: GetDigit2 = “3”

Case 4: GetDigit2 = “4”

Case 5: GetDigit2 = “5”

Case 6: GetDigit2 = “6”

Case 7: GetDigit2 = “7”

Case 8: GetDigit2 = “8”

Case 9: GetDigit2 = “9”

Case Else: GetDigit2 = “”

End Select

End Function

Thanks for this. Very useful

Thank you for this, saves a lot of time.

Very Great!!! Thank You so much. This helps me a lot 😀

IT WORKS! THANK YOU SO MUCH!! kansahamnida!

How to put asterisk in the beginning of the amount in words?

hi!

thanks for the big help. appreciate much.

is there any vba code that can be used in excel 2007?

Thank you.

how can put * on amount in words?

example 50,000.00

should be in words

***Fifty Thousand Pesos Only***