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, COMO SIEMPRE UN PLACER PODER SALUDARTE, TODO LO QUE NOS APORTAS PARA LA MEJORA DE NUESTRO TRABAJO ES INVALUABLE, Y POR SUPUESTO MUY AGRADECIDA PORQUE HE APRENDIDO MUCHO DE TI Y DE TODO LO QUE PUBLICAN.
      NO SE SI PUDIERAS AYUDARME, TENGO UN ARCHIVO O LIBRO, CON VARIAS HOJAS Y DIFERENTES DATOS PERO DE ALGUNA MANERA TODOS SE RELACIONAN, QUISIERA PODER JALAR LA INFORMACIÓN DE UNAS COLUMNAS QUE SON LAS MISMAS EN UNA HOJA A OTRA QUE REQUIERE LO MISMO, QUE FORMULA DEBO MANEJAR, YA LO INTENTE PERO NO LO LOGRO, ¿PODRIAS ASESORARME POR FAVOR?

      Responder
    2. Hola buenas noches , muchas gracias por el complemento , he estado buscando en las preguntas pero no logro encontrar lo que busco , ya probé la fórmula y si me da pero 00/100 y yo necesito sólo el número es decir que diga » Diez » y no «Diez 00/100 » ¿ hay alguna forma de quitar el 00/100 ? Mil gracias!

      Responder
    3. Hola Gerardo,
      Gracias por el video !! Soy de Peru y quisiera saber como podria hacer que salga en letra lo siguiente 200.35
      Doscientos con 35/100 Nuevos Soles y en tu publicación la moneda esta adelante existe alguna manera de poner como mi ejemplo. espero tu ayuda.

      Responder
    4. Buena tarde, de antemano agradezco el apoyo,
      Como puedo colocar el M.N y que me quede entre parentesis?
      es decir : (DIEZ MIL PESOS 00/100 M.N.)

      Gracias. Saludos!

      Responder
    5. Hola, en mi pc, en la unidad c: no encuentro a partir de AppData en adelante para poder guardar el archivo

      C:\Users\[NombreUsuario]\AppData\Roaming\Microsoft\Complementos

      Me puedes ayudar?

      Gracias

      Responder
      • Hola César ????, siendo sincero no lo hemos usado en calificaciones, pero debes tener en cuenta lo siguiente, la conversión para 9.6 será «Nueve Pesos 60/100», entonces si necesitas convertir también los centavos habrá que hacer algunos ajustes a la función.
        Si necesitas asistencia, no dudes en responder y con gusto te asesoramos.

        Responder
    6. Hola Gerardo, que tal, te molesto para saber si puedo añadir asteriscos (***) en la función de numeroaletra, ejemplo: **** Siete Mil Cuatrocientos Cuarenta Pesos con 00/100 **** y como puedo hacerlo.
      Megustaría saber si se puede o no, espero tu respuesta.
      Saludos!!!

      Responder
        • Muchas gracias, me funcionó perfecto, la consulta es…
          Como puedo combinarlo con la función de cambiar el tipo de moneda, por mi moneda local y aún asi que lleve los asteriscos (****), ejemplo: **** Un Mil Noventa y Cuatro Lempiras con 00/100 ****
          Te leo, y te agradezco de antemano tu ayuda y atención hacia mi problema
          Saludos!!!

        • De nada Juan, un gusto. Para cambiar la moneda, consulta la sección de CAMBIAR EL TIPO DE MONEDA, ahí mismo explicó la función adicional que debes utilizar para ello. Esta función debes usarla dentro de la fórmula anterior de los asteriscos ????

    7. hola buen dia tengo problemas para descargar el complemento al dar clic al link que me enciara a la descargar solo me aparece puro texto que ´puedo hacer

      asi es lo que me aparece

      PK�����!����~������[Content_Types].xml

      Responder
      • Perdón Mónica, no entiendo tu pregunta. He revisado los enlaces y están funcionando correctamente desde Chrome y Edge, si lo que te refieres es al contenido del archivo, esto es esperado, si intentas abrirlo desde Excel u otra aplicación no será legible, debes seguir el procedimiento de instalación para poder usar la función en Excel ????

        Responder
      • Olivda el comentario, logré resolver el problema…
        He aquí como lo resolví, =»***»&SUSTITUIR(NUMEROALETRA(H49);»Pesos»;»Lempiras»)&»***» y me resultó de maravilla!!
        Gracias amigo y éxitos en tus futuros planes, me gustaría saber mas de este tipo de funciones de excel!

        Responder
    8. Buenos dias, no se que pasa pero no me descarga el archivo para convertir numeros a letras. llega a mi correo pero cuando lo trato de descargar se me desconfigura y no descarga. Que estara pasando?

      Responder
      • Que tal Jafet, puedes ser más específico cuando dices que se desconfigura?. Descargar el complemento es el primer paso, luego debes seguir las instrucciones del artículo para instalar el complemento.

        Responder
      • Hola Gerardo, por fin pude usar la opción sustituir, Ejemplo. =SUSTITUIR(NUMEROALETRA(A1);(«Pesos»);(«Gs.»)), en vez de la coma usé punto y coma y ahi me funcionó bien…. RESULTADO: Un Millón Quinientos Veintisiete Mil Doscientos Treinta y Seis Gs. 00/100, ahora si me puede ayudar para sacar el 00/100

        Responder
        • Gracias Gerardo, ahora bien habría posibilidad de sacar los centavos?? en mi pais no usamos centavos.. 00/100 asi me sale el texto…

    9. No me funciona =SUSTITUIR(NUMEROALETRA(A1),”Pesos”, “Soles”) me da error »#¡VALOR!» y me sombréa la parte que dice ,”Pesos”, no creo escribirlo mal ya que descargué el archivo tal y como dices.
      Me puedes ayudar!!???

      Responder
      • Hola Juan Pablo ????, habrá que hacer algunas pruebas para que ver que todo funcione correctamente.
        1. Primero que nada, después de haber hecho la instalación probaste sólo la función NUMEROALETRA(A1) ?,
        2. La versión que utilizas de Excel es la versión en Español?,
        3. Me da la impresión de que el complemento no se instaló correctamente o en su defecto se desconfiguró, me ayudas a corroborar?

        Quedo atento a tus comentarios.

        Responder
        • Si prové la función, y funcionó correctamente pero a la hora de querer cambiar la moneda de »Pesos» a Lempiras (Mi moneda local) no me lo permite.
          La versión de excel creo que es en inglés no se como corroborar si es versión en inglés o español, es Microsoft Excel 2016.
          Los términos de licencia de Software me salen en inglés, supongo que es versión en ingles no!??

        • No me da la opción »SUBSTITUTE», me temo que la versión de excel que tengo es versión en español, aún sigue sin darme funcionamiento en la formula anteriormente detallada en mis comentarios, no se que pueda hacer!!!

        • Hola Juan, si otra cosa que podemos intentar es sustituir las comas (,) por punto y coma (;) algunas versiones de Excel, utilizan está nomenclatura, inténtalo y me comentas ????

        • Hola Gerardo, el problema sigue siendo el mismo, tal vez se desconfiguró, así como dices, ya intenté de todo y no me funciona nada, me da el error de ”#¡VALOR!” y de ”#¡NOMBRE!”, muchas gracias por tu apoyo a querer responder mis incógnitas sobre esta opción pero no se que más pueda estar haciendo mal.
          Saludos!!!

        • Juan Pablo, el error de nombre, inicia que alguna función no ha sido detectada, probablemente de la NUMEROALETRA debido a la desconfiguración. El error de VALOR supongo que se genera debido al anterior. Te recomiendo volver a seguir el proceso desde cero.

      • Hola Gerardo, te saluda Claudelino desde Ciudad del Este, Paraguay… He recibido el complemento para convertir numeros en letras, lo cual ya probé y funciona una maravilla con la moneda Pesos…… Resulta que la factura que uso ya tiene la moneda de mi pais que es el Guarani, como hago para eliminar la moneda y que me aparezca solo la cantidad… Excelente la Guia.. Mil gracias, felicitaciones!!!!

        Un abrazo…

        Responder
        • Hola Claudelino ????, me podrías indicar la función que estás utilizando actualmente y cuál es el resultado que obtienes?, un error o alguna ventana?

          Gracias por tus comentarios.
          Saludos!

      • Olvida el comentario anterior, el problema lo tenía en las Comillas («»), no escrib´ra las correctas en la fórmula, gracias por tu apoyo, excelente tu trabajo por cierto, me alegra haber encontrado esta página.
        Saludos!!!

        Responder
      • Me parece que hay un error en tu fórmula, por favor intenta esto: =SUSTITUIR(NUMEROALETRA(B9);»Pesos»;»Soles»)
        Quitando los espacios y colocando punto y coma para separar.

        Responder
      • Hola Daniel ????, para lograr lo que comentas basta hacer algo muy similar a lo que se hacer para escribir el «M.N.» que es concatenar el palabra «SON», esto lo puedes lograr con esto: ???? =»SON» & NUMEROALETRA(A1) & «M.N.»

        Responder
    10. hola buen día, quiero saber si hay alguna formula en la que al escribir un numero en una celda, se cambien el valor de la misma celda en una palabra especifica, por ejemplo: al escribir 1 en la celda cambie el valor a hombre y al poner 2 cambie el valor de la misma celda a mujer?

      Responder
      • Que tal Gerso ????, esto es posible usando la función SI, solo tendrías que colocar =SI(A1=1,»Hombre»,»MUJER»), lo que no es posible es cambiar el valor de la misma celda donde estas escribiendo el valor

        Responder
    11. HOLA, QUISIERA SABER COMO CONVERTIR NUMEROS DECIMALES A LETRAS PERO QUE NO ME PRESENTE EL PROBLEMA DE QUE , CUANDO ESCRIBO 7,09 ASUME Y CONVIERTE EN » SIETE COMA NUEVE» Y NO SIETE COMA CERO NUEVE.

      Responder

    Deja un comentario

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