Cómo Convertir Números en Palabras en Excel

Microsoft Excel es un gran programa para calcular esto y aquello. Fue desarrollado inicialmente para procesar grandes matrices de datos. Sin embargo, también permite crear registros contables como facturas, evaluaciones o balances de forma rápida y eficaz.

En los documentos de pago más o menos sólidos es necesario duplicar los valores numéricos con su forma verbal. Es mucho más difícil falsificar los números mecanografiados que los escritos a mano. Algún estafador puede intentar hacer 8000 de 3000, mientras que es casi imposible sustituir secretamente “tres” por “ocho”.

Así que lo que se necesita no es sólo convertir los números en palabras en Excel (por ejemplo, 123,45 a “ciento veintitrés, cuarenta y cinco”), sino deletrear los dólares y centavos (por ejemplo, 29,95 dólares como “veintinueve dólares y noventa y nueve centavos” ), libras y peniques para GBP, euros y eurocents para EUR, etc.
Convertir número en palabras en Excel 2010
Incluso las últimas versiones de Excel no tienen una herramienta integrada para deletrear números, por no hablar de las versiones anteriores. Pero eso es cuando Excel es realmente bueno. Siempre puedes mejorar su funcionalidad utilizando fórmulas en todas sus combinaciones, macros VBA o complementos de terceros.

Nota. Si lo que buscas es la conversión de números a texto, lo que significa que quieres que Excel vea tu número como texto, es una cosa un poco diferente. Para ello, puede utilizar la función TEXTO o algunas otras formas descritas en Cómo cambiar números a texto en Excel.

Convertir números en palabras utilizando la macro VBA SpellNumber

Como ya he mencionado, Microsoft no quería añadir una herramienta para esta tarea. Sin embargo, al ver que muchos usuarios la necesitaban, crearon y publicaron la macro VBA especial en su sitio web. La macro hace lo que su nombre SpellNumber sugiere. Todas las demás macros que he encontrado están basadas en el código de Microsoft.

Puedes encontrar la macro mencionada como “spellnumber formula”. Sin embargo, no es una fórmula, sino una función de macro, o para ser más precisos Excel función definida por el usuario (UDF).

La opción spellnumber es capaz de escribir dólares y centavos. Si necesita una moneda diferente, puede cambiar “dólar” y “centavo” con el nombre de su moneda.

Si no eres un experto en VBA, a continuación encontrarás una copia del código. Si todavía no quiere o no tiene tiempo para resolver esto, utilice esta solución.

  • Abra el libro de trabajo donde necesita deletrear los números.
  • Pulse Alt+F11 para abrir la ventana del editor de Visual Basic.
  • Si tiene varios libros abiertos, compruebe que el libro de trabajo necesario está activo utilizando la lista de proyectos en la esquina superior izquierda del editor (uno de los elementos del libro de trabajo está resaltado en azul).
  • En el menú del editor vaya a Insertar-> Módulo.
  • Editor de Excel Visual Basic - insertar módulo
  • Deberías ver una ventana llamada TuLibro – Módulo1. Seleccione todo el código en el marco de abajo y pegarlo a esta ventana.Macro VBA para convertir números en palabras

 

Option Explicit
'Main Function
Function SpellNumber(ByVal MyNumber)
        Dim Dollars, Cents, Temp
        Dim DecimalPlace, Count
        ReDim Place(9) As String
        Place(2) = " Thousand "
        Place(3) = " Million "
        Place(4) = " Billion "
        Place(5) = " Trillion "
        MyNumber = Trim(Str(MyNumber))
        DecimalPlace = InStr(MyNumber, ".")
        If DecimalPlace > 0 Then
                Cents = GetTens(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 Dollars = Temp & Place(Count) & Dollars
                If Len(MyNumber) > 3 Then
                        MyNumber = Left(MyNumber, Len(MyNumber) - 3)
                Else
                        MyNumber = ""
                End If
                Count = Count + 1
        Loop
        Select Case Dollars
                Case ""
                        Dollars = "No Dollars"
                Case "One"
                        Dollars = "One Dollar"
                 Case Else
                        Dollars = Dollars & " Dollars"
        End Select
        Select Case Cents
                Case ""
                        Cents = " and No Cents"
                Case "One"
                        Cents = " and One Cent"
                            Case Else
                        Cents = " and " & Cents & " Cents"
        End Select
        SpellNumber = Dollars & 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 = "" ' 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
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
  • Pulse Ctrl+S para guardar el libro de trabajo actualizado. Cuando intente guardar el libro de trabajo con una macro, recibirá el mensaje “Las siguientes funciones no pueden guardarse en un libro de trabajo sin macros”.

Las siguientes funciones no pueden guardarse en el Libro de Trabajo sin macros : proyecto VB

  • Haga clic en No. Cuando vea un nuevo diálogo, elija la opción Guardar como. En el campo “Guardar como tipo” elija la opción “Libro de Excel habilitado para macros”.

Guarda tu libro como 'libro habilitado para macros de Excel'

 

Utilice la macro SpellNumber en sus hojas de trabajo

Ahora puede utilizar la función NúmeroDeEscritura en sus documentos de Excel. Introduzca =SpellNumber(A2) en la celda donde necesita obtener el número escrito en palabras. Aquí A2 es la dirección de la celda con el número o la cantidad.

Utilice la macro SpellNumber en sus hojas de cálculo de Excel

Aquí puedes ver el resultado:
Números deletreados a dólares y centavos
Ya está.

Copie rápidamente la función SpellNumber a otras celdas.

Si necesitas convertir toda la tabla, no sólo una celda, coloca el cursor del ratón en la esquina inferior derecha de la celda con la fórmula hasta que se convierta en una pequeña cruz negra:
Copiar rápidamente la función Ortografía a otras celdas
Haz clic con el botón izquierdo y arrástralo por la columna para rellenar la fórmula. Suelta el botón para ver los resultados:
Números deletreados a dólares y centavos
Nota. Tenga en cuenta que si utiliza SpellNumber con un enlace a otra celda, la suma escrita se actualizará cada vez que se modifique el número de la celda de origen. También puede introducir el número directamente en la función, por ejemplo, =SpellNumber(29.95) (29.95 – sin comillas y sin el signo del dólar).

Desventajas de usar la macro para deletrear números en Excel

En primer lugar, debe conocer VBA para modificar el código según sus necesidades. Es necesario pegar el código para cada libro de trabajo, donde usted planea cambiarlo. De lo contrario, tendrá que crear un archivo de plantilla con macros y configurar Excel para cargar este archivo en cada inicio.

La principal desventaja de utilizar una macro es que si envías el libro a otra persona, ésta no verá el texto a menos que la macro esté incorporada en el libro. E incluso si está incorporada, recibirán una alerta de que hay macros en el libro.

Scroll to Top