🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Función LAMBDA de Excel — Crea tus propias funciones reutilizables (sin VBA)

|

Función LAMBDA de Excel — Crea tus propias funciones reutilizables (sin VBA)

TL;DRLAMBDA envuelve una fórmula en una función a la que puedes poner nombre y reutilizar — la primera vez que Excel te deja crear una función personalizada sin VBA. Un =LAMBDA(x, x*2) suelto devuelve #CALC! porque una definición no es una llamada; añade un paréntesis final =LAMBDA(x, x*2)(5) para ejecutarlo, o guárdalo en el Administrador de nombres para que todo el libro pueda invocar =MiFunc(...). Excel 365 y 2021+.

=LAMBDA(x, x*2)(5)                  ' -> 10  (el paréntesis final pasa el argumento)
=FtoC(212)                          ' -> 100 (tras nombrar =LAMBDA(t,(t-32)*5/9) como FtoC)

Todas las demás funciones de Excel las escribió Microsoft. LAMBDA es la que escribes tú. Coge la lógica de fórmula que llevas copiando de celda en celda, le da un nombre y parámetros, y la convierte en una función que se comporta exactamente igual que SUM (SUMA) o XLOOKUP (BUSCARX) — solo que hace lo que definiste. Sin macros, sin .xlsm, sin el editor de Visual Basic.

Lo que vas a aprender

  • El modelo mental: la definición de una función, no un resultado
  • La única regla que confunde a todo el mundo: un LAMBDA suelto devuelve #CALC! — y las dos maneras de invocarlo
  • Cómo guardar un LAMBDA en el Administrador de nombres para que funcione en todas partes
  • Recursión — un LAMBDA que se llama a sí mismo, lo único que solo LAMBDA (y VBA) puede hacer
  • Cuándo un LAMBDA gana a copiar y pegar una fórmula — y cuándo no

El modelo mental: un LAMBDA es la definición de una función

LAMBDA(parámetros, cálculo) no calcula nada por sí solo — describe un cálculo a la espera de entradas. Lee =LAMBDA(x, x*2) como "una función que toma x y devuelve x por 2." Eso es una definición, como escribir function double(x) { return x*2 } en código. Todavía no se ha llamado a nada — y por eso mismo Excel, por sí solo, no puede mostrarte un valor.

La regla que rompe LAMBDA: una definición no es una llamada

Escribe =LAMBDA(x, x*2) en una celda y obtienes #CALC!. Esta es la primera causa del "LAMBDA no funciona", y no es un error: definiste una función y nunca la llamaste. Hay dos maneras de invocarla:

=LAMBDA(x, x*2)              ' #CALC!  — una definición sin entradas
=LAMBDA(x, x*2)(5)          ' 10      — el (5) final la invoca con x = 5

El paréntesis final es la llamada. =LAMBDA(x, x*2)(5) significa "define esta función y ejecútala de inmediato con 5." Es útil para probar — pero escribir la definición entera cada vez echa por tierra el propósito. La verdadera recompensa es ponerle nombre.

Nómbralo en el Administrador de nombres = tu propia función de hoja de cálculo

Invocar un LAMBDA en línea es un truco de fiesta. Lo importante es guardarlo bajo un nombre y llamar a ese nombre en cualquier sitio. Ve a Fórmulas ▸ Administrador de nombres ▸ Nuevo, dale un nombre y pon el LAMBDA en Se refiere a:

Name:        FtoC
Refers to:   =LAMBDA(t, (t-32)*5/9)

Ahora =FtoC(212) devuelve 100 en cualquier celda, en cualquier hoja del libro — exactamente igual que una función integrada, sin una definición (...) a la vista:

=FtoC(212)            ' 100
=FtoC(A2)             ' convierte lo que haya en A2

Has añadido una función al vocabulario de Excel. Comparte el libro y la función viaja con él. Esta es la diferencia entre LET y LAMBDA: LET da nombre a valores dentro de una fórmula; LAMBDA da nombre a una función que invocas desde todas partes. (Y el cuerpo de un buen LAMBDA es casi siempre un LET.)

Recursión: un LAMBDA puede llamarse a sí mismo

Como un LAMBDA con nombre tiene un nombre, puede llamarse a sí mismo — recursión, lo único que ninguna fórmula corriente puede hacer y que antes necesitaba VBA. El truco: el nombre solo existe una vez lo has guardado en el Administrador de nombres, así que la recursión solo funciona en un LAMBDA con nombre, nunca en uno suelto.

Name:        FACT
Refers to:   =LAMBDA(n, IF(n<=1, 1, n*FACT(n-1)))

=FACT(5) se va recorriendo hacia abajo — 5*FACT(4), 4*FACT(3), … — y devuelve 120. El IF que detiene el descenso (n<=1) es el caso base; olvídalo y Excel recurre hasta que se rinde. La recursión es la forma en que LAMBDA resuelve las tareas genuinamente difíciles — recorrer una lista delimitada, limpiar una cadena con muchos caracteres malos, analizar una jerarquía — en pura fórmula.

El criterio: cuándo un LAMBDA se gana su sitio

Recurre a LAMBDA cuando te pilles pegando la misma fórmula compleja en muchas celdas, o construyendo una lógica que de otro modo escribirías como una UDF de VBA. Nombrarla una vez significa arreglarla una vez — cambia la definición en el Administrador de nombres y todas las llamadas se actualizan. Los límites honestos:

  • No envuelvas una fórmula de una línea que usas una sola vez — eso es solo indirección.
  • Para un cálculo que vive en una sola fórmula, quieres LET, no LAMBDA.
  • Para ejecutar un LAMBDA sobre una matriz entera (una columna de valores, cada fila de una tabla), lo emparejas con los ayudantes de LAMBDA — MAP, REDUCE, BYROW.

La progresión es lo importante: LET te da variables, LAMBDA te da funciones, y los ayudantes te dan bucles. Juntos convierten las fórmulas de Excel en un pequeño lenguaje de programación.

Cómo ayuda ExcelMaster

Escribir un LAMBDA correcto — parámetros, caso base, la prueba del paréntesis final, meterlo en el Administrador de nombres — es delicado, y justo el tipo de cosa que un copiloto de IA clava a la primera. ExcelMaster convierte "haz una función que pase de Fahrenheit a Celsius" o "una función recursiva que quite todos los dígitos de una cadena" en un LAMBDA funcional y con nombre, lo define por ti en el Administrador de nombres y te explica el caso base para que la recursión de verdad se detenga. Pruébalo con tus propios datos.

Preguntas frecuentes

¿Qué es la función LAMBDA en Excel?

LAMBDA te permite crear tu propia función reutilizable a partir de una fórmula, sin VBA. Defines parámetros y un cálculo, lo guardas bajo un nombre en el Administrador de nombres y luego lo invocas como cualquier función integrada: =MiFunc(...).

¿Por qué mi LAMBDA devuelve #CALC!?

Porque un =LAMBDA(...) suelto es una definición, no una llamada. Añade un paréntesis final con los argumentos — =LAMBDA(x, x*2)(5) — o guarda el LAMBDA bajo un nombre en el Administrador de nombres y llama a ese nombre.

¿Cómo hago que un LAMBDA sea reutilizable en todo el libro?

Abre Fórmulas ▸ Administrador de nombres ▸ Nuevo, dale un nombre (por ejemplo FtoC) y pon el LAMBDA en Se refiere a: =LAMBDA(t,(t-32)*5/9). Ahora =FtoC(212) funciona en cualquier celda del libro.

¿Puede un LAMBDA llamarse a sí mismo (recursión)?

Sí — un LAMBDA con nombre puede referirse a su propio nombre, de modo que =LAMBDA(n, IF(n<=1, 1, n*FACT(n-1))) nombrado FACT calcula un factorial. Incluye siempre un caso base (aquí n<=1) para que la recursión se detenga.

¿Necesito VBA para crear una función personalizada en Excel?

No. LAMBDA crea funciones personalizadas con fórmulas puras — sin macros, sin archivo .xlsm, sin el editor de Visual Basic. Está disponible en Excel 2021, 2024 y Microsoft 365.

Probado en

Probado en: Excel 365 (Windows 11): última verificación el 22/06/2026.

Guías relacionadas: Excel LET · Excel MAP, REDUCE y BYROW · Excel FILTER · Excel SEQUENCE