peso number words excel

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 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.

excel vba module
SpellNumber VBA code in Excel

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.

macro enabled excel
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.

SpellNumber Peso VBA code

This guide was made using Microsoft Excel 2019 version.

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

block pop-ups chrome

Block pop-ups notification in your PC

Similar Posts

13 Comments

  1. 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

  2. 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.

  3. 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.

    1. 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

Leave a Reply

Your email address will not be published. Required fields are marked *