Traducir el blog

Cómo copiar fórmulas LAMBDA

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


En este artículo explicaré cómo copiar fórmulas programadas con la función LAMBDA, escritas en Excel en inglés para que las entienda Excel en español.

La fórmula original está escrita en inglés y publicada en el repositorio de códigos de GitHub. En este enlace se encuentran ejemplos de la función LAMBDA de Excel: Search · excel +lambda · GitHub 

La copia de la fórmula original me permitió modificarla y así diseñar el conversor que publiqué en mi artículo anterior:

Conversor de números a palabras | #ExcelPedroWave

En la siguiente imagen está seleccionada la celda B2, con la fórmula que usa la función LAMBDA para convertir números a palabras en inglés y en español.

También está abierto el complemento: Advanced formula environment del Excel Labs (Entorno de formulas avanzado de los Laboratorios de Excel), con el que se pueden editar las fórmulas definidas con la función LAMBA, en un entorno más amigable que el Administrador de nombres de Excel.



Este es mi segundo 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:

Función LAMBDA - Soporte técnico de Microsoft

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.

ATENCIÓN: A continuación explico los pasos que he seguido para copiar la fórmula original, con la función LAMBDA escrita en Excel en inglés, y que inicialmente convertía números a palabras en inglés, para modificar la fórmula original en Excel en español, añadiendo la conversión de números a palabras en español.

Hicieron falta 4 intentos para conseguir copiar la fórmula original a una celda.

Hicieron falta otros 4 intentos para conseguir copiar la fórmula original como un nombre definido, usando el complemento: Advanced formula environment del Excel Labs


1) Primer intento de copia de la fórmula original a una celda

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 este enlace:

Convert Very Large Numbers to Words for both Indian as well as International Numbers · GitHub

Esta fórmula está escrita en inglés, por lo que no se puede copiar directamente en una celda de Excel en español.

Un método para traducir fórmulas del inglés al español está documentado en este artículo:

Cómo traducir localmente fórmulas Excel | #ExcelPedroWave

Aunque no lo recomiendo para traducir fórmulas muy largas, como la megafórmula que nos ocupa, y porque habrá que convertir el archivo del tipo .xls a .xlsm para que traduzca fórmulas con las nuevas funciones de Excel para Microsoft 365.


2) Segundo intento de copia de la fórmula original a una celda

Instalando Excel en idioma inglés se puede copiar la fórmula original.

ATENCIÓN: Se deben tener unos mínimos conocimientos de la lengua inglesa para cambiar el idioma de Office al inglés y luego revertir los cambios al español. 

Para ello selecciona en la cinta de opciones: Archivo > Opciones > Idioma

En Idioma para mostrar de Office, si no aparece Inglés (English) presiona el botón: Agregar un idioma

Selecciona el idioma que deseas instalar: Inglés (Estados Unidos) (English) y presiona el botón: Instalar

Cuando esté instalado el idioma Inglés (English), selecciónalo y presiona el botón: Establecer como Preferido

Aparece un aviso indicando que hay que reiniciar Office.

Cierra Excel y todas las aplicaciones de Office y vuelve a abrir Excel, con lo que ya se mostrará en inglés el interface de Excel.

Al copiar la fórmula original escrita en inglés en una celda de Excel en inglés, aparece un mensaje de error avisando que "There's a problem with this formula." (Hay un problema con esta fórmula).


3) Tercer intento de copia de la fórmula original a una celda

El problema es debido al separador de listas. En la fórmula original ese separador es la coma (,) cuando en Windows en español el separador de listas es el punto y coma (;)

En esta página se explica cómo seleccionar el separador de listas correcto para que las fórmulas de Exce no generen errores.

Errores de fórmula cuando el separador de lista no se establece correctamente - Office | Microsoft Learn

Lo más fácil es cambiar la Configuración de Windows:

En Formato regional se selecciona Español (Estados Unidos), con lo que el separador de listas será la coma (,)

Ahora ya podemos pegar la fórmula original en una celda de Excel en inglés con la coma como separador de listas.

Para ello se copia la fórmula original y se edita para quitarle el nombre definido: Number_To_Words, y que comience por el signo igual (=).

Pero sigue provocando un error al final de la fórmula.


4) Cuarto intento de copia de la fórmula original a una celda

La fórmula original copiada incluye el nombre definido Number_To_Words, que ya hemos quitado, pero falta algo para poder probarla como una fórmula correcta dentro de una celda de Excel.

Estudiando la función LAMBDA en el siguiente enlace se aprende a resolver el problema:

Función LAMBDA - Soporte técnico de Microsoft

Se explica en el apartado de cómo Crear una función LAMBDA:

Paso 2: Crear la función LAMBDA en una celda

Una buena práctica es crear y probar la función LAMBDA en una celda para asegurarse de que funciona correctamente, incluyendo la definición y el paso de parámetros. Para evitar el error #CALC! , agregue una celda a la función LAMBDA para devolver inmediatamente el resultado:

=función LAMBDA ([parámetro1, parámetro2, ...],cálculo) (función llamar)

El siguiente ejemplo devuelve el valor 2.

=LAMBDA(number, number + 1)(1)

Por lo que, después del paréntesis de cierre de la función LAMBDA, hay que añadir entre paréntesis los valores de los parámetros que se van a pasar a la función LAMBDA.

Con lo que, si convertimos la última línea copiada: );

Por esta línea con los valores de los parámetros a pasar a la función LAMBDA, por ejemplo: )(101,2)

Habremos conseguido introducir la función LAMBDA en la celda, dando como resultado: One Hundred One, que es el número 101 convertido en inglés.

IMPORTANTE: Guardar y cerrar el archivo con la fórmula LAMBDA en una celda.

Hay que recordar que esa fórmula ha sido pegada en un Excel en versión inglesa, y con la coma (,) como separador de listas.

  • Para cambiar el separador de listas: Abre la Configuración de Windows y en Formato regional cambia a: Español (España, internacional), con lo que el punto y coma (;) será el separador de listas.
  • Para cambiar Excel a español: Selecciona en la cinta de opciones en inglés: File > Options > Language. En la sección: Office display languages, selecciona: Spanish (español) y presiona los botones: Set as Preferred y OK.

Cierra Excel y al abrirlo de nuevo aparecerá en español, con la fórmula LAMBDA y sus funciones escritas en español. ¡Eureka!


5) Primer intento de copia de la fórmula a un nombre definido

Con los 4 pasos anteriores hemos conseguido copiar la fórmula original en una celda, pero lo que nos interesa es copiarla como un nombre definido en el Administrador de nombres de Excel.

Microsoft ha incluido el complemento: Advanced formula environment del Excel Labs, con el que se pueden editar las funciones definidas con LAMBA mucho mejor que con el Administrador de nombres.

Lo primero que hay que hacer es instalar el complemento Excel Labs siguiendo estos pasos:

  1. Abrir el archivo descargado del artículo anterior: Conversor de números a palabras | #ExcelPedroWave 
  2. En la cinta de opciones debe estar la pestaña Programador, como se explica en esta página: Mostrar la pestaña Programador - Soporte técnico de Microsoft
  3. Ir a: Programador > Complementos
  4. Abajo a la izquierda seleccionar: Buscar más complementos de la Tienda Office.
  5. Buscar la palabra: labs
  6. Presionar el botón Agregar del complemento: Excel Labs, a Microsoft Garage Project
  7. Presionar el botón Continuar
  8. En la pestaña Inicio aparece el icono de Excel Labs (una probeta a la derecha) en inglés, sin traducción al español...
  9. Y se abren dos complementos, siendo uno de ellas: Advanced formula environment
  10. Presionar el botón Open de Advanced formula environment
  11. Se produce un fallo en la carga del complemento.

Este fallo es muy críptico y no está muy documentado.

Investigando, deduje que el fallo se debía a que el libro de trabajo estaba protegido por lo que, para desprotegerlo, en la cinta de opciones seleccione: Revisar y presioné el botón: Proteger libro, que no está protegido con contraseña.

Con lo que, presionando el botón Retry, conseguí que no fallará el complemento y pude ver en el nuevo entorno avanzado de fórmulas la función LAMBDA escrita en la celda B2 de la hoja 'LAMBDA':


6) Segundo intento de copia de la fórmula a un nombre definido

Ahora que ya funciona el nuevo editor avanzado de fórmulas, vamos a intentar copiar la fórmula original que está en el repositorio GitHub, con solo saber la URL del GitHub Gist que vamos a descargar.

En el editor avanzado se selecciona la pestaña Names y se hace clic en el icono con la nube de descarga: Import from URL to module

Se pega este enlace en el que se encuentra la fórmula original:

https://gist.github.com/Bhavya2502/8413a0e6af783ad18e72419eca47ad09

y se escribe un nombre para el módulo.

Al presionar el botón: Import, se produce un error:

¿Por qué será?


7) Tercer intento de copia de la fórmula a un nombre definido

Como la fórmula original está escrita en inglés y he leído que el entorno avanzado de fórmulas solamente está preparado para Excel en inglés, hay que usar la versión inglesa de Excel, con lo que hay que seguir los pasos indicados en el punto 2) de este artículo, configurando Excel en inglés.

Al intentar importar la fórmula original se produce el mismo error que en el punto 6) anterior.

¿Por qué será?


8) Cuarto intento de copia de la fórmula a un nombre definido

Como la fórmula original está escrita con el separador de listas con comas (,) habrá que cambiarlo como expliqué en el punto 3) de este artículo.

Al importar de nuevo la fórmula original se consigue descargar y copiar al módulo.

¡Eureka!

Modules es una nueva característica de Excel que guarda los nombres definidos en el libro de trabajo.

Y en el Administrador de nombres ha importado el nombre definido: Number_To_Words, con la fórmula original LAMBDA con funciones en inglés.


IMPORTANTE: Guardar y cerrar el archivo con el nuevo nombre definido.

Hay que volver a cambiar el separador de listas a: Español (España, internacional) y el idioma de Excel a español.

Al abrir de nuevo el archivo Excel guardado anteriormente, se puede editar la fórmula con las funciones convertidas al español.


Con lo que ya hemos conseguido descargar de la nube de HitHub una fórmula LAMBDA escrita en inglés, y la hemos importado en un módulo y en el Administrador de nombres en Excel en español.


Algún día Microsoft publicará en español el complemento: Advanced formula environment del Excel Labs (Entorno de formulas avanzado de los Laboratorios de Excel), mientras tanto "ajo y agua".


Videotutorial de cómo copiar fórmulas LAMBDA

En este videotutorial explico cómo copiar fórmulas LAMBDA escritas en inglés en un Excel en español.

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


En el próximo artículo explicaré cómo modificar la fórmula original para convertir números enteros muy grandes a palabras en español.

¡Y para corregir algunos errores de la fórmula original que convierte números al inglés!

Mi lista de blogs