Cómo utilizar la función LAMBDA de Excel -

Tabla de contenido

Resumen

La función Excel LAMBDA proporciona una forma de crear funciones personalizadas que se pueden reutilizar en un libro de trabajo, sin VBA o macros.

Propósito

Crear función personalizada

Valor devuelto

Como lo define la fórmula

Sintaxis

= LAMBDA (parámetro,…, cálculo)

Argumentos

  • parámetro : un valor de entrada para la función.
  • cálculo : el cálculo que se realizará como resultado de la función. Debe ser el último argumento.

Versión

Excel 365

Notas de uso

En programación de computadoras, LAMBDA se refiere a una función o expresión anónima. Una función anónima es una función definida sin nombre. En Excel, la función LAMBDA proporciona una forma de definir y encapsular la funcionalidad de una fórmula específica, al igual que una función de Excel. Una vez definida, una función LAMBDA se puede nombrar y reutilizar en otra parte de un libro de trabajo. En otras palabras, la función LAMBDA es una forma de crear funciones personalizadas.

Uno de los beneficios clave de una función LAMBDA personalizada es que la lógica contenida en la fórmula existe en un solo lugar. Esto significa que solo hay una copia del código para actualizar al solucionar problemas o actualizar la funcionalidad, y los cambios se propagarán automáticamente a todas las instancias de la función LAMBDA en un libro de trabajo. Una función LAMBDA no requiere VBA ni macros.

Ejemplo 1 | Ejemplo 2 | Ejemplo 3

Creando una función LAMBDA

Las funciones de LAMBDA generalmente se crean y depuran en la barra de fórmulas en una hoja de trabajo, luego se mueven al administrador de nombres para asignar un nombre que se puede usar en cualquier lugar de un libro de trabajo.

Hay cuatro pasos básicos para crear y usar una fórmula personalizada basada en la función LAMBDA:

  1. Verifique la lógica que usará con una fórmula estándar
  2. Cree y pruebe una versión LAMBDA genérica (sin nombre) de la fórmula
  3. Nombre y defina la fórmula LAMBDA con el administrador de nombres
  4. Pruebe la nueva función personalizada usando el nombre definido

Los ejemplos siguientes describen estos pasos con más detalle.

Ejemplo 1

Para ilustrar cómo funciona LAMBDA, comencemos con una fórmula muy simple:

=x*y // multiple x and y

En Excel, esta fórmula usaría normalmente referencias de celda como esta:

=B5*C5 // with cell references

Como puede ver, la fórmula funciona bien, por lo que estamos listos para continuar con la creación de una fórmula LAMBDA genérica (versión sin nombre). Lo primero a considerar es si la fórmula requiere entradas (parámetros). En este caso, la respuesta es "sí": la fórmula requiere un valor para x y un valor para y. Con eso establecido, comenzamos con la función LAMBDA y agregamos los parámetros requeridos para la entrada del usuario:

=LAMBDA(x,y // begin with input parameters

A continuación, necesitamos agregar el cálculo real, x * y:

=LAMBDA(x,y,x*y)

Si ingresa la fórmula en este punto, obtendrá un #CALC! error. Esto sucede porque la fórmula no tiene valores de entrada con los que trabajar, ya que ya no hay referencias de celda. Para probar la fórmula, necesitamos usar una sintaxis especial como esta:

=LAMBDA(x,y,x*y)(B5,C5) // testing syntax

Esta sintaxis, donde los parámetros se proporcionan al final de una función LAMBDA en un conjunto separado de paréntesis, es exclusiva de las funciones LAMBDA. Esto permite que la fórmula se pruebe directamente en la hoja de trabajo, antes de que se nombre el LAMBDA. En la siguiente pantalla, puede ver que la función LAMBDA genérica en F5 devuelve exactamente el mismo resultado que la fórmula original en E5:

Ahora estamos listos para nombrar la función LAMBDA con el Administrador de nombres. Primero, seleccione la fórmula, * sin incluir * los parámetros de prueba al final. A continuación, abra el Administrador de nombres con el acceso directo Control + F3 y haga clic en Nuevo.

En el cuadro de diálogo Nuevo nombre, ingrese el nombre "XBYY", deje el alcance establecido en el libro de trabajo y pegue la fórmula que copió en el área de entrada "Se refiere a".

Asegúrese de que la fórmula comience con un signo igual (=). Ahora que la fórmula LAMBDA tiene un nombre, se puede usar en el libro de trabajo como cualquier otra función. En la pantalla de abajo, la fórmula en G5, copiada, es:

La nueva función personalizada devuelve el mismo resultado que las otras dos fórmulas.

Ejemplo 2

En este ejemplo, convertiremos una fórmula para calcular el volumen de una esfera en una función LAMBDA personalizada. La fórmula general de Excel para calcular el volumen de una esfera es:

=4/3*PI()*A1^3 // volume of sphere

donde A1 representa el radio. La siguiente pantalla muestra esta fórmula en acción:

Tenga en cuenta que esta fórmula solo requiere una entrada (radio) para calcular el volumen, por lo que nuestra función LAMBDA solo necesitará un parámetro (r), que aparecerá como el primer argumento. Aquí está la fórmula convertida a LAMBDA:

=LAMBDA(r,4/3*PI()*r^3) // generic lambda

De vuelta en la hoja de trabajo, reemplazamos la fórmula original con la versión genérica de LAMBDA. Tenga en cuenta que estamos usando la sintaxis de prueba, que nos permite conectar B5 para el radio:

Los resultados de la fórmula LAMBDA genérica son exactamente los mismos que los de la fórmula original, por lo que el siguiente paso es definir y nombrar esta fórmula LAMBDA con el Administrador de nombres, como se explicó anteriormente. El nombre utilizado para una función LAMBDA puede ser cualquier nombre válido de Excel. En este caso, nombraremos la fórmula "SphereVolume".

De vuelta en la hoja de trabajo, reemplazamos la fórmula LAMBDA genérica (sin nombre) con la versión LAMBDA nombrada e ingresamos B5 para r. Observe que los resultados devueltos por la función personalizada SphereVolume son exactamente los mismos que los resultados anteriores.

Ejemplo 3

En este ejemplo, crearemos una función LAMBDA para contar palabras. Excel no tiene una función para este propósito, pero puede contar palabras con una celda con una fórmula personalizada basada en las funciones LEN y SUSTITUIR como esta:

=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1

Lea la explicación detallada aquí. Aquí está la fórmula en acción en una hoja de trabajo:

Observe que estamos obteniendo un conteo incorrecto de 1 cuando la fórmula tiene una celda vacía (B10). Abordaremos este problema a continuación.

Esta fórmula solo requiere una entrada, que es el texto que contiene palabras. En nuestra función LAMBDA, nombraremos este argumento "texto". Aquí está la fórmula convertida a LAMBDA:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)

Observe que "texto" aparece como el primer argumento y el cálculo es el segundo y último argumento. En la siguiente pantalla, reemplazamos la fórmula original con la versión genérica de LAMBDA. Observe que estamos utilizando la sintaxis de prueba, que nos permite conectar B5 para el texto:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)(B5)

Los resultados de la fórmula LAMBDA genérica son los mismos que los de la fórmula original, por lo que el siguiente paso es definir y nombrar esta fórmula LAMBDA con el Administrador de nombres, como se explicó anteriormente. Llamaremos a esta fórmula "CountWords".

A continuación, reemplazamos la fórmula LAMBDA genérica (sin nombre) con la versión LAMBDA nombrada e ingresamos B5 para el texto. Observe que obtenemos exactamente los mismos resultados.

La fórmula utilizada en el Administrador de nombres para definir CountWords es la misma que la anterior, sin la sintaxis de prueba:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)

Arreglando el problema de la celda vacía

Como se mencionó anteriormente, la fórmula anterior devuelve un recuento incorrecto de 1 cuando una celda está vacía. Este problema se puede solucionar reemplazando +1 con el siguiente código:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+(LEN(TRIM(B5))>0)

Explicación completa aquí. Para actualizar la fórmula LAMDA con nombre existente, nuevamente necesitamos usar el Administrador de nombres:

  1. Abra el Administrador de nombres
  2. Seleccione el nombre "CountWords" y haga clic en "Editar".
  3. Reemplaza el código "Se refiere a" con esta fórmula:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+(LEN(TRIM(text))>0))

Una vez que se cierra el Administrador de nombres, CountWords funciona correctamente en celdas vacías, como se ve a continuación:

Nota: al actualizar el código una vez en el Administrador de nombres, todas las instancias de la fórmula CountWords se actualizan a la vez. Este es un beneficio clave de las funciones personalizadas creadas con LAMBDA: las actualizaciones de fórmulas se pueden administrar en un solo lugar.

Articulos interesantes...