🔝To translate this blog post to your language, select it in the top left Google box.
Este es mi primer artículo sobre una función que permite a Excel hacer cosas que antes solamente se podían hacer con las macros en lenguaje VBA:
AVISO: Como es la función más avanzada de Excel, únicamente está disponible en Excel para Microsoft 365 y en Excel para la Web.
Como ejercicio de ejemplo, he modificado una fórmula que convertía números a palabras en inglés americano y de la India, para convertir también números a palabras en español, como se ve en esta imagen:
Con este conversor no pretendo sustituir a la gran cantidad de conversores de números a palabras en distintos idiomas que hay en Internet, solamente quiero hacerlo en Excel sin macros, con una fórmula que llama a la función LAMBDA.
Busca, compara y si encuentras algún conversor mejor ¡úsalo!
La fórmula original para convertir números a palabras en inglés, tanto americano como de la India, usando la función LAMBDA fue publicada por @Bhavya250203 en estos enlaces:
Convert Number to Words LAMBDA (Very Large Numbers) - Microsoft Community Hub
Convert Very Large Numbers to Words for both Indian as well as International Numbers · GitHub
Bhavya Gupta creó esta función LAMBDA "Number_To_Words" para convertir números en palabras (por ejemplo, 2813 se puede escribir como "Two Thousand Eight Hundred Thirteen" en palabras en inglés)
El primer parámetro de la función es el número a convertir y el segundo es opcional (por defecto un 1 para el sistema de número en inglés de la India y un 2 para el sistema de número en inglés americano)
No se convierten los decimales por ahora, pero eso también se puede implementar.
En la imagen anterior el resultado de la fórmula original aparece en la columna D, con esta fórmula:
=Words_Converter(Number_To_Words([@[Integer Numbers]];MyLanguageNumber))
Siendo "Integer Numbers" el número a convertir en texto y MyLanguageNumber un 1 para inglés de la India y un 2 para inglés internacional.
Con la función LAMBDA "Words_Converter" se convierten las palabras:
- lowercase: minúsculas.
- UPPERCASE: MAYÚSCULAS
- Title Case: Mayúscula la primera letra de cada palabra.
- Sentence case: Mayúscula la primera letra de la primera palabra, el resto en minúsculas.
Con una modificación de la fórmula anterior, llamando a la función "Number_To_Words_IES", con la que convertir números a IES, con el segundo argumento opcional con el número de lenguaje:
- I - Indian : Inglés de la India, por defecto.
- E - English: Inglés.
- S - Spanish: Español.
En la columna C está la siguiente fórmula:
=Words_Converter(Number_To_Words_IES([@[Integer Numbers]];MyLanguageNumber))
Esta fórmula, creada con la función LAMBDA, la he modificado para que convierta los números a palabras en español usando demasiadas funciones SUSTITUIR, por lo que hace falta probarla y depurarla y optimizarla algún día...
Convierte números a palabras modificando estas celdas:
- B2 - Elige el lenguaje: Indian; English; Spanish.
- B3 - Cambia el tipo de letras: lowercase; UPPERCASE; Title Case; Sentence case.
- B6:B21 - Escribe los números enteros a convertir de hasta 15 cifras, del 1 al 999.999.999.999.999
En la columna C están las palabras con la pronunciación escrita de cada número.
Haz clic en el botón de Descarga para probarlo en Excel para Microsoft 365.
Si no tienes instalada la versión más reciente de Excel, puedes probarlo en la nube de Excel para la Web, sin necesidad de tener instalado Excel y sin salir de esta página:
Para ajustar el zoom de este libro incrustado:
- En el móvil o celular usa dos dedos en la pantalla, como haces para ampliar o reducir una foto.
- En el PC sitúa el cursor dentro del buscador y presiona la tecla <Control> girando a la vez la ruleta del ratón.
En este videotutorial explico cómo convertir números enteros a palabras en indio, inglés o español.
Selecciona los subtítulos en tu idioma para entender el vídeo.
Como no puedo probar los 1.000 billones de números, ayúdame escribiendo los números incorrectamente convertidos a palabras en un comentario.
En el próximo artículo explicaré cómo programar con la función LAMBDA.