Convertir número a letra en Excel (2025): mi forma rápida, sin errores y con moneda

Compatible con Excel 2016, 2019, 2021 y 365 · Incluye complemento nativo

GC
Gerardo Castro
Ing. Programador VBA y .NET · NEXEL
Actualizado 2025 ⭐ 4.9 / 5
★★★★★
+320 lectores usan el complemento NUMEROALETRAX en sus facturas
KP JR MB RA
Oferta activa — 50% OFF

Complemento NUMEROALETRAX

Para Excel 2016, 2019, 2021 y 365

$ 49 $99
MXN · IVA incluido
Ahorras $50 MXN hoy
  • Una fórmula, sin código VBA
  • MXN, USD, EUR y más monedas
  • Mayúsculas con parámetro
  • Centavos opcionales (0 ó 1)
  • Sin límite de monto
  • Soporte por email incluido
Comprar ahora — $49 MXN → Ver demo en video
🔒 Pago seguro 📥 Descarga inmediata ✉️ Soporte

Lo que dicen los usuarios
Karen P. ★★★★★
Asistente Administrativa
"Lo uso en mis facturas diarias. Ya no capturo los importes a mano."
Jesús R. ★★★★★
Contador Público
"Funciona perfecto en mi Excel 365. Instalación rápida y soporte muy atento."
Juan Pablo G. ★★★★☆
Coordinador de Nómina
"Muy útil para recibos de nómina. Antes tardaba 10 min, ahora es automático."

¿Vas con prisa y necesitas 1,234.56 como texto en segundos? Yo también estuve ahí. En este post te muestro las dos rutas que uso:

  • La gratuita (macro/fórmula personalizada).
  • Mi complemento NUMEROALETRAX,  instalo en 1 minuto, maneja moneda, mayúsculas y centavos sin fórmulas extra.

Convertidor Online de Número a Letra


Prueba aquí antes de instalar nada:

Historial de conversiones (sesión actual):

    ⚠️ Este convertidor funciona en el navegador, no dentro de Excel. Para usar esta función directamente en tus facturas, contratos o recibos con una sola fórmula nativa → ver NUMEROALETRAX

    Fórmula manual vs complemento NUMEROALETRAX

    ¿Quieres aprender a automatizar tareas con macros en Excel?

    Apúntate al curso en linea para convertirte en un crack de las automatizaciones con macros de Excel


    Antes de explicar cómo funciona cada método, aquí la comparativa directa para que decidas cuál te conviene:

    Características Fórmula manual (gratis) NUMEROALETRAX ($49 MXN)
    Funciona en Excel
    ✖️ Requiere código VBA
    ✅ Instalación en 1 min
    Manejo de moneda
    ✖️ Necesita función SUSTITUIR
    ✅ Parámetro MXN, USD
    Resultado en mayúsculas
    ✖️ Necesita anidar MAYUS()
    ✅ Parámetro incluido
    Quitar centavos
    ✖️ Fórmula IZQUIERDA + LARGO
    ✅ Parámetro 0 ó 1
    Compatible Excel 365
    ✖️ Puede bloquearse por seguridad
    ✅ Certificado 2016 – 365
    Soporte
    ✖️ Comunidad
    ✅ Email directo incluído

    Mira cómo funciona NUMEROALETRAX en Excel real


    En menos de 90 segundos verás la instalación completa y la fórmula funcionando en una factura real.<
    Lo que verás en el video
    Instalación en 1 minuto
    Cambio de moneda
    Mayúsculas y centavos
    ¿Listo para instalarlo en tu Excel?
    $49 MXN · IVA incluido · Descarga inmediata
    Comprar ahora →
    Opción gratuita

    El código VBA básico — sin costo

    Si solo necesitas la conversión simple y los montos no superan $9,999,999, aquí está el código. Sin trucos, sin registro.

    Cómo instalarlo
    1. 1
      Abre Excel y presiona Alt + F11 para abrir el Editor VBA.
    2. 2
      Ve a Insertar → Módulo y abre un módulo en blanco.
    3. 3
      Pega el código de abajo en el módulo.
    4. 4
      Cierra el editor y guarda el archivo como .xlsm (libro con macros habilitadas).
    5. 5
      Usa =NUMEROALETRA(A1) en cualquier celda.

    ⚠️ Limitaciones de esta versión

    • Solo convierte hasta $9,999,999 — montos mayores devuelven error.

    • Sin parámetro de moneda — siempre dice «Pesos», necesitas anidar SUSTITUIR().

    • Sin mayúsculas — necesitas anidar MAYUS() por fuera.

    • Debes guardar como .xlsm cada vez — los archivos .xlsx pierden la macro.

    • Excel 365 puede bloquearlo por políticas de seguridad corporativas.
    ¿Necesitas montos mayores, moneda, mayúsculas o sin .xlsm?


    Ver NUMEROALETRAX — $49 MXN →

    ¿Quieres aprender Excel desde Cero?
    Inscríbete GRATIS y conviértete en un master en Excel

    NUMEROALETRA_basica.bas

    ' ╔══════════════════════════════════════════╗
    ' ║  NUMEROALETRA — Versión gratuita básica  ║
    ' ║  Límite: hasta $9,999,999                ║
    ' ║  Sin parámetros de moneda ni mayúsculas  ║
    ' ║  Versión completa: nexel.com.mx          ║
    ' ╚══════════════════════════════════════════╝
    
    Function NUMEROALETRA(numero As Double) As String
    
        ' Límite de la versión gratuita
        If numero >= 10000000 Then
            NUMEROALETRA = "#LÍMITE: para montos mayores usa NUMEROALETRAX"
            Exit Function
        End If
    
        Dim entero As Long
        Dim cents  As Integer
        entero = Int(numero)
        cents  = Round((numero - entero) * 100)
        NUMEROALETRA = NumALetra(entero) & " Pesos " & Format(cents, "00") & "/100"
    
    End Function
    
    Private Function NumALetra(n As Long) As String
        Dim u(19) As String
        Dim d(9)  As String
        Dim c(9)  As String
    
        u(1)="Uno":     u(2)="Dos":       u(3)="Tres"
        u(4)="Cuatro":  u(5)="Cinco":     u(6)="Seis"
        u(7)="Siete":   u(8)="Ocho":      u(9)="Nueve"
        u(10)="Diez":   u(11)="Once":     u(12)="Doce"
        u(13)="Trece":  u(14)="Catorce":  u(15)="Quince"
        u(16)="Dieciséis": u(17)="Diecisiete"
        u(18)="Dieciocho":  u(19)="Diecinueve"
    
        d(2)="Veinte":    d(3)="Treinta"
        d(4)="Cuarenta":  d(5)="Cincuenta"
        d(6)="Sesenta":   d(7)="Setenta"
        d(8)="Ochenta":   d(9)="Noventa"
    
        c(1)="Ciento":      c(2)="Doscientos"
        c(3)="Trescientos":  c(4)="Cuatrocientos"
        c(5)="Quinientos":   c(6)="Seiscientos"
        c(7)="Setecientos":  c(8)="Ochocientos"
        c(9)="Novecientos"
    
        If n = 0   Then: NumALetra = "Cero": Exit Function
        If n = 100 Then: NumALetra = "Cien":  Exit Function
    
        Dim r As String: r = ""
    
        If n >= 1000000 Then
            r = NumALetra(n \ 1000000) & " Millón"
            If n \ 1000000 > 1 Then r = r & "es"
            n = n Mod 1000000
            If n > 0 Then r = r & " "
        End If
    
        If n >= 1000 Then
            If n \ 1000 = 1 Then
                r = r & "Mil"
            Else
                r = r & NumALetra(n \ 1000) & " Mil"
            End If
            n = n Mod 1000
            If n > 0 Then r = r & " "
        End If
    
        If n >= 100 Then
            r = r & c(n \ 100)
            n = n Mod 100
            If n > 0 Then r = r & " "
        End If
    
        If n >= 20 Then
            r = r & d(n \ 10)
            If n Mod 10 > 0 Then
                r = r & " y " & u(n Mod 10)
            End If
        ElseIf n > 0 Then
            r = r & u(n)
        End If
    
        NumALetra = r
    End Function

    ¿Ya ves cuántas fórmulas extra necesitas?
    Con NUMEROALETRAX todo es un solo parámetro. Sin .xlsm, sin bloqueos, sin límite de monto.

    Probar NUMEROALETRAX — $49 →

    Guía express (respuesta corta para salir del paso)


    Si ya tienes el complemento instalado, el flujo completo es:

    1. Abre Excel y tu archivo.
    2. Escribe el número en una celda (ej.1234.56 en A2).
    3. En la celda destino, escribe la fórmula=NUMEROALETRAX(A2,»PESO»,1,1)
    4. El resultado:MIL DOSCIENTOS TREINTA Y CUATRO PESOS CON CINCUENTA Y SEIS CENTAVOS
    // Sintaxis completa
    =NUMEROALETRAX(A2, "PESO", 1, 1)
    // ↑ ↑ ↑ ↑
    // celda moneda MAYUS centavos

    Instalar el complemento de Excel


    Una vez realices la compra, recibirás un enlace de descarga. El proceso de instalación es el siguiente:

    1. Descarga el archivo y colócalo en el Escritorio.
    2. Copia el archivo Funcion Numero a Letra.xlam a:
      C:\Users\[NombreUsuario]\AppData\Roaming\Microsoft\Complementos
    3. Abre Excel → Archivo → Opciones → Complementos → IR…
    4. Activa el complementoFunción Numero a Letray haz clic en Aceptar.

    ¿Cómo cambiar el tipo de moneda?


    Con la versión básica necesitas anidar la función SUSTITUIR. Por ejemplo, para cambiar de Pesos a Soles:

    =SUSTITUIR(NUMEROALETRA(A1),"Pesos", "Soles")

    Con NUMEROALETRAX simplemente cambias el segundo parámetro:

    =NUMEROALETRAX(A1, "SOL", 1, 1)
    =NUMEROALETRAX(A1, "USD", 1, 1)
    =NUMEROALETRAX(A1, "EUR", 1, 1)

    ¿Cómo convertir el resultado en MAYÚSCULAS?


    Con la fórmula básica, anidas la función MAYUS():

    =MAYUS(NUMEROALETRA(A1))
    // Resultado: MIL DOSCIENTOS CUARENTA PESOS 78/100

    Con NUMEROALETRAX, el tercer parámetro controla las mayúsculas: 1 = mayúsculas, 0 = minúsculas.

    ¿Cómo quitar los centavos del resultado?


    Con la versión básica necesitas esta fórmula compuesta:

    =IZQUIERDA(NUMEROALETRA(A1),LARGO(NUMEROALETRA(A1))-8)

    Con NUMEROALETRAX, el cuarto parámetro en 0 elimina los centavos:

    Gerardo Castro

    Ing. Programador VBA y .NET
    Me encanta programar en Excel y buscar nuevas formas de hacer las tareas más rápido.
    =NUMEROALETRAX(A1, "PESO", 1, 0)
    // Resultado: MIL DOSCIENTOS CUARENTA PESOS

    320 comentarios en «Convertir número a letra en Excel (2025): mi forma rápida, sin errores y con moneda»

    1. Buenas tardes Gerardo.
      MUchas gracias por la fórmula y archivo que compartes.
      Soy de Colombia y no se como convertir en pesos colombianos, utilice lo de sustituir, pero como ambos son en pesos. Solo que no quiero que salga la fracción del final.

      Responder
    2. BUEN DÍA. LA FORMULA ME SIRVIÓ MUCHO UNICAMENTE TENGO UNA DUDA AL CONVERTIR A LETRAS ME APARECE POR EJEMPLO DOS MIL 10/100 PESOS, ME PUEDE INDICAR COMO HACER PARA QUE APAREZCA: DOS MIL PESOS 10/100 M.N.

      Responder
    3. Hola Gerardo, Soy de Hidalgo, México. No sabes como me sirve este complemento ya logré hacerlo y ya funcionó excelente, sólo me gustaría si pudieras ayudarme para que la cantidad en letra aparezca entre paréntesis, ejem: (DOS MIL PESOS 10/100 M. N.)
      Gracias mil por tu ayuda es invaluable, tenía tiempo pensando como hacer esto pero nadie me resolvía.

      Responder
        • MUCHÍSIMAS GRACIAS GERARDO DE VERDAD TU AYUDA ES INVALUABLE, NO SABES CUANTO ME FACILITÓ EN VARIAS FUNCIONES MI TRABAJO, DE VERDAD TE ESTOY MUY AGRADECIDA.
          ABUSANDO, TENGO OTRA PREGUNTA: USANDO ESTA FUNCIÓN PARA LA FECHA ACTUAL =SUMA(HOY()) ME DA COMO RESULTADO: 13 de diciembre de 2019, LO QUE QUIERO ES QUE ME APAREZCA CON MAYUSCULAS, ¿CÓMO LO PUEDO HACER?

        • MIl gracias Gerardo, estoy sumamente agradecida contigo.
          Pero como siempre surgen nuevas dudas, fíjate que tengo que hacer varias nominas semanales a partir de diciembre, quiero facilitarme el trabajo para importar el archivo al sistema, sin embargo la información que me esta pasando el área responsable en Excel el nombre de los trabajadores vienen completos nombre y apellidos en una sola columna, como puedo hacer para o que formula debo emplear para que me los separe en diferentes columnas; ¿podrías ayudarme con esto? a mi me hace suponer que debe existir una función para esto si existe para unir en texto varias columnas debe haber para desunir. Ojala pudieras ayudarme

        • QUE CREES QUE CUANDO USA LA FUNCIÓN =MAYUSC(SUMA(HOY())) ME APARECE 43866, NO SE A QUE SE DEBA

        • Hola Gerardo
          Nuevamente agradeciendote por esta excelente aportacion. Ya hice lo del cambio de moneda. Ahora el problema es que cuando interviene el numero 21 en vez de decir «Veintiun pesos» dice «Veintiuno pesos » o en vez de decir «Veintiun mil pesos » dice «Veintiuno mil pesos». Y como use la funcion SUSTITUIR para que me cambiara los «Pesos » por mi moneda ya no puedo usarla para cambiar «Veintiuno».
          Me podrías auxiliar con este caso?

          Saludos

        • MIl gracias Gerardo, estoy sumamente agradecida contigo.
          Pero como siempre surgen nuevas dudas, fíjate que tengo que hacer varias nominas semanales a partir de diciembre, quiero facilitarme el trabajo para importar el archivo al sistema, sin embargo la información que me esta pasando el área responsable en Excel el nombre de los trabajadores vienen completos nombre y apellidos en una sola columna, como puedo hacer para o que formula debo emplear para que me los separe en diferentes columnas; ¿podrías ayudarme con esto? a mi me hace suponer que debe existir una función para esto si existe para unir en texto varias columnas debe haber para desunir. Ojala pudieras ayudarme

        • Que tal Mario ????, lamentablemente por el momento esto con es posible con el complemento. Una alternativa sería crear una fórmula de sustituir con cada palabra a cambiar. ????‍♂️

    4. Hola Gerardo, buen día;

      Me funciono bien, sin embarqo cuando envíe el archivo a otra computadora que tambien tiene este complemento, al momento de habilitar el contenido aparece como «#¿NOMBRE? ¿Esto a qué se debe?

      Responder
    5. EN MI HOJA DE EXXEL AGREGO LA FORMULA EN LA CELDA PERO NO HACE LA FUNCIÓN, SE QUEDA LA FORMULA ESCRITA TAL Y COMO SE INGRESA NO SE VISUALIZA EL TEXTO DE LA CIFRA.

      Responder
    6. Hola Gerardo….
      Lo primero darte las gracias por tu ayuda,pues el complemento funciona perfecto.
      Sin embargo,no consigo que me funcione la funcion SUSTITUIR.
      Ingreso correctamente la sintaxis,respetando mayusculas y minusculas,parentesis y comas y me da error en la formula.
      Se te ocurre que podria estar ocurriendo?
      Un saludo cordial

      Responder
      • Que tal Alex, antes que nada es un gusto enorme leerte y saber que esta herramienta te es de ayuda ????. En cuanto a lo que me comentas de la función SUSTITUIR, puede ser por varias razones, pero por la que más me inclino es por el idioma de tu Excel. ???? ¿Qué es exactamente lo que necesitas?

        Responder
    7. Me ayudo mucho la formula para aplicarlo para lo que necesito, la verdad muchas gracias, me ayudaste a que pudiera automatizar un formato que tengo y así evitar estar escribiendo las letras de los números.

      Saludos

      Responder

    Deja un comentario

    Artículo añadido al carrito.
    0 artículos - $0.00