Traducir el blog

Cómo modificar fórmulas LAMBDA

Posted on julio 03, 2023 by Excel Pedro Wave

🔝To translate this blog post to your language, select it in the top left Google box.


Este es el tercer artículo de la trilogía para convertir números a palabras en inglés y en español, con la función LAMBDA:

  1. Conversor de números a palabras | #ExcelPedroWave
  2. Cómo copiar fórmulas LAMBDA | #ExcelPedroWave
  3. Cómo modificar fórmulas LAMBDA | #ExcelPedroWave
  • Con el primer artículo probarás y descargarás el conversor de números a palabras en inglés y en español.
  • Con el segundo artículo aprenderás a copiar fórmulas escritas con Excel en inglés a Excel en español.
  • Con este tercer artículo sabrás cómo modificar y probar una fórmula compleja que contiene la función LAMBDA.

ATENCIÓN: Como LAMBDA es la función más avanzada de Excel, únicamente está disponible en Excel para Microsoft 365 y en Excel para la Web.



NOTA: Como no todo el mundo tiene instalada la versión de pago de Excel para Microsoft 365, voy a explicar cómo modificar una megafórmula programada con la función LAMBDA en la versión gratuita de Excel para la Web.

AVISO: En la imagen de arriba se muestra el complemento Advanced formula environment del Excel Labs, que no está incluido en la versión gratuita de Excel para la Web, por lo que no lo voy a usar para explicar cómo modificar la fórmula con la función LAMBDA.


Descarga el conversor de números a palabras en la nube

Lo primero que tienes que hacer es descargar el archivo haciendo clic en el botón de Descarga para probarlo en Excel para Microsoft 365 o para subirlo a tu nube de Excel para la Web.


Crea una cuenta gratuita de Microsoft OneDrive

Para crear una cuenta gratuita de Microsoft OneDrive entra en esta página:

Personal Cloud Storage – Microsoft OneDrive

Y haz clic en el botón: Try for free 


Se te pedirá un correo electrónico, o podrás crear un nuevo correo de Outlook a tu nombre, y conseguirás un almacenamiento gratuito en Microsoft OneDrive de 5 GB.


Carga el archivo en tu nube de OneDrive

El conversor de números a palabras que has descargado anteriormente lo debes cargar en tu nube de OneDrive haciendo clic en Cargar y en Archivos, como se ve en esta imagen:


Abre el archivo en tu nube de OneDrive

Haz clic en el archivo que has cargado para abrirlo en tu nube de OneDrive, donde dispones de las funciones de Excel más novedosas, como la función LAMBDA, sin tener que gastar ni un euro...


Pausar protección del archivo en tu nube de OneDrive

Abre la hoja 'LAMBDA' y, en la pestaña Revisar, haz clic en Pausar protección.

Edita en la barra de fórmulas la celda B2, que contiene la fórmula con la función LAMBDA que convierte números a palabras.


Amplia la barra de fórmulas para editar las líneas de la fórmula, con lo que conseguirás ver unas cuantas líneas, pero no todas las líneas de la fórmula ya que es muy grande.

En la última línea se le pasan los parámetros a la función LAMBDA:

))(Number;Indian_or_InterN)

En este caso los parámetros entre paréntesis son dos nombres definidos:

  • Number: con el número entero que se va a convertir.
  • Indian_or_InterN: valor opcional para palabras en 1: Inglés de la India; 2: Inglés internacional; 3: Español.


Cómo probar la fórmula LAMBDA

Para probar una fórmula muy larga, como la del archivo de ejemplo con la función LAMBDA, se debe emplear la técnica divide y vencerás que permite programar algoritmos complejos.

Con esa técnica he podido analizar la fórmula original, modificarla para incluir la conversión de números a palabras en español y corregirla para eliminar un error detectado en la conversión de números al inglés.


Como dentro de la fórmula original con la función LAMBDA se usa varias veces la función LET, ha sido fácil dividir la fórmula en varias fórmulas más pequeñas, mucho más fáciles de editar, probar y depurar.

En la hoja 'LAMBDA' he dividido en 18 celdas los nombres definidos en la fórmula de la celda B2:

  • Option (celda G2): Vale 1 para inglés de la India; 2 para inglés internacional; 3 para español.
  • I (celda H2): Cifras del número entero a convertir.
  • L_1 (celda I2): Secuencia de los primeros 19 números.
  • R_1 (celda J2): Los primeros 19 números convertidos a palabras en inglés o español.
  • L_2 (celda K2): Secuencia del 2 al 9.
  • R_2 (celda L2): Del 20 al 90 en inglés o español.
  • L_3 (celda M2): La conversión de mil, millones, mil millones y billones al inglés.
  • A (celda N2): Secuencia de I números.
  • B (celda O2): El número a convertir en una matriz con las cifras desplegadas.
  • C (C_1 celda P2): Peso de cada cifra a convertir.
  • D (celda Q2): Cifras separadas en miles.
  • E (celda R2): Cifras de los miles convertidas al inglés o español.
  • F (F_1 celda S2): Secuencia inversa de las filas de E
  • G (celda T2): cientos y cifras de miles en inglés o español.
  • H (celda U2): cientos y miles en español.
  • I (celda V2): mil millones en español.
  • Final (celda W2): cadenas unidas para convertir el número a palabras.
  • Number_To_Words (celda X2): sustituciones elementales de palabras numeradas en español y conversión del número a palabras, tanto en inglés como en español.

Observa que he tenido que renombrar las variables C y F con los nombre C_1 y F_1 respectivamente, pues son usadas internamente por Excel.

Todas las variables anteriores se definen con el símbolo almohadilla o numeral (#) por la derecha, para comportarse como una matriz dinámica desbordada.

Por ejemplo B se calcula dinámicamente con la fórmula:

=EXTRAE(Number; A#; 1)

siendo A# una matriz dinámica con la secuencia de cifras del número a convertir.

Como las fórmulas de estas 18 celdas son más cortas, son más fáciles de analizar, de programar y de probar por separado que la fórmula completa.


Cómo combinar las fórmulas divididas en una única celda

La fórmula LAMBDA está editada en la celda B2 y ha sido combinada a partir de las fórmulas divididas en el rango G2:X2, explicado anteriormente.

AVISO: Hay que tener en cuenta el límite de 8.192 caracteres en una fórmula Excel, pues una fórmula con la función LAMBDA, como la del ejemplo, puede ser más larga debido a la indentación que genera el complemento "Advanced formula environment" del Excel Labs.

Para combinar las fórmulas, en cada fórmula dividida se han quitado los caracteres almohadilla (#) de la derecha de las matrices dinámicas, pues las funciones LET y LAMBDA no los precisan.

También se han renombrado las variables C_1 y F_1 con los nombres originales C y F, respectivamente.

La fórmula de la celda B2 se ha copiado en el Administrador de nombres (en la versión de escritorio de Excel para Microsoft 365) como un nombre definido:

Number_To_Words_IES

En la que se ha quitado el paso de parámetros entre paréntesis al final de la función LAMBDA:

(Number;Indian_or_InterN)

Con lo que se consigue llamar a la función LAMBDA como a cualquier otra función de Excel:

=Words_Converter(Number_To_Words_IES(Number;Indian_or_InterN))

ATENCIÓN: En Excel para la Web que yo sepa no existe el Administrador de nombres, ¡de momento!, por lo que no estos últimos pasos solamente se pueden hacer en Excel para Microsoft 365.


Error corregido en la fórmula original

El principal error detectado y corregido en la fórmula original se debe a que no discrimina a qué corresponden los cientos de cada tres cifras.

Por ejemplo. con el número escrito en la celda A2:

100100

Convertido erróneamente en la celda D2 con la fórmula original al inglés ¡sin Thousand!:

One Hundred One Hundred

Cuando realmente se debe leer correctamente en la celda B2 como:

One Hundred Thousand One Hundred


Videotutorial de cómo modificar fórmulas LAMBDA

En este videotutorial explico cómo modificar fórmulas LAMBDA en Excel para la Web.

Selecciona los subtítulos en tu idioma para entender el vídeo.


Mi intención no era optimizar la fórmula LAMBDA sino explicar cómo modificar una fórmula compleja y suficientemente larga, para tener que analizarla dividiéndola en fórmulas más pequeñas que se puedan probar.

Por lo que mis cambios en la fórmula no son los óptimos, aunque he intentado que no haya errores en la conversión de números a palabras.

¿Lo habré conseguido?

No Response to "Cómo modificar fórmulas LAMBDA"

Leave A Reply

Indícame las erratas que encuentres y qué es lo que te gustaría ver en los próximos artículos.

Mi lista de blogs