Last Updated:

Convert Peso Number into words in Excel

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

SpellNumber VBA code in Excel

Highlight and Copy Codes below.

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.

Comments