How to Convert Number to Words in Excel for Peso

Excel is an incredibly versatile tool that can handle a wide array of tasks, from simple calculations to more complex data analysis. However, one feature that Excel lacks out of the box is the ability to convert numbers to words automatically. This feature is especially helpful for people

Why Convert Numbers to Words in Excel?

There are several reasons you might want to convert numbers to words in Excel:

  1. Financial Documents: Many financial documents such as checks, invoices, or receipts require that numbers be spelled out to avoid fraud or confusion.
  2. Currency Formatting: In countries where currencies such as the Peso are used, it’s often necessary to present amounts in both numbers and words for legal purposes.
  3. Improving Readability: Converting numbers to words can make your Excel spreadsheets easier to read, especially for those who might not be familiar with the formatting of numerical data.

Challenges in Converting Numbers to Words in Excel

Excel doesn’t have a built-in function to convert numbers to words directly. Therefore, you'll need to use a custom VBA function. VBA is a programming language within Excel that enables you to extend its functionality.

If you aren't familiar with VBA, don’t worry. The process of adding and using a VBA script is straightforward, and this article will guide you through it step by step.

Step-by-Step Guide to Convert Numbers to Words in Excel for Peso

Step 1: Open Excel and Enable Developer Tab

Before you start, you need to ensure that the Developer tab is enabled in Excel, as this is where you'll be working with VBA.

  • Open Excel.
  • Go to the "File" menu.
  • Click "Options."
  • In the Excel Options dialog box, select "Customize Ribbon."
  • Check the box for the "Developer" tab and click "OK."

Step 2: Open Visual Basic for Applications (VBA)

Once the Developer tab is enabled:

  • Click on the "Developer" tab.
  • Select "Visual Basic" to open the VBA editor.
  • In the VBA editor, go to "Insert" and then "Module." This will open a new module window where you can enter the code.

Step 3: Add VBA Code to Convert Numbers to Words

Copy and paste the following VBA code into the module window:

vba

Copy code

Function NumToWords(ByVal MyNumber)

    Dim Units As String

    Dim Tens As String

    Dim Pesos As String

    Dim Cents As String

    Dim DecimalPlace As Integer

    Dim Count As Integer

    

    ReDim Place(9) As String

    Place(2) = " Thousand "

    Place(3) = " Million "

    Place(4) = " Billion "

    

    ' Convert MyNumber to String in case it's a number.

    MyNumber = Trim(CStr(MyNumber))

    

    ' Find Position of decimal place.

    DecimalPlace = InStr(MyNumber, ".")

    

    ' Convert Peso amount.

    If DecimalPlace > 0 Then

        Pesos = Left(MyNumber, DecimalPlace - 1)

        Cents = Mid(MyNumber, DecimalPlace + 1) & "/100"

    Else

        Pesos = MyNumber

        Cents = "00/100"

    End If

    

    Count = 1

    Do While Pesos <> ""

        Temp = GetHundreds(Right(Pesos, 3))

        If Temp <> "" Then Units = Temp & Place(Count) & Units

        If Len(Pesos) > 3 Then

            Pesos = Left(Pesos, Len(Pesos) - 3)

        Else

            Pesos = ""

        End If

        Count = Count + 1

    Loop

    

    NumToWords = Units & "Pesos " & Cents

End Function

 

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

 

Function GetTens(TensText)

    Dim Result As String

    Result = ""

    If Val(Left(TensText, 1)) = 1 Then

        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

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

    End If

    GetTens = Result

End Function

 

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

 

This VBA code converts any number into words in the Peso format. It handles numbers up to billions and includes centavos, which are represented as "00/100" when no cents are provided.

Step 4: Save the Workbook

Before you can use the function, save your workbook as a macro-enabled file:

  • Click on "File."
  • Select "Save As."
  • Choose "Excel Macro-Enabled Workbook" (.xlsm) from the drop-down menu.
  • Save the file.

Step 5: Using the NumToWords Function in Excel

Now that you've added the VBA function, you can use it in your Excel sheet like a normal function. Here’s how:

  • In a cell where you want to convert a number to words, type:
    =NumToWords(A1)
  • Replace "A1" with the cell that contains the number you want to convert.

For example, if cell A1 contains the value 1234.56, the result would be "One Thousand Two Hundred Thirty-Four Pesos 56/100."

Conclusion

With this guide, you now know how to convert number to words in excel peso using a custom VBA function. This process is particularly useful for preparing financial documents like invoices or checks. By following these steps, you’ll be able to automatically spell out any numerical amount in Peso, complete with centavos. While Excel doesn’t offer this feature natively, the flexibility of VBA allows you to extend its functionality to meet your needs.


tracker57 tracker57

1 Blog posts

Comments