numerosaletras

Excel · VBA · Sheets

Convertir números a letras en Excel.

Elija país y formato: le devolvemos el código listo para pegar. Convertir números a letras en Excel con las reglas de la RAE que casi ningún código aplica.

NumeroALetras.bas

 

Vista previa

=NumeroALetras( )

el punto de partida

Excel no trae esta función.

Hay una función para redondear, otra para calcular la TIR y otra para contar días laborables. Para convertir números a letras en Excel no hay ninguna. La hoja de cálculo más usada del mundo no sabe escribir «mil doscientos treinta y cuatro».

Microsoft publica un ejemplo llamado SpellNumber, pero está escrito para el inglés y hay que instalarlo a mano igual que cualquier otra macro. Para pasar números a letras en Excel en español no existe nada de fábrica. De ahí que todo el que necesita el importe con letra acabe buscando código en un foro y pegándolo sin poder comprobar si está bien.

Y el importe con letra no es un adorno. En un cheque la cantidad escrita prevalece sobre la numérica si las dos no coinciden; en un CFDI del SAT o en una factura de la DIAN, el campo va en el documento fiscal. Una errata ahí no es un detalle de estilo: es un documento devuelto.

qué es

La función NumeroALetras.

NumeroALetras es una función definida por el usuario que se añade a Excel mediante código y devuelve una cantidad escrita en palabras, aplicando las reglas ortográficas del español.

Una vez instalada se comporta como cualquier función nativa. Se escribe =NumeroALetras(A1) en una celda y devuelve el texto. Se puede arrastrar, anidar dentro de otras fórmulas y usar en tablas dinámicas: convertir números a letras deja de ser una tarea manual y pasa a ser una columna más de la hoja.

La diferencia entre una implementación y otra no está en si funciona, sino en cuántas reglas del español respeta. Casi todas las macros para convertir números a letras en Excel resuelven bien las decenas y los millares. Casi ninguna resuelve las tres del apartado siguiente.

instalación

Cuatro pasos, dos minutos.

Esta es la vía de la macro, la más completa para convertir números a letras en Excel. Si en su trabajo las macros están bloqueadas, salte al apartado siguiente.

  1. 01

    Abra el editor

    En Excel, pulse Alt + F11 (en Mac, Opción + F11). Se abre el editor de Visual Basic, una ventana aparte del libro.

  2. 02

    Inserte un módulo

    En el menú del editor: Insertar ▸ Módulo. Aparece una hoja en blanco a la derecha. Es donde vive el código, no en ninguna celda.

  3. 03

    Pegue el código

    Copie el bloque de arriba con el botón Copiar y péguelo en el módulo. No hace falta tocar nada más: el país, el sufijo y el formato ya vienen puestos.

  4. 04

    Guarde como .xlsm

    Archivo ▸ Guardar como ▸ Libro de Excel habilitado para macros. Si lo guarda como .xlsx normal, Excel descarta el código al cerrar y la función deja de existir.

Si al pegar aparecen símbolos raros donde deberían ir las tildes, guarde el módulo y vuelva a abrirlo: el editor de VBA a veces necesita una pasada para asentar la codificación de los acentos.

sin macros

Cuando su empresa bloquea las macros.

Es una situación corriente: la política de seguridad de la empresa desactiva las macros, o el archivo viaja por correo y llega bloqueado al destinatario. En ese escenario la macro no sirve, por bien escrita que esté.

La salida moderna son las funciones LAMBDA, disponibles desde Excel 2021 y en Excel 365. Se definen en el Administrador de nombres, viven dentro del libro y este se guarda como .xlsx corriente. No hay advertencia de seguridad porque no hay macro.

La pestaña Sin macros del generador devuelve las cuatro definiciones que hay que crear, en orden. Es la vía menos conocida para convertir números a letras en Excel, y la única que sobrevive a un entorno corporativo cerrado. Su límite: llega hasta 999.999.999,99.

La alternativa antigua —cortar la cifra dígito a dígito con EXTRAE y encadenar búsquedas— también funciona, pero produce fórmulas de varias líneas imposibles de revisar, y ninguna de las que circulan aplica las reglas de abajo.

google sheets

Lo mismo en Google Sheets.

Sheets tampoco trae la función, pero su forma de convertir números a letras es más limpia que la de Excel: Apps Script es JavaScript y se edita en el navegador, sin instalar nada y sin diálogos de seguridad más allá de la autorización inicial del proyecto.

Elija la pestaña Sheets, copie el código y vaya a Extensiones ▸ Apps Script. Pegue, guarde, vuelva a la hoja y escriba =NUMEROALETRAS(A1). La primera vez, Google pedirá autorizar el proyecto; es su propio script actuando sobre su propia hoja.

La ventaja añadida es que la función viaja con el documento: quien lo abra con permiso de edición la tiene disponible, sin reinstalar nada, y funciona también desde la aplicación móvil. Ninguno de los tutoriales de Excel que hemos revisado cubre este caso.

la letra pequeña

Tres reglas que casi ningún código aplica.

Revisamos las macros que aparecen en los primeros resultados al buscar cómo convertir números a letras en Excel. Todas resuelven bien las decenas. Ninguna resuelve las tres de abajo a la vez, y las tres aparecen en importes corrientes.

Apócope

veintiuno pesos

veintiún pesos

Delante de un sustantivo, «uno» pierde la vocal final y gana tilde. Pasa con 1, 21, 31 y toda la serie, y también delante de «mil» y de «millones».

DPD, s. v. «uno»

La «de»

un millón pesos

un millón de pesos

A partir del millón el numeral funciona como sustantivo y exige «de» antes del nombre de la moneda. Si a la cifra le siguen miles o unidades, la «de» desaparece.

DPD, s. v. «millón»

Cien y ciento

cien uno pesos

ciento un pesos

«Cien» solo va solo o directamente ante el sustantivo. En cuanto le sigue otra cifra pasa a «ciento», y sin «y» detrás: ciento uno, nunca ciento y uno.

DPD, s. v. «ciento»

El código para convertir números a letras en Excel que genera esta página aplica las tres, más la concordancia de género y el plural irregular de monedas como el colón o el quetzal. Puede comprobarlo en la vista previa de arriba, o leer las reglas de la RAE para escribir números con más ejemplos. Los centavos y decimales tienen su propia página.

cuál elegir

Macro, LAMBDA o Apps Script.

Vía Archivo Alcance Dónde funciona Bloqueos
Macro VBA .xlsm o .xlam ±922 billones, sin error de coma flotante Excel de escritorio, Windows y Mac La empresa puede tenerla bloqueada
Función LAMBDA .xlsx normal Hasta 999.999.999,99 Excel 365 y Excel 2021 en adelante Ninguno: no es una macro
Apps Script Proyecto adjunto a la hoja Hasta 999.999.999.999.999 Google Sheets, también en el móvil Pide autorizar el proyecto la primera vez

Si solo necesita una cifra suelta no hace falta instalar nada: el convertidor de números a letras en línea la resuelve y se copia al portapapeles. Si lo que va a redactar es el documento entero, el generador de recibos lo compone e imprime por duplicado, y el formato de pagaré comprueba además sus requisitos legales. Para revisar un documento que le llega escrito, la conversión inversa hace el camino contrario.

preguntas

Dudas frecuentes.

¿Excel tiene una función nativa para convertir números a letras?

No. Excel no incluye ninguna función que escriba una cifra en palabras. Microsoft publica un ejemplo llamado SpellNumber, pero está escrito para el inglés y hay que añadirlo a mano igual que cualquier otra macro. Para convertir números a letras en Excel en español no existe nada de fábrica, y por eso todas las soluciones pasan por pegar código.

¿Puedo convertir números a letras en Excel sin activar macros?

Sí, con la pestaña «Sin macros» de arriba. Define cuatro funciones LAMBDA en el Administrador de nombres y el libro se guarda como .xlsx corriente, sin advertencia de seguridad al abrirlo. Es la forma de convertir números a letras en Excel cuando la política de la empresa bloquea las macros. La contrapartida es el alcance: llega hasta 999.999.999,99, mientras que la macro no tiene ese techo.

¿El código funciona en Excel para Mac y en Excel Online?

En Mac sí, con Opción + F11 en lugar de Alt + F11. Excel Online no admite VBA en absoluto: ahí las opciones para convertir números a letras son la versión LAMBDA, si su plan la incluye, o el convertidor en línea de este sitio, que no necesita instalar nada.

¿Por qué otros códigos escriben «un millón pesos» y este «un millón de pesos»?

Porque a partir del millón el numeral deja de ser un adjetivo y pasa a comportarse como sustantivo, de modo que pide «de» antes del nombre de la moneda. Es una de las tres reglas que casi ningún código de internet implementa, y la que más veces provoca una observación en una factura.

¿Cómo cambio la moneda a soles, euros o quetzales?

Elíjala en el desplegable de arriba y el código se regenera con el nombre, el plural, la subunidad y el sufijo correctos. Si prefiere editarlo a mano después, todo eso vive en las constantes de las primeras líneas.

¿Sirve para el importe con letra de un CFDI o de una factura DIAN?

Sí. Elija México para obtener el sufijo M.N. que pide el SAT, o Colombia para el M/CTE de la banca. Active la fracción 00/100, que es la que esperan ambos formatos. Verifique siempre el resultado antes de timbrar o presentar el documento.

Sobre estas reglas

Las tres reglas del apartado «la letra pequeña» están recogidas en el Diccionario panhispánico de dudas de la Real Academia Española, en las entradas «uno», «millón» y «ciento». El código para convertir números a letras que genera esta página se comprueba contra el mismo motor que mueve el convertidor del sitio, con pruebas automáticas sobre las once monedas disponibles.

Si encuentra una cantidad donde el resultado no sea el que espera su banco o su despacho, cuéntenoslo: corregimos y dejamos anotada la fecha del cambio.

Última revisión: 7 de agosto de 2026 · Reportar un error