Número a Letras

Cantidad con letra en pesos (M.N.), soles o euros — para facturas, cheques y documentos legales.

100% en tu navegador — no se sube nada

Número a Letras

Escanea con la cámara del celular para abrir esta página

sofritools.com/es/numero-a-palabras/

WhatsApp

Convierte un número a letras — cantidad con letra para facturas y cheques en pesos, soles o euros

Decimales: usa punto o coma — 99.5 o 99,5.

Cómo se escribe una cantidad con letra

Respuesta rápida: para una factura en México, $1,234.56 se escribe «MIL DOSCIENTOS TREINTA Y CUATRO PESOS 56/100 M.N.» — la cantidad en letras, la palabra PESOS, los centavos como fracción de 100 y M.N. (moneda nacional) al final; sin centavos se pone 00/100. Escribe cualquier número arriba y obtienes la cantidad con letra lista para copiar, en pesos mexicanos o en el formato de Colombia (M/CTE), Perú (soles), España (euros) o dólares. Si la necesitas dentro de Excel, más abajo tienes una macro lista para pegar.

El convertidor maneja enteros hasta 999 billones (escala larga), centavos y números negativos, y aplica las reglas que más se equivocan a mano: «veintiún pesos» y no «veintiuno pesos», «un millón de pesos» con «de», y «mil» sin «un» delante. Tienes tres salidas: el número en palabras, la cantidad con letra en la moneda que elijas y la misma cantidad en mayúsculas, como se escribe en facturas y cheques.

Escribir los montos en palabras es un requisito en cheques, contratos legales, pagarés y muchos documentos oficiales. La cantidad escrita en letras es la que tiene validez legal en caso de discrepancia con la cifra numérica. Esta herramienta te da ese texto al instante sin tener que buscar la forma correcta para cantidades grandes.

El convertidor en español usa la escala larga, que es el sistema estándar en todos los países hispanohablantes: un billón equivale a un millón de millones (10¹²). En la escala larga, un millón de millones es un billón, mientras que en la escala corta anglosajona un billion es solo mil millones. Esta distinción es crítica en documentos financieros y legales internacionales.

Los centavos siguen la convención de facturas y cheques: se muestran como fracción, «56/100», en lugar de deletrear cada dígito — salvo en euros y en el formato colombiano, donde se escriben en palabras («con cincuenta y seis céntimos»). El parser acepta tanto 1,234.56 (formato mexicano y estadounidense) como 1.234,56 (formato de España y Sudamérica).

Cantidad con letra por país: el mismo importe en cada formato

País / monedaCómo se escribe 1,234.56
México — pesos (factura)MIL DOSCIENTOS TREINTA Y CUATRO PESOS 56/100 M.N.
Colombia — pesosMIL DOSCIENTOS TREINTA Y CUATRO PESOS M/CTE CON CINCUENTA Y SEIS CENTAVOS
Perú — soles (SUNAT)SON: MIL DOSCIENTOS TREINTA Y CUATRO CON 56/100 SOLES
España — eurosMil doscientos treinta y cuatro euros con cincuenta y seis céntimos
Dólares (EE. UU., Puerto Rico, Ecuador, El Salvador)Mil doscientos treinta y cuatro con 56/100 dólares
Pesos, formato generalMil doscientos treinta y cuatro pesos con 56/100

En Perú la moneda va después de la fracción, así que el número no se acorta: «SON: VEINTIUNO CON 00/100 SOLES», no «veintiún». En México y Colombia la moneda va pegada al número y sí se acorta: «VEINTIÚN PESOS». La fracción 00/100 se escribe siempre en facturas y cheques, aunque no haya centavos: deja el importe cerrado.

Número a letras en Excel: macro lista para copiar

  1. En Excel, presiona Alt + F11 para abrir el editor de Visual Basic.
  2. Menú Insertar → Módulo, y pega el código de abajo.
  3. Vuelve a la hoja y escribe =NumeroALetras(A1), con el importe en A1.
  4. Guarda el libro como «Libro de Excel habilitado para macros (.xlsm)»; si lo guardas como .xlsx, la macro se pierde.
' =NumeroALetras(A1)  ->  MIL DOSCIENTOS TREINTA Y CUATRO PESOS 56/100 M.N.
' Pegar en un módulo de VBA (Alt+F11 > Insertar > Módulo). Hasta 999 billones.
' Para otra moneda, cambia "PESO", "PESOS" y "M.N." en NumeroALetras.
Public Function NumeroALetras(ByVal importe)
    Dim entero, centavos, texto
    importe = Abs(importe)
    entero = Fix(importe)
    centavos = Int((importe - entero) * 100 + 0.5)
    If centavos = 100 Then entero = entero + 1: centavos = 0
    If entero = 0 Then
        texto = "CERO PESOS"
    ElseIf entero = 1 Then
        texto = "UN PESO"
    Else
        texto = Apocope(Letras(entero))
        If entero >= 1000000 And entero - Fix(entero / 1000000) * 1000000 = 0 Then texto = texto & " DE"
        texto = texto & " PESOS"
    End If
    NumeroALetras = texto & " " & Right("0" & centavos, 2) & "/100 M.N."
End Function

Private Function Letras(ByVal n)
    Dim billones, millones, resto, t
    billones = Fix(n / 1000000000000)
    n = n - billones * 1000000000000
    millones = Fix(n / 1000000)
    resto = n - millones * 1000000
    t = ""
    If billones = 1 Then t = "UN BILLÓN"
    If billones > 1 Then t = Apocope(Miles(billones)) & " BILLONES"
    If millones = 1 Then t = Trim(t & " UN MILLÓN")
    If millones > 1 Then t = Trim(t & " " & Apocope(Miles(millones)) & " MILLONES")
    If resto > 0 Then t = Trim(t & " " & Miles(resto))
    Letras = t
End Function

Private Function Miles(ByVal n)
    Dim m, r, t
    m = Fix(n / 1000)
    r = n - m * 1000
    t = ""
    If m = 1 Then
        t = "MIL"
    ElseIf m > 1 Then
        t = Apocope(Centenas(m)) & " MIL"
    End If
    If r > 0 Then
        If t <> "" Then t = t & " "
        t = t & Centenas(r)
    End If
    Miles = t
End Function

Private Function Centenas(ByVal n)
    Dim c, d, t
    If n = 100 Then
        Centenas = "CIEN"
        Exit Function
    End If
    c = Fix(n / 100)
    d = n - c * 100
    t = ""
    If c > 0 Then t = Split("CIENTO,DOSCIENTOS,TRESCIENTOS,CUATROCIENTOS,QUINIENTOS,SEISCIENTOS,SETECIENTOS,OCHOCIENTOS,NOVECIENTOS", ",")(c - 1)
    If d > 0 Then
        If t <> "" Then t = t & " "
        t = t & Decenas(d)
    End If
    Centenas = t
End Function

Private Function Decenas(ByVal n)
    Dim d, u, t
    If n < 30 Then
        t = Split("UNO,DOS,TRES,CUATRO,CINCO,SEIS,SIETE,OCHO,NUEVE,DIEZ,ONCE,DOCE,TRECE,CATORCE,QUINCE,DIECISÉIS,DIECISIETE,DIECIOCHO,DIECINUEVE,VEINTE,VEINTIUNO,VEINTIDÓS,VEINTITRÉS,VEINTICUATRO,VEINTICINCO,VEINTISÉIS,VEINTISIETE,VEINTIOCHO,VEINTINUEVE", ",")(n - 1)
    Else
        d = Fix(n / 10)
        u = n - d * 10
        t = Split("TREINTA,CUARENTA,CINCUENTA,SESENTA,SETENTA,OCHENTA,NOVENTA", ",")(d - 3)
        If u > 0 Then t = t & " Y " & Split("UNO,DOS,TRES,CUATRO,CINCO,SEIS,SIETE,OCHO,NUEVE", ",")(u - 1)
    End If
    Decenas = t
End Function

' Ante un sustantivo, "uno" se acorta: VEINTIÚN PESOS, TREINTA Y UN MIL.
Private Function Apocope(ByVal t)
    If Right(t, 9) = "VEINTIUNO" Then
        Apocope = Left(t, Len(t) - 9) & "VEINTIÚN"
    ElseIf Right(t, 3) = "UNO" Then
        Apocope = Left(t, Len(t) - 1)
    Else
        Apocope = t
    End If
End Function
Probada contra esta herramienta con más de 3000 importes, hasta los billones: el resultado es idéntico. Para otra moneda cambia "PESO", "PESOS" y "M.N.". Si los acentos salen como símbolos raros (Excel en un Windows configurado en un idioma no occidental), quítalos del código.

Errores comunes al escribir cantidades con letra

EvitaEscribePor qué
Veintiuno pesos · treinta y uno pesosVeintiún pesos · treinta y un pesosAnte un sustantivo masculino, «uno» se acorta a «un».
Un mil pesosMil pesos«Mil» no lleva «un» delante (pero «un millón» sí).
Un millón pesosUn millón de pesosSi la cantidad termina en millón o millones, va «de» antes de la moneda.
Diez y seis · veinte y dosDieciséis · veintidósDel 16 al 29 se escriben en una sola palabra, con tilde en dieciséis, veintidós, veintitrés y veintiséis.
Omitir la fracción si no hay centavosCinco mil pesos 00/100 M.N.En facturas y cheques la fracción se escribe siempre y cierra el importe.
Un billón = 1,000,000,000Mil millonesEn español un billón es un millón de millones (10¹²); el «billion» inglés son mil millones.

Preguntas frecuentes

¿Cuál es el número más grande que puede convertir?

Maneja números hasta 999,999,999,999,999 (999 billones en escala larga). Para la mayoría de cheques y documentos legales, este rango es más que suficiente.

¿Cómo se manejan los decimales?

Como fracción de 100, que es lo que piden bancos y facturas: 1234.56 en pesos mexicanos es «Mil doscientos treinta y cuatro pesos 56/100 M.N.». En euros y en el formato colombiano los centavos se escriben en palabras: «… euros con cincuenta y seis céntimos».

¿Mis datos se envían a un servidor?

No. Toda la conversión corre en tu navegador. Nada de lo que escribes se envía a ningún lado.

¿Cómo se escribe una cantidad con letra en una factura en México?

En mayúsculas, con la palabra PESOS, los centavos como fracción de 100 y M.N. (moneda nacional) al final: $1,234.56 se escribe «MIL DOSCIENTOS TREINTA Y CUATRO PESOS 56/100 M.N.». Si no hay centavos se pone 00/100, y muchas facturas la encierran entre paréntesis.

¿Se escribe «un millón de pesos» o «un millón pesos»?

Un millón de pesos: cuando la cantidad termina justo en millón o millones, va «de» antes de la moneda (dos millones de pesos). Si sigue otra cifra, no: un millón quinientos mil pesos. Y ante un sustantivo, «uno» se acorta: un peso, veintiún pesos, treinta y un pesos.

¿Cómo convierto un número a letras en Excel?

Excel no trae ninguna función para escribir cantidades en letras en español. La solución habitual es una macro: copia la función NumeroALetras de la guía de abajo en un módulo de VBA (Alt + F11 → Insertar → Módulo) y úsala como cualquier fórmula: =NumeroALetras(A1). Guarda el libro como .xlsm para que conserve la macro.

¿Qué significa M/CTE en Colombia?

Moneda corriente: indica que el importe está en pesos colombianos. Se escribe después de PESOS — «DOS MILLONES QUINIENTOS MIL PESOS M/CTE» —, y los centavos, que casi no se usan, aparecen en la factura electrónica como «CON … CENTAVOS».

Herramientas relacionadas