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. Buen dia ya instale el complemento en mi lap para cambiar a letra el numero pero al hacerlo en un hoja de excel marca error no se cual sea el problema

      Responder
    2. Hola, buenas tardes, estoy intentando quitar los centavos con la formula de izquierda como dijiste, pero no me deja, saludos desde Colombia

      Responder
        • =IZQUIERDA(NUMEROALETRA(A1),LARGO(NUMEROALETRA(A1) – 8))

          Estoy utilizando esta para poder eliminar los Centavos ya que en colombia casi no se necesitan.

    3. Hola! una pregunta:

      si tengo un número de serie que tenga letras y números e incluso guiones (ej. 526SRS346FGG) este complemento también lo puede transformar a letras?

      Responder
    4. hola tiene una gran funcionalidad solo que al agregar la formula me aparece el texto del numero así:
      CATORCE MIL QUINIENTOS VEINTIUN 23/100 y necesito que me aparezca así, que se puede hacer
      CATORCE MIL QUINIENTOS VEINTIUN PESOS 23/100

      Responder
    5. Buen día Gerardo
      Te saludo desde Guatemala
      Estoy interesado en el complemento de Numletras serias tan amable de enviármelo a mi correo para poder usarlo ya que en mi trabajo me seria muy útil
      De antemano se te agradece
      Feliz día y bendiciones

      Responder
    6. Gerardo, la información y gruía que brindas es muy bueno, podrías enviarme el archivo o link, para instalar el complemento, por favor…?

      Responder
    7. Hola, en mi Mac no aparecen la palabra pesos, asi lo convierte, ONCE MIL 00/100 M.N=(NumLetras(E2) & «M.N») que puedo hacer para que sea ONCE MIL PESOS 00/100 M.N . Cabe mencionar que si escribo la formula como comentas (=NUMEROALETRA(E2) ) y así no me funciona . Gracias

      Responder
      • Que tal Nicolas, me ayudas a verificar que función es la que estás usando?. Este complemento es personalizado así que la función que debes usar es NUMEROALETRA después de instalar el complemento. Si requieres ayuda para ello, quedo atento a tu respuesta.

        Responder
    8. Hola en mi Mac no aparecen la palabra pesos, asi lo convierte, ONCE MIL 00/100 M.N=(NumLetras(E2) & «M.N») que puedo hacer para que sea ONCE MIL PESOS 00/100 M.N . Cabe mencionar que si escribo la formula como comentas (=NUMEROALETRA(E2) ) y así no me funciona . Gracias

      Responder
    9. Hola Gerardo.. Instalé el complemento pero para cifras desde un millardo en adelante me sale error de #¡VALOR!. Veo que al final de la función se evalúa si la cifra es mayor o igual a un millardo para colocar en letras «MILLARDO» o «MILLARDOS». Puedes por favor verificar y enviarme el complemento a mi correo. Para cifras menores funciona perfectamente. Muchas gracias de antemano.

      Responder
      • Buenas Miguel ✌, lo sentimos este complemento no funciona con cifras más haya de los miles de millones como en tu caso. Una disculpa, saludos!

        Responder
    10. Buenas tardes Gerardo, soy nuevo en esta tu pagina y si llegué aquí es porque requiero de tus conocimientos en excel. Yo vi tu video completo pero no me ayuda en lo que yo requiero y quería saber si existe una manera en Excel de hacerlo, te explico. Yo trabajo en una Institución educativa y aquí siempre lo que respecta a las calificaciones de los alumnos lo habían hecho de manera manual. Y me propuse hacer una base de datos en Excel y lo logre, pero tengo solo un inconveniente que no me ha dejado cumplir 100% mi objetivo y es transformar en letras las calificaciones de los alumnos y te presento un ejemplo ya que estaría trabajando con 4 decimales:
      17,1000 = diecisiete con mil diezmilésimas
      Eso es lo que me esta complicando el asunto, sera que me puedes ayudar con el procedimiento correcto o la sintaxis a utilizar en excel (estoy trabajando con Excel 2010)

      Responder
      • Que tal Jorge ✌, gracias por tus comentarios. Desafortunadamente, esta función no está diseñada para ello, por consecuente no es posible obtener ese resultado. Así que para lograrlo hay que desarrollar una función desde cero 🤷‍♂️. Lo sentimos un saludo!

        Responder
    11. hola. buenas tardes, quisiera pedirte tu apoyo, estoy usando la funcion numero a letra y me funciona bien, pero necesito encerrar el resultado entre parentesis, como puedo hacerlo. gracias

      Responder
      • Que tal Noe, respondiendo tu pregunta tendrías que hacer algo como lo siguiente: =»(» & NUMEROALETRA(A1) & «)», espero que esto solucione lo que necesita.

        Responder
      • Buenas tardes Carolina, por el momento eso no es posible usando esta herramienta, ya que tendríamos a usar una mega fórmula para lograrlo: =IZQUIERDA(NUMEROALETRA(A1),LARGO(NUMEROALETRA(A1))-13) & » y » & DERECHA(NUMEROALETRA(A1),6) & » soles»

        Responder

    Deja un comentario

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