Skip to main content

Convertir números en palabras en Excel: una guía completa

Author: Xiaoyang Last Modified: 2025-08-06

Convertir números en palabras escritas es a menudo necesario para informes financieros, documentos legales, facturas o cheques. Aunque Excel no ofrece esta funcionalidad de forma predeterminada, existen varias formas confiables de lograrlo, desde funciones integradas de Microsoft 365 hasta funciones definidas por el usuario en VBA y potentes complementos de terceros. Esta guía completa te guiará a través de cada método, destacando sus ventajas y limitaciones, y ayudándote a elegir la mejor opción para tus necesidades específicas.

A screenshot showing converting numbers to words in Excel

Métodos para convertir números en palabras en Excel

Esta sección introduce tres métodos efectivos para convertir números de moneda en palabras en Excel. Elige el que mejor se adapte a tu versión de Excel y caso de uso.


Método 1: Usar nuevas funciones integradas (Solo Microsoft 365)

Si estás usando Excel para Microsoft 365, puedes aprovechar la nueva función TRANSLATE para convertir fácilmente números de moneda en palabras utilizando una combinación creativa de fórmulas.

Como se muestra en la captura de pantalla a continuación, para convertir los números de moneda en el rango A2:A5 a palabras, puedes aplicar la siguiente fórmula para realizarlo.

  1. Selecciona una celda en blanco (por ejemplo, B2), ingresa la fórmula a continuación.
    =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(B9),"th","en")),"baht","dólares"),"satang","centavos"))
  2. Presiona "Enter" y arrastra el "Controlador de Relleno" hacia abajo para aplicarlo a otras filas.
    A screenshot showing how to use the new function to convert numbers to words

Cómo funciona la fórmula:

  • BAHTTEXT: Convierte el número en texto en baht tailandés (por ejemplo, “หนึ่งบาทถ้วน”).
  • TRANSLATE(...,"th","en"): Traduce texto de un idioma a otro (requiere Microsoft 365). En este caso, traduce del tailandés al inglés.
  • LOWER(): Convierte toda la cadena en minúsculas para mantener consistencia.
  • SUBSTITUTE(): Reemplaza palabras de moneda como "baht" y "satang" con los términos deseados.
  • PROPER(): Capitaliza la primera letra de cada palabra para un formato adecuado.

Adaptar para otras monedas:

La fórmula anterior produce dólares estadounidenses. Puedes personalizarla para otras monedas reemplazando las unidades principales y secundarias:

  • Reemplaza "dólares" con la unidad principal de tu moneda objetivo, como "libras" para la libra esterlina británica.
  • Reemplaza "centavos" con la unidad menor, como "peniques" para la libra esterlina británica.

La siguiente tabla enumera las monedas compatibles y las fórmulas correspondientes que puedes usar:

MonedaReemplazo de Unidad PrincipalReemplazo de Unidad MenorFórmula de Ejemplo (Suponiendo que el valor está en la celda A2)
USD dólares centavos =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","dólares"),"satang","centavos"))
GBP libras peniques =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","libras"),"satang","peniques"))
EUR euros centavos =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","euros"),"satang","centavos"))
MYR ringgit sen =PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(TRANSLATE(BAHTTEXT(A2),"th","en")),"baht","ringgit"),"satang","sen"))

Limitaciones de este método:

  • Solo funciona en Excel para Microsoft 365 (debido a la función TRANSLATE()).
  • La salida depende en gran medida de la precisión del formato BAHTTEXT().
  • Este método es adecuado para monedas que, como el Baht tailandés, tienen tanto una unidad principal como una subunidad (por ejemplo, dólares y centavos). No se recomienda para monedas que no siguen una estructura monetaria similar.

Método 2: Usar función definida por el usuario en VBA

En esta sección, aprenderás cómo usar una función definida por el usuario basada en VBA (UDF) para convertir valores numéricos en palabras de moneda en inglés, específicamente adaptada para dólares estadounidenses (USD) por defecto.

Paso 1: Insertar código VBA

  1. Abre la hoja de trabajo donde deseas usar esta característica.
  2. Presiona "Alt" + "F11" para abrir la ventana "Microsoft Visual Basic for Applications".
  3. En el editor, haz clic en "Insertar" > "Módulo", y pega el siguiente código VBA.
    Function SpellNumberToEnglish(ByVal pNumber)
    'Update by Extendoffice
    Dim Dollars, Cents
    arr = Array("", "", " Thousand ", " Million ", " Billion ", " Trillion ")
    pNumber = Trim(Str(pNumber))
    xDecimal = InStr(pNumber, ".")
    If xDecimal > 0 Then
        Cents = GetTens(Left(Mid(pNumber, xDecimal + 1) & "00", 2))
        pNumber = Trim(Left(pNumber, xDecimal - 1))
    End If
    xIndex = 1
    Do While pNumber <> ""
        xHundred = ""
        xValue = Right(pNumber, 3)
        If Val(xValue) <> 0 Then
            xValue = Right("000" & xValue, 3)
            If Mid(xValue, 1, 1) <> "0" Then
                xHundred = GetDigit(Mid(xValue, 1, 1)) & " Hundred "
            End If
            If Mid(xValue, 2, 1) <> "0" Then
                xHundred = xHundred & GetTens(Mid(xValue, 2))
            Else
                xHundred = xHundred & GetDigit(Mid(xValue, 3))
            End If
        End If
        If xHundred <> "" Then
            Dollars = xHundred & arr(xIndex) & Dollars
        End If
        If Len(pNumber) > 3 Then
            pNumber = Left(pNumber, Len(pNumber) - 3)
        Else
            pNumber = ""
        End If
        xIndex = xIndex + 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
    SpellNumberToEnglish = Dollars & Cents
    End Function
    Function GetTens(pTens)
    Dim Result As String
    Result = ""
    If Val(Left(pTens, 1)) = 1 Then
        Select Case Val(pTens)
            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(pTens, 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(pTens, 1))
    End If
    GetTens = Result
    End Function
    Function GetDigit(pDigit)
    Select Case Val(pDigit)
        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
    A screenshot showing the code editor
  4. Presiona "Alt" + "Q" para regresar a la hoja de trabajo.

Paso 2: Aplicar la función

  1. En una celda, ingresa la fórmula a continuación y presiona "Enter".
    =SpellNumberToEnglish(A2)
  2. Luego arrastra el controlador de relleno para aplicarlo a otras filas según sea necesario. Tus números ahora se mostrarán en palabras como:
    A screenshot showing the user-defined function and the results

Adaptar para otras monedas:

La función genera valores en “Dólar(es)” y “Centavo(s)”, que están codificados solo para USD. Si quieres convertir números en otras monedas, por ejemplo, "Libra Esterlina", necesitas cambiar manualmente las unidades mayor y menor en las siguientes líneas de código.

A screenshot showing how to change the codes to adapt for other currencies

Guardar el libro como un archivo habilitado para macros

Por defecto, las funciones VBA no se conservarán a menos que el libro se guarde como un libro habilitado para macros:

  1. Presiona "Ctrl" + "S" para guardar.
  2. Y selecciona el botón "Regresar" en el mensaje emergente sobre macros.
    Nota: Si el mensaje emergente solo muestra "Sí", "No" y "Ayuda", haz clic en "No".
    A screenshot showing how to change the codes to adapt for other currencies
  3. En la ventana "Guardar Como".
    1. Elige una ubicación para guardar.
    2. Selecciona "Libro Habilitado para Macros de Excel (*.xlsm)" en la lista desplegable "Guardar como tipo".
    3. Haz clic en "Guardar".
      A screenshot showing how to change the codes to adapt for other currencies

Limitaciones de la función VBA SpellNumberToEnglish

Sin soporte para múltiples idiomas
  • Esta función solo genera resultados en inglés.
  • No admite otros idiomas (por ejemplo, francés, alemán), ni maneja estructuras de moneda donde la unidad de moneda va antes del número (por ejemplo, “Rupias Cien” en inglés indio).
No guardado en archivos de Excel estándar
  • Si no guardas el libro como un libro habilitado para macros (.xlsm), la función se perderá cuando cierres Excel.
  • Si se guarda como un archivo normal .xlsx, todo el código VBA será eliminado.
Advertencia de seguridad de macros al compartir
  • Enviar el archivo habilitado para macros a otros activará un mensaje de advertencia de seguridad: “Macros han sido deshabilitadas” cuando se abra.
  • Algunos usuarios pueden dudar en habilitar macros, temiendo posibles riesgos de seguridad, y pueden optar por no usar el archivo.
Requiere conocimiento de VBA para personalización
  • Cualquier cambio en los términos de la moneda o el formato requiere editar manualmente el código VBA.
  • No es ideal para usuarios no familiarizados con macros o scripting.

Método 3: Usar Kutools para Excel (No se necesitan fórmulas ni VBA)

Si instalas "Kutools para Excel", usa su función "Números a Palabras" para convertir números en inglés (moneda u otra cosa), docenas de otros idiomas y monedas como EUR, GBP, JPY, etc.

Si buscas una solución sin código, amigable para el usuario y versátil para convertir números en palabras en Excel, Kutools para Excel ofrece una función dedicada “Números a Palabras” que soporta:

  • Inglés (USD, GBP, EUR, etc.)
  • Docenas de otros idiomas y monedas (por ejemplo, Yen japonés, Rupia india, Yuan chino)
  • Formato de moneda u palabras simples (por ejemplo, "Ciento Veintitrés" en lugar de "Ciento Veintitrés Dólares")

Pasos para usar:

  1. Selecciona las celdas que contienen los números que deseas convertir.
  2. Selecciona "Kutools" > "Texto" > "Números a Palabras".
  3. En el cuadro de diálogo "Números a Palabras de Moneda", necesitas:
    1. Elegir el idioma y el estilo de moneda que prefieras (por ejemplo, Inglés - Estados Unidos para USD)
    2. Haz clic en "Aceptar".
      A screenshot showing the numbers to currency word dialog box

Opcional: Marca "No convertir a moneda" si deseas palabras simples en inglés (sin "dólares" o "centavos").

Tus números seleccionados ahora serán convertidos en las palabras apropiadas de moneda, dependiendo de tus configuraciones.

Kutools para Excel - Potencia Excel con más de 300 herramientas esenciales. ¡Disfruta de funciones de IA gratis permanentemente! Consíguelo ahora


Operación inversa: Convertir palabras de moneda a números

Si tienes una lista de cantidades de moneda escritas en palabras en inglés, como:

"Ciento veintitrés dólares y cuarenta y cinco centavos"

y quieres convertirlas a números reales en Excel (por ejemplo, 123.45), puedes usar una función personalizada VBA User Defined Function (UDF) como sigue.

Paso 1: Abre el Editor de VBA e inserta código VBA

  1. Abre tu libro de Excel.
  2. Presiona "Alt" + "F11" para abrir el editor "Microsoft Visual Basic for Applications (VBA)".
  3. En el editor VBA, haz clic en "Insertar" > "Módulo".
  4. Copia y pega el siguiente código VBA en la ventana del módulo en blanco:
    Function WordsToNumber(ByVal Txt As String) As Double
    'Updated by Extendoffice
        Dim x As Object: Set x = CreateObject("Scripting.Dictionary")
        Dim units, tens, specials
        Dim part As String, parts() As String
        Dim total As Double, partial As Double, multiplier As Double
        Dim i As Long, word As String
        
        Txt = LCase(Trim(Txt))
        Txt = Replace(Txt, ",", "")
        Txt = Replace(Txt, "-", " ")
        Txt = Replace(Txt, " and ", " ")
        Txt = Replace(Txt, "  ", " ")
        
        ' Setup basic number words
        x.Add "zero", 0: x.Add "one", 1: x.Add "two", 2: x.Add "three", 3
        x.Add "four", 4: x.Add "five", 5: x.Add "six", 6: x.Add "seven", 7
        x.Add "eight", 8: x.Add "nine", 9: x.Add "ten", 10: x.Add "eleven", 11
        x.Add "twelve", 12: x.Add "thirteen", 13: x.Add "fourteen", 14
        x.Add "fifteen", 15: x.Add "sixteen", 16: x.Add "seventeen", 17
        x.Add "eighteen", 18: x.Add "nineteen", 19: x.Add "twenty", 20
        x.Add "thirty", 30: x.Add "forty", 40: x.Add "fifty", 50
        x.Add "sixty", 60: x.Add "seventy", 70: x.Add "eighty", 80
        x.Add "ninety", 90: x.Add "hundred", 100: x.Add "thousand", 1000
        x.Add "million", 1000000: x.Add "billion", 1000000000
        
        Dim dollarPart As String, centPart As String
        Dim dollarValue As Double, centValue As Double
        
        ' Split into dollars and cents
        If InStr(Txt, "dollar") > 0 Then
            dollarPart = Trim(Split(Txt, "dollar")(0))
        End If
        If InStr(Txt, "cent") > 0 Then
            centPart = Trim(Split(Txt, "cent")(0))
            If InStr(centPart, "dollar") > 0 Then
                centPart = Trim(Split(centPart, "dollar")(1))
            End If
        End If
        
        dollarValue = ParseWordsToNumber(dollarPart, x)
        centValue = ParseWordsToNumber(centPart, x)
        
        WordsToNumber = dollarValue + centValue / 100
    End Function
    
    Private Function ParseWordsToNumber(ByVal Txt As String, x As Object) As Double
        Dim parts() As String: parts = Split(Txt, " ")
        Dim total As Double, current As Double
        Dim i As Long, val As Double
        
        For i = 0 To UBound(parts)
            If x.exists(parts(i)) Then
                val = x(parts(i))
                Select Case val
                    Case 100
                        If current = 0 Then current = 1
                        current = current * val
                    Case Is >= 1000
                        If current = 0 Then current = 1
                        total = total + current * val
                        current = 0
                    Case Else
                        current = current + val
                End Select
            End If
        Next i
        
        total = total + current
        ParseWordsToNumber = total
    End Function

Paso 2: Aplica la función en tu hoja

  1. Presiona "Alt" + "Q" para regresar a Excel.
  2. En cualquier celda vacía, ingresa esta fórmula y presiona "Enter". Arrastra el "Controlador de Relleno" hacia abajo para obtener el resto de los resultados.
    =WordsToNumber(A2)
    A screenshot showing how to convert words to numbers

Conclusión

Convertir números en palabras — o palabras de vuelta a números — no es algo que Excel ofrezca de forma nativa, pero esta guía ha mostrado que hay múltiples soluciones prácticas dependiendo de tus necesidades:

  • Los usuarios de Microsoft 365 pueden aprovechar funciones modernas integradas como TRANSLATE para convertir números de moneda en palabras en inglés con fórmulas, especialmente para monedas que siguen una estructura de "unidad principal + subunidad".
  • Las funciones definidas por el usuario en VBA ofrecen mayor flexibilidad tanto para convertir números en palabras como para revertir palabras de moneda nuevamente a valores numéricos. Sin embargo, vienen con preocupaciones de seguridad relacionadas con macros y son más adecuadas para usuarios familiarizados con la programación.
  • Kutools para Excel ofrece la opción más fácil, multilingüe y rica en funciones, sin necesidad de fórmulas o codificación, cubriendo docenas de monedas e idiomas.
  • Si necesitas revertir palabras nuevamente a números, la solución VBA llena este vacío de manera efectiva, aunque puede requerir limpieza (por ejemplo, eliminar comas) para resultados precisos.

Ya sea que estés preparando documentos financieros, automatizando la impresión de cheques o simplemente mejorando la presentación de datos, elegir el método correcto te ayuda a lograr salidas profesionales y precisas.


Las mejores herramientas de productividad para Office

🤖 Asistente de IA de Kutools: Revoluciona el análisis de datos basado en: Ejecución inteligente |Generar código |Crear fórmulas personalizadas |Analizar datos y generar gráficos |Invocar funciones mejoradas
Funciones populares: Buscar, resaltar o marcar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda con múltiples criterios | Búsqueda de múltiples valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente listas desplegables | Lista desplegable dependiente | Lista desplegable con selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Cambiar la visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de libros y hojas de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Encriptar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtro negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas de combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y mucho más
Utiliza Kutools en tu idioma preferido: ¡compatible con Inglés, Español, Alemán, Francés, Chino y más de40 idiomas adicionales!

Impulsa al máximo tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para potenciar la productividad y ahorrar tiempo.Haz clic aquí para obtener la función que más necesitas...


Office Tab aporta una interfaz de pestañas a Office y hace tu trabajo mucho más sencillo

  • Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abre y crea varios documentos en nuevas pestañas de la misma ventana, en vez de en nuevas ventanas.
  • ¡Aumenta tu productividad hasta un50% y reduce cientos de clics de ratón cada día!