Excel nunca incluyó entre sus funciones nativas una que traduzca cifras numéricas a sus equivalentes en lenguaje natural. Por ejemplo, que el valor de 123,45 sea mostrado como “ciento veintitrés con cuarenta y cinco”. Pero aquí te indico cómo conseguirlo en todas las hojas que abras con tu Excel de escritorio.
- Funciones definidas por el usuario
- Cómo descargar y habilitar el libro con el código
- Cómo tener la función siempre disponible
- Cómo usar la función NUMEROENLETRAS
- Ejemplos de uso
- Ayúdate con el Asistente de funciones
- Características de NUMEROENLETRAS
- Licencia de uso
- EXTRA: Otras formas de lograr resultados similares
- Y eso es todo...
Nota importante
La versión original de la función fue mejorada y se le agregaron 3 nuevos argumentos para dar más versatilidad a los resultados. Por eso, si llegas a este artículo desde el Boletín del 11/12/2025, donde se la presenta, encontrarás algunas diferencias entre ambas publicaciones. La nueva versión es superior y no quita ninguna característica a la anterior. Pero, ante cualquier inquietud, siéntete libre de dejar tus comentarios al final del artículo y te responderemos a la brevedad.
Aunque no traiga de forma predeterminada una función específica para ello, el Excel actual tiene varias formas distintas de solventar la conversión de números en letras y está en camino de incluir algunas más. Al menos de forma parcial.
Pero una de las más eficientes (y, para mí, la mejor) sigue siendo a través de una función desarrollada en código VBA. (Al final del artículo me detengo en las otras opciones, sus pros y sus contras.)
Funciones definidas por el usuario
Excel trae más de quinientas funciones nativas listas para usarse. Pero, también, nos brinda la posibilidad de crear las nuestras propias en lenguaje VBA. A estas funciones hechas “a medida” se las denomina funciones definidas por el usuario (o UDF, por sus iniciales en inglés: User Defined Functions).
En este artículo no entraremos en los detalles de la creación de dichas funciones. Pero te daré todas las indicaciones para que puedas incluir una UDF que convierte números a sus equivalentes en letras, llamada NUMEROENLETRAS.
Es una función que yo mismo he desarrollado y que te comparto con el código abierto y de manera gratuita.
Cómo descargar y habilitar el libro con el código
Para descargar el libro de Excel con el código de la función alcanza con que hagas clic en el siguiente enlace:
Descarga el archivo con la función NUMEROENLETRAS
Este material es gratuito pero puedes agradecer con un pequeño aporte voluntario:
El archivo descargado tendrá la extensión .xlsm, porque es un libro de Excel habilitado para macros. (Es posible que no veas la extensión .xlsm, si tu sistema operativo la oculta en el nombre de los archivos. Pero no hay ningún problema con eso.)

Sin embargo, como es un libro que contiene macros y proviene de otro equipo, debemos dar ciertos pasos para que el sistema no lo bloquee.
- Para empezar, haz clic derecho sobre el icono del archivo y busca la opción Propiedades en el menú contextual que aparezca. Se abrirá la siguiente ventana:

- Aquí, simplemente, selecciona la opción Desbloquear, abajo a la derecha, y presiona el botón Aceptar.

Ahora ya puedes abrir el archivo sin problemas. Una vez que se haya cargado, verás un mensaje que te pide habilitar el contenido de nuevo. (Microsoft se asegura bien. 🙄) Es muy importante que presiones el botón Habilitar contenido, en vez de cerrar la cinta de advertencia (como hacen muchos).

Nota importante
Después de dar los pasos antes indicados, el archivo descargado es totalmente funcional. Si lo que necesitas es que la función NUMEROENLETRAS esté disponible solo en un libro de Excel, puedes usar este, directamente. Si prefieres que la función NUMEROENLETRAS esté disponible en todos los libros que abras, deberás convertir el archivo en un complemento e instalarlo en la aplicación. Pero, no te preocupes, es muy sencillo de hacer y te lo explico a continuación...
Cómo tener la función siempre disponible
Para tener la función NUMEROENLETRAS disponible en todos los libros que abras en Excel, como si fuese una función nativa, debes convertir el archivo en un complemento permanente de la aplicación.
Para ello, abre el libro que antes descargaste y habilitaste (si es que no está abierto aun) y bórrale los datos de ejemplo. Esos datos ya no son necesarios.
Luego, presiona la tecla F12. Se abrirá el conocido cuadro de diálogo de Guardar como...

¡No lo guardes todavía! Porque ahora no queremos guardarlo como un libro de Excel habilitado para macros (*.xlsm). En su lugar, elige la opción Complemento de Excel (*.xlam) en la lista desplegable marcada en la imagen. Debe ser exactamente ese tipo y ningún otro.

Guárdalo en la ubicación que elija el propio Excel. Normalmente será: << Roaming > Microsoft > Addins. Esa es la carpeta donde se guardan los complementos de la aplicación.
Después, cierra el archivo original sin guardar los cambios.
Abre un libro nuevo de Excel y ve a la ficha Programador (o Desarrollador). Haz clic en la opción Complementos de Excel. (El artículo Cómo habilitar la ficha Programador/Desarrollador en Excel te indica como habilitar esa pestaña, si no las ves en tu versión de Excel.)

En la ventana que se abre presiona el botón Examinar:

Verás el complemento recién creado. Selecciónalo y presiona Aceptar:

Con la opción Numeroenletras marcada, presiona el último botón Aceptar. ¡Has terminado!

¡Ahora la función NUMEROENLETRAS estará disponible en cualquier libro de Excel que abras!

Cómo usar la función NUMEROENLETRAS
Las funciones definidas por el usuario se usan exactamente de la misma manera que cualquier función nativa de Excel. Debes comenzar por ingresar el signo de igual, luego el nombre de la función y, entre paréntesis, indicar los argumentos requeridos.
Como puede verse en la siguiente imagen, la función NUMEROENLETRAS devuelve como resultado la descripción textual del valor numérico que se le indica como argumento:

En el siguiente ejemplo, la función está siendo usada en su forma más simple:
Esto es porque NUMEROENLETRAS tiene un solo argumento obligatorio: valor_numérico, que puede ser:
- la referencia a una celda con un valor numérico. Por ejemplo: =NUMEROENLETRAS(B2)
- un número directamente escrito. Por ejemplo: =NUMEROENLETRAS(123,45)
- una fórmula que devuelva un valor numérico. Por ejemplo: NUMEROENLETRAS(B2*10)
Pero la función NUMEROENLETRAS puede incluir hasta cinco argumentos más:
nombre_moneda: (Opcional) Es el nombre en plural de la moneda que queremos usar (“pesos”, “soles”, “guaraníes”, “dólares”, “euros”, “yenes”, etc.)
nombre_subdivisión: (Opcional) Es el nombre en plural de la subdivisión que queremos usar (“centésimos”, “céntimos”, “centavos”, etc.)
decimales_como_fracción: (Opcional) Es un valor lógico (VERDADERO/FALSO) con los siguientes significados:
- FALSO (u omitido) si se desea el valor decimal del número en letras (como: cincuenta y ocho)
- VERDADERO si se desea el valor decimal del número como fracción (como: 58/100)
texto_extra: (Opcional) Es un texto que aparecerá al final de la expresión (como “M.N.”, etc.)
mayúsc_inicial: (Opcional) Es un valor lógico, con los siguientes significados:
- FALSO (u omitido) si se quiere todo el texto en minúsculas
- VERDADERO si se desea que el resultado lleve mayúscula inicial
Ejemplos de uso
Ejemplo 1
- El valor numérico está en B2; la moneda debe ser “pesos”; la subdivisión, "centavos"; deben mostrarse los decimales como texto, no queremos ningún texto extra y el resultado debe quedar todo en minúsculas:
Como no es necesario especificar los 3 últimos argumentos (pues se usarán los valores predeterminados), se omiten.
Ejemplo 2
- El valor numérico está en L4, no debe llevar ningún otro dato y el resultado debe comenzar con mayúscula:
En este caso, al requerirse solamente el primer y último argumentos, todos los demás se tienen que dejar vacíos. Deben colocarse cinco punto y coma seguidos (;;) o separados por espacios (; ;), pero se deben omitir los valores entre ellos.
Ejemplo 3
- El valor numérico debe ser 1458,79; la moneda debe ser “dólares”; la subdivisión debe ser "centavos" y se quieren ver los decimales como fracción (x/100):
Ejemplo 4
- El valor numérico debe ser el valor de C21; la moneda debe ser "pesos"; no debe especificarse la subdivisión; deben verse los decimales como fracción y se debe incluir al final el texto "M.N.":
Ejemplo 5
- El valor numérico debe ser la suma del rango A3:A15; no debe llevar la moneda y el texto debe comenzar con mayúscula:
Ejemplo 6
- El valor numérico es el 10% del valor de K5; la moneda debe ser “euros”; la subdivisión "cents" y todo el texto debe estar en mayúsculas:
Al poner la función NUMEROENLETRAS como argumento de la función MAYUSC, nativa de Excel, convertimos todo el texto a mayúsculas.
Importante: En tu equipo tal vez debas usar coma (,) en lugar de punto y coma (;) para separar los argumentos. Si quieres copiar las fórmulas de ejemplo para probarlas en Excel, te sugiero que las pegues en la barra de fórmulas en vez de hacerlo directamente en las celdas.
Ayúdate con el Asistente de funciones
Lamentablemente, Excel no indica los argumentos de una función UDF cuando la escribes directamente en la celda.
Pero el Asistente de funciones sí te ofrece una guía muy completa de los argumentos de la función, como puedes ver en la imagen siguiente:

Hay una casilla para cada uno de los argumentos de la función, identificadas por su nombre. Más abajo encontrarás una descripción del argumento en el que nos hayamos posicionado. (En la imagen se ve la descripción del argumento Moneda.)
Una forma sencilla de acceder al Asistente de funciones es mediante el atajo MAYUS+F3 (esto es presionar la tecla MAYÚS, o SHIFT, y, sin soltarla, presionar la tecla F3).
Una vez abierta la ventana del Asistente, puedes elegir la categoría Clases Excel en la lista desplegable, para acceder más directamente a la función.

Luego, selecciona la función NUMEROENLETRAS y haz clic en el botón Aceptar. (O, como otra opción, directamente haz doble clic sobre el nombre de la función.)

Después de completar los argumentos necesarios, presiona el botón Aceptar y la función se guardará en la celda de Excel que tenías seleccionada al iniciar el Asistente.
Características de NUMEROENLETRAS
| Fue especialmente desarrollada para usuarios hispanohablantes. |
| Admite números negativos. |
| Admite decimales. |
| Convierte un rango muy amplio de números, desde -9.999.999.999,99 hasta 9.999.999.999,99 inclusive. |
| Puede agregársele el nombre de cualquier moneda y subdivisión. |
| Puede devolver la parte decimal como texto y como fracción (al estilo: x/100). |
| Admite una expresión final adicional, como "M.N.". |
| Puede devolver los textos en minúscula o con mayúscula inicial (tipo oración). |
| Presenta una guía de su sintaxis en el Asistente de funciones. |
| Es de código abierto y gratuito. |
Licencia de uso
Este código es open source, lo que implica que:
| Puedes... | No puedes... |
| estudiarlo y ver cómo funciona | vender este código |
| copiarlo y ejecutarlo en cuantos equipos desees | |
| adaptarlo a tus necesidades | |
| compartirlo con otros, con o sin cambios | |
| utilizarlo como parte de un proyecto con o sin fines comerciales |
EXTRA: Otras formas de lograr resultados similares
Actualmente, en Excel puedes lograr resultados similares a los que obtienes con la función NUMEROENLETRAS, que te comparto aquí, de otras varias maneras. Yo la he desarrollado en VBA, porque todavía me resulta la mejor en varios aspectos. Pero todas las modalidades tienen sus pros y contras. Aquí va una comparación exhaustiva:
VBA (Visual Basic for Applications)
Pros:
- Funciona en todas las versiones de Excel de escritorio.
- Puede guardarse como un complemento, para que esté disponible en cualquier libro que abras en tu entorno local.
- No es necesaria una conexión a Internet para que funcione.
- Todavía es un lenguaje mucho más versátil y potente en su interacción con Excel que otros incluidos más recientemente en ese entorno, como TypeScript o Python.
- En Internet abunda la documentación sobre VBA, por lo que programar o modificar código en este lenguaje es más sencillo que en otros.
Contra:
- No funciona en Excel Online ni en móviles.
Office Scripts (TypeScript en Excel)
Pros:
- Es compatible con Excel Online y automatizaciones en la nube (Power Automate).
- Es relativamente fácil de compartir en algunos entornos colaborativos.
Contras:
- Requiere conexión a Internet.
- Solo puede implementarse en las versiones de Excel más recientes.
- Existe poca documentación en español sobre su sintaxis.
- No es tan accesible como VBA en entornos empresariales.
Función LAMBDA
Pros:
- Permite generar la función personalizada directamente en el entorno de Excel, sin necesidad de implementar código externo.
- Al tratarse de una función de Excel, LAMBDA utiliza una sintaxis ya conocida por los usuarios habituales de la aplicación.
- LAMBDA viene de forma predeterminada en las versiones más recientes de Excel y no necesita de permisos especiales para usarse.
Contras:
- LAMBDA es una de las funciones más complejas para el usuario promedio de Excel y suele requerir experiencia y paciencia para obtener buenos resultados, particularmente en tareas avanzadas.
- No está disponible en versiones antiguas de Excel.
Python en Excel (integración oficial)
Pro:
- Python es muy potente para cálculos y manipulación de texto, en especial al trabajar grandes volúmenes de datos.
Contras:
- Requiere una suscripción a Microsoft 365 y conexión a Internet (se ejecuta solo en la nube).
- No siempre está habilitado en entornos corporativos.
- Existe una librería de Python, llamada num2words, que ya resuelve el problema de transcribir números como texto en múltiples idiomas, pero no está disponible en Excel.
Copilot en Excel
Pros:
- Puedes pedirle lo que quieres directamente en lenguaje natural. Por ejemplo: “Convierte 123.45 en texto”.
- No requiere programar funciones complejas.
- Se adapta al idioma y al contexto.
Contras:
- Depende de conexión a Internet.
- Los resultados suelen variar dependiendo de la instrucción. Pero, incluso, haciéndole la misma petición en diferentes ocasiones puede dar resultados inconsistentes.
- Los fallos son proporcionales a la complejidad de la tarea. Cuanto más complejo sea el resultado esperado más posibilidades de errores habrá.
- No es reutilizable como una función fija en fórmulas.
- Tenerlo disponible en un entorno laboral dependerá de las políticas de la organización.
Nueva función COPILOT
Pros:
- Se usa como cualquier otra función de Excel.
- Podría simplificar tareas repetitivas sin necesidad de macros ni scripts.
Contras:
- Todavía está en desarrollo y, por lo tanto, no se halla universalmente disponible.
- Necesita conexión a Internet y una licencia premium de Copilot.
- Tenerla disponible en un entorno laboral dependerá de las políticas de la organización.
- Nunca tendremos control sobre su lógica interna (a diferencia de lo que ocurre con VBA o LAMBDA).
- Los resultados pueden variar según la instrucción (no son siempre consistentes). La misma instrucción en diferentes instancias puede producir respuestas diferentes.
- Actualmente, tiene un límite de uso de 100 cálculos por minuto.
Y eso es todo...
Espero que la función NUMEROENLETRAS te sea de utilidad. No dudes en compartirla si crees que a algunos de tus amigos también les puede ser útil.
Clases Excel nunca te obligará a suscribirte, ni a ninguna otra acción para descargar el material de obsequio.
Si piensas que este material se puede optimizar de alguna manera o si encuentras un error, te agradezco que me lo hagas saber. De esta manera, podremos mejorarlo entre todos y beneficiarnos del trabajo en equipo. Todos los comentarios dados con espíritu constructivo serán tomados en cuenta.
La imagen superior toma elementos de un diseño de uso libre de Freepik.
¿Te pareció útil esta información? Si es así, te invito a suscribirte a nuestro Boletín gratuito, para que puedas enterarte de todas las novedades que se vayan publicando.

¡Gracias!!!!!!!!!!!!!! Qué buena herramienta.
¡Gracias a ti, Carol, por tu comentario!!!
Que bueno que te haya gustado.
¡Saludos!
Buenas tardes, ¿cómo puedo hacer para que el texto salga en inglés?
Hola, Cynthia.
Si tienes Microsoft 365 puedes usar la función TRADUCIR.
Suponiendo que el número a convertir estuviera en A1, la fórmula a usar sería esta:
=TRADUCIR( NUMEROENLETRAS( A1 ); "es"; "en")
(Igual, si no estás segura de qué versión tienes puedes probar si funciona o no. Si tu versión de Excel está en inglés, la función TRADUCIR se llamará TRANSLATE.)
Espero que te sirva.
¡Saludos!
QUISIERA SABER SI SE PUEDE PONER TODO EN MAYUSCULAS, YA QUE TRABAJAMOS TODO ASI, EN MAYUSCULAS. Y MUCHAS GRACIAS. QUEDO PERFECTO.
Hola, Raúl.
Me alegro mucho de que la función te haya sido útil.
Para obtener el resultado en mayúsculas tendrías que "envolver" la función NUMEROENLETRAS dentro de la función MAYUSC.
De este modo:
=MAYUSC( NUMEROENLETRAS( A1 ) )
¡Saludos!!
Hola, buen día.
Muchas gracias por la macro.
¿Me podrías ayudar? Necesito que el resultado quede solo con números enteros, por ejemplo, si aparece:
SON: DOSCIENTOS CUARENTA Y UN MIL TRESCIENTOS VEINTIÚN PESOS CON SESENTA M.L.
lo necesito:
SON: DOSCIENTOS CUARENTA Y UN MIL TRESCIENTOS VEINTIÚN PESOS M.L.
Gracias.
Hola, Juan.
El único cambio que tendías que hacer es colocar la referencia al número dentro de la función ENTERO.
Suponiendo que el número estuviera en A1, la fórmula quedaría así:
=MAYUSC(NUMEROENLETRAS(ENTERO(A1);;;;"M.L."))
La función ENTERO justamente elimina la parte decimal del número. Así no necesitas modificar la macro.
Espero te sirva.
¡Saludos!
Muchas gracias.
A ti.
Hola, para poner la cantidad entre paréntesis cuál sería la fórmula y quede así:
125.25 (ciento veinticinco pesos con veinticinco centavos 00/100 M.N.)
agregué la fórmula:
=NUMEROENLETRAS(D8,"pesos","centavos",,"00/100 M.N.)")
Pero en donde meto el primer paréntesis.
¿Me puedes ayudar?
Hola, Antonio. ¿Cómo estás?
Para que te quede el resultado:
(ciento veinticinco pesos con veinticinco centavos 00/100 M.N.)
puedes escribir la fórmula así:
="(" & NUMEROENLETRAS(D8,"pesos","centavos",,"00/100 M.N.") & ")"
La parte que debes agregar es la que aparece en negrita.
Para que quede con el número incluido en el resultado (aunque lo veo poco probable, pero por las dudas), sería:
=D8 & " (" & NUMEROENLETRAS(D8,"pesos","centavos",,"00/100 M.N.") & ")"
Espero que te sirva.
¡Saludos!
Buen día,
Gracias por el articulo. Estoy en Bolivia y me gustaría saber cómo seria la fórmula para agregar en la conversión esto para los decimales:
Por ej.:
5,635.42
que:
= CINCO MIL SEISCIENTOS TREINTA Y CINCO CON CUARENTA Y DOS
sea:
= CINCO MIL SEISCIENTOS TREINTA Y CINCO, 42/100 BOLIVIANOS
Saludos.
Hola, Roger.
Agregué algunos argumentos a la función para que sea más flexible y pueda contemplar situaciones como la que planteas.
En la nueva versión, que ya puedes descargar, sería posible lograr algo muy similar a lo que deseas con esta fórmula (adáptala a la sintaxis que requiera tu versión de Excel, yo uso punto y coma como separadores de argumentos):
=MAYUSC( NUMEROENLETRAS( 5635,42 ; ; "bolivianos" ; VERDADERO ) )
Al poner el nombre de la moneda en el lugar de la subdivisión, queda después de la fracción.
Espero que te sirva.
En el artículo se explica su uso con más detalle y ejemplos.
¡Saludos!
Hola, me parece muy practica la UDF que has elaborado, pero hay una pequeñita observación. Por ejemplo: 256.01 = "Doscientos cincuenta y seis soles con cero uno", sería conveniente (en este caso estoy en Perú), que el resultado fuese "Doscientos cincuenta y seis soles y un céntimo", indicando directamente los decimales (obviando el cero a la derecha) y su denominación.
Hola, Andrés. Gracias por probar la UDF y por tu comentario.
Ya he implementado en la función la mejora que me sugeriste y le agregué, además, varias otras.
En el artículo se explican en detalle las nuevas características añadidas y se dan ejemplos de su uso.
Espero que te sean de utilidad
¡Saludos!