Convertir números en palabras

Excel 2013 y Excel 2016 no tienen una función predeterminada que muestre los números como palabras en inglés en una celda de la hoja de cálculo, pero puede agregar esta funcionalidad pegando el código de la función SpellNumber en una hoja de módulo. Esta función le permite convertir cantidades en dólares y centavos en palabras.

Si quiere convertir valores numéricos a formato de texto sin que se muestren como palabras, use la función TEXTO en su lugar.

En este artículo

Crear la función SpellNumber para convertir números en palabras

  1. Use el método abreviado de teclado Alt+F11 para abrir el Editor de Visual Basic.

    Nota: También puede obtener acceso al Editor de Visual Basic si muestra la pestaña Programador en la cinta.

  2. Haga clic en la pestaña Insertar y después en Módulo.

    En el menú Insertar, haga clic en Módulo.
  3. Copie las siguientes líneas de código.

    Nota: Este código, que se conoce como una función de macro, automatiza la tarea de convertir números en texto en toda la hoja de cálculo.

    Option Explicit

    'Función principal

    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 "

    ' Representación de cadena del importe.

    MyNumber = Trim(Str(MyNumber))

    ' Posición de decimal 0 si no hay ninguno.

    DecimalPlace = InStr(MyNumber, ".")

    ' Convertir céntimos y establecer MyNumber en cantidad de dólares.

    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

    ' Convierte un número entre 100 y 999 en texto

    Function GetHundreds(ByVal MyNumber)

    Dim Result As String

    If Val(MyNumber) = 0 Then Exit Function

    MyNumber = Right("000" & MyNumber, 3)

    ' Convertir la posición de las centenas.

    If Mid(MyNumber, 1, 1) <> "0" Then

    Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "

    End If

    ' Convertir la posición de las decenas y unidades.

    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

    ' Convierte un número entre 10 y 99 en texto

    Function GetTens(TensText)

    Dim Result As String

    Result = "" ' Convertir en NULL el valor de función temporal.

    If Val(Left(TensText, 1)) = 1 Then ' Si el valor está comprendido entre 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 ' Si el valor está entre 20 y 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)) ' Recupera una posición.

    End If

    GetTens = Result

    End Function

    ' Convierte un número entre 1 y 9 en texto.

    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

  4. Pegue las líneas de código en el cuadro Módulo1 (código).

    Código pegado en el cuadro Módulo1 (código).
  5. Haga clic en Archivo y haga clic en Cerrar y volver a Microsoft Excel. La función SpellNumber ya está lista para usar.

    Nota: Esta función solo funciona con el archivo de Excel actual que haya abierto. Para usar esta función en otro libro de Excel, deberá repetir los pasos para copiar y pegar el código en ese archivo.

Principio de página

Usar la función SpellNumber en celdas individuales

  1. Escriba la fórmula =SpellNumber(valor) en la celda donde quiere que se muestre un número escrito, reemplazando valor con el número que elija.

  2. En el teclado, presione Entrar.

    Por ejemplo, si escribe =SpellNumber(22.50), en la cadena debe aparecer Twenty-Two Dollars and Fifty Cents (Veintidós dólares y cincuenta centavos).

    Sugerencia: Para convertir números en texto en una celda independiente, reemplace el valor numérico con una referencia de celda en la fórmula SpellNumber. Por ejemplo, escriba =SpellNumber(A1) para mostrar el valor escrito de la celda A1.

Principio de página

Guardar el libro de la función SpellNumber

Excel no puede guardar un libro con funciones de macro en el formato estándar de libro sin macros. Si hace clic en Archivo > Guardar. Se abre el cuadro de diálogo Proyecto de VB. Haga clic en No.

En el cuadro de diálogo Proyecto de VB, haga clic en No.

Puede guardar el archivo como una plantilla de Excel habilitada para macros para mantener el archivo en su formato actual.

  1. Haga clic en Archivo > Guardar como.

  2. Haga clic en el menú desplegable Guardar como tipo y seleccione Excel Macro-Enabled Template.

    Seleccione Plantilla de Excel habilitada para macros
  3. Haga clic en Guardar.

Principio de página

Vea también

Función TEXTO

Ampliar sus conocimientos de Office
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×