E+

ChakiArt

Excel · Datos · Automatización

Volver a Excel Lab
Excel Lab · Programación funcional

LAMBDA

Permite crear funciones personalizadas directamente en Excel, definiendo parámetros y una fórmula que puede reutilizarse sin necesidad de VBA.

Excel 365Funciones personalizadasProgramación funcionalNivel avanzado

Qué hace

Convierte una fórmula en una función reutilizable

LAMBDA permite definir una fórmula que recibe uno o varios valores de entrada y devuelve un resultado.

Esos valores de entrada se representan mediante parámetros, que funcionan de forma parecida a las variables de una función en un lenguaje de programación.

Sintaxis

Cómo se construye una función LAMBDA

=LAMBDA(parámetro1,[parámetro2],...,cálculo)
parámetro1Obligatorio

Es el primer valor que recibirá la función.

[parámetro2]Opcional

Es opcional. Puedes agregar más parámetros cuando el cálculo necesita varias entradas.

cálculoObligatorio

Es la fórmula que utiliza los parámetros para generar el resultado.

Los parámetros son nombres que tú eliges

Puedes utilizar nombres descriptivos como venta, costo o cantidad para que la fórmula sea más fácil de leer.

Ejemplo sencillo

Crear una función para calcular margen

Supongamos que queremos calcular el margen a partir de una venta y un costo.

=LAMBDA(venta,costo,(venta-costo)/venta)
venta

parámetro 1

Representa el valor de venta.

costo

parámetro 2

Representa el costo asociado a esa venta.

(venta-costo)/venta

cálculo

Es la operación que devuelve el margen.

Aquí todavía no estamos usando la función

En este punto solo estamos definiendo cómo debe comportarse la función. Para probarla directamente podemos agregar los valores al final.

Probarla directamente

Una LAMBDA puede ejecutarse inmediatamente

Podemos colocar los valores que recibirá la función justo después del cierre de LAMBDA.

=LAMBDA(venta,costo,(venta-costo)/venta)(1000,700)
1000

venta

El primer valor se asigna al primer parámetro.

700

costo

El segundo valor se asigna al segundo parámetro.

El cálculo sería (1000-700)/1000, por lo que el resultado sería 30%.

Utilizando celdas

También podemos pasar referencias como argumentos

Si la venta está en A2 y el costo en B2, podemos probar la función así:

=LAMBDA(venta,costo,(venta-costo)/venta)(A2,B2)

La definición de la función no cambia. Solamente cambian los valores que enviamos a los parámetros.

Recomendado

Utilizando una tabla de Excel

Si tenemos una tabla llamada tblVentas con las columnas Venta y Costo, podemos utilizar referencias estructuradas.

=LAMBDA(venta,costo,(venta-costo)/venta)([@Venta],[@Costo])
[@Venta]

venta

Toma la venta correspondiente a la fila actual de la tabla.

[@Costo]

costo

Toma el costo correspondiente a la misma fila.

Pero el verdadero potencial aparece al guardar la LAMBDA

Escribir toda la función cada vez no tendría demasiado sentido. La gran ventaja es asignarle un nombre y reutilizarla después como cualquier otra función de Excel.

Función personalizada

Guardar LAMBDA con un nombre

Desde el Administrador de nombres de Excel podemos crear un nombre, por ejemplo:

Nombre

EPLUS_MARGEN

Se refiere a:

=LAMBDA(venta,costo,(venta-costo)/venta)

Después de guardarla, podemos utilizarla como si fuera una función nativa:

=EPLUS_MARGEN(1000,700)

O dentro de una tabla:

=EPLUS_MARGEN([@Venta],[@Costo])

Cómo entenderla

Puedes leer una LAMBDA como una función normal

“Recibe una venta y un costo, calcula la diferencia entre ambos y divide el resultado entre la venta.”

Cuándo utilizar LAMBDA

Cuando repites el mismo cálculo muchas veces.

Cuando quieres simplificar fórmulas largas.

Cuando necesitas crear funciones propias para un modelo.

Cuando quieres construir una biblioteca reutilizable sin VBA.

Funciones relacionadas

LAMBDA es la base de varias funciones modernas

MAP

Ejecuta una LAMBDA para cada elemento de una o varias matrices.

Ver ficha

REDUCE

Utiliza LAMBDA para recorrer una matriz y producir un resultado acumulado.

SCAN

Utiliza LAMBDA para devolver todos los estados acumulados durante el recorrido.

Biblioteca LAMBDA E+

Dentro del Dashboard Matricial utilizaremos LAMBDA para construir funciones personalizadas reutilizables como EPLUS_MARGEN y EPLUS_TOPN.

La idea es dejar de pensar únicamente en fórmulas individuales y comenzar a construir herramientas que podamos reutilizar en otros proyectos.

Ver Dashboard Matricial