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


    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 →

    Gratis

    ¿Quieres automatizar tu trabajo en Excel? Empieza gratis

    Accede al curso gratuito de Excel y da tu primer paso hacia las macros sin necesidad de saber programar.

    Acceder gratis →

    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. Gerardo
      A la planilla de excel mía o al archivo que me enviaste… es al que tengo que hacerle ese proceso que me enviaste «Debes activar los permisos adecuados al archivo, para ello, ve a la ruta donde dejaste la plantilla, haz clic derecho / propiedades, y desactiva los atributos de Oculta y Sólo Lectura».

      Responder
    2. Buenas Tardes
      Gerardo Castro

      Excelente archivo, pero cada vez que cierro el archivo de Excel y lo abro después se me borra la fórmula de la función Numero a Letra y me toca nuevamente hacer el proceso… que debo hacer para que esto no me suceda…

      esto es lo que me sale en LA SUMA DE: #¿NOMBRE?

      Te agradezco de antemano tu colaboración

      Responder
      • Hola Samuel, esto se debe a una cuestión de permisos. Debes activar los permisos adecuados al archivo, para ello, ve a la ruta donde dejaste la plantilla, haz clic derecho / propiedades, y desactiva los atributos de Oculta y Sólo Lectura. Si esto no soluciona tu problema, házmelo saber para ayudarte mejor.

        Responder
      • Que tal Saúl 👍, sólo hay que hacer clic en el botón de descarga, y te pedirá tu correo para enviar el complemento a tu bandeja de mail.

        Responder
      • Hola Rubén 👍, te refieres a que la primera vez que lo activaste si funcionó o ahora ya funciona?, Si es así hay que activar los permisos adecuados al archivo, para ello, ve a la ruta donde dejaste la plantilla, haz clic derecho / propiedades, y desactiva los atributos de Oculta y Sólo Lectura. Si esto no soluciona tu problema, házmelo saber para ayudarte mejor.

        Responder
      • Lisandro ✌️, si la ruta que se menciona en el artículo no te aparece, puedes intentar crear la carpeta directamente en C:\ e instalar el complemento ahí mismo. Si necesitas más apoyo, quedo atento

        Responder
      • Que tal José Ignacio, lo siento no te puedo ayudar, ya que la función que comentas no la conozco y es distinta a la de este artículo (NUMEROALETRA) 😉

        Responder
    3. hola! no he podido activar la función tengo el paquete Microsoft 365, será por eso? pude descargar el archivo copiarlo en la carpeta de complementos y dale ejecutar, pero al abrir el Excel no aparece la Función;

      Responder
      • Que tal Cinthya, tienes que seguir los pasos de instalación, una vez copias el archivo en la ruta, tienes que un archivo de Excel en blanco y continuar el proceso para activar el complemento 😉, si tienes problema con este proceso, espero tu respuesta 👍

        Responder
      • Que tal Cinthya, quizás te falte activar el complemento, una vez coloques el archivo en la ruta, abre un nuevo libro de Excel y sigue los pasos de activación. Si tienes algún problema me comentas 😉

        Responder
    4. Cómo QUITAR los CENTAVOS del resultado
      Si en tu caso, la moneda de tu país no maneja centavos y sólo quieres mostrar la conversión de los números enteros, deberás usar una función como la que sigue 😨

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

      Usa esa función y no me sirve, me sale un mensaje que dice hay un problema con esta formula, todo lo demás me funciona perfectamente

      Responder
      • Pablo 😉, al parecer a el guión (-) que indica la resta no lo está reconociendo correctamente Excel, reemplazalo por el carácter correcto y deberá funcionar 👍

        Responder
    5. Hola, una pregunta, como puedo poner la palabra «PESOS» antes que los decimales en el importe con letra ??? con la fórmula me aparece primero «88/100» y luego la palabra «PESOS»

      Responder
      • Elizabeth 👋, no entiendo tu pregunta 😅, acabo de realizar una prueba con 288.69 y el resultado es Doscientos Ochenta y Ocho Pesos 69/100, ¿qué resultado te devuelve a ti?

        Responder
        • ESTA MUY BIEN EL APORTE PERO TENGO UN PROBLEMA, SIEMPRE TENGO QUE ESTAR DANDOLE LA UBICACION DEL ARCHIVO NO QUEDA POR DEFECTO

        • Que tal David 🖐, esto es problema de permisos en el archivo, para solucionarlo hay que ir a la ruta donde tienes el complemento, hacer clic derecho / propiedades, y desactivar los atributos de Solo Lectura ú Oculto, con esto ya no deberías elegir la ubicación cada vez que abras un archivo nuevo.

    6. PARA NO BAJAR EL COMPLEMENTO SE DEBE HACER LO SIGUIENTE:

      =CONCATENAR(NumLetras(H5);» DOLARES»)

      COLOCAR EN (H5) el importe y listo

      Responder
      • Que tal Emilio ✌, el problema es que la función NUMLETRAS no existe por defecto en Excel, así que si no aparece, deberás descargar el complemento o crearla por tu cuenta 🤷‍♂️

        Responder

    Deja un comentario

    Artículo añadido al carrito.
    1 artículo - $79.00