Inicio / Excel / Excel Avanzado: Power User / Arrays dinámicos y funciones LAMBDA

Arrays dinámicos y funciones LAMBDA

LAMBDA, MAP, REDUCE, SCAN y funciones personalizadas sin VBA.

Avanzado
🔒 Solo lectura
📖

Estás en modo lectura

Puedes leer toda la lección, pero para marcar progreso, hacer ejercicios y ganar XP necesitas una cuenta Pro.

Desbloquear por $9/mes

Arrays dinámicos y funciones LAMBDA

Las funciones modernas de Excel 365 que eliminan la necesidad de fórmulas auxiliares.

Arrays dinámicos: el paradigma

En Excel 365, una fórmula puede devolver múltiples valores que se "derraman" automáticamente.

Comportamiento de derrame (Spill)

=FILTRAR(A2:D100, C2:C100="Activo")

Esta fórmula puede devolver 50 filas. Excel las coloca automáticamente debajo de la celda.

Operador de derrame (#)

Referencia al rango derramado completo:

=SUMA(F2#)       → suma todo el rango derramado desde F2
=CONTARA(F2#)    → cuenta el rango derramado

Funciones clave de arrays dinámicos

SECUENCIA

=SECUENCIA(filas, [columnas], [inicio], [incremento])
=SECUENCIA(10)                    → 1 a 10
=SECUENCIA(5, 5, 1, 1)           → tabla 5×5
=SECUENCIA(10, 1, 100, -5)       → 100, 95, 90, ...
=SECUENCIA(12, 1, FECHA(2026,1,1), 30)  → 12 fechas mensuales

FILTRAR

=FILTRAR(array, incluir, [si_vacío])
// Múltiples condiciones AND
=FILTRAR(A2:E100, (B2:B100="Activo")*(D2:D100>1000))

// Múltiples condiciones OR
=FILTRAR(A2:E100, (C2:C100="MX")+(C2:C100="CO"))

// Con valor por defecto
=FILTRAR(datos, condición, "Sin resultados")

ORDENAR y ORDENARPOR

=ORDENAR(array, [indice_col], [orden], [por_col])
=ORDENARPOR(array, rango_orden1, [orden1], ...)
// Ordenar por múltiples columnas
=ORDENARPOR(A2:D100, D2:D100, -1, B2:B100, 1)

// Top 10
=INDICE(ORDENAR(A2:D100, 4, -1), SECUENCIA(10), {1,2,3,4})

UNICOS

=UNICOS(array, [por_col], [exactamente_una_vez])

LAMBDA: funciones personalizadas

Sintaxis básica

=LAMBDA(parámetro1, parámetro2, expresión)

Crear función con nombre

  1. Fórmulas → Administrador de nombres → Nuevo
  2. Nombre: IVA
  3. Se refiere a: =LAMBDA(monto, monto * 0.16)

Uso: =IVA(A2) → calcula el 16% de A2

Ejemplos

// Conversión de temperatura
CTOF = LAMBDA(c, c * 9/5 + 32)
=CTOF(100) → 212

// Calificación por letra
LETRA = LAMBDA(nota,
    SI(nota>=90,"A", SI(nota>=80,"B", SI(nota>=70,"C", SI(nota>=60,"D","F"))))
)
=LETRA(85) → "B"

// Precio con descuento
NETO = LAMBDA(precio, descuento, precio * (1 - descuento) * 1.16)
=NETO(1000, 0.10) → 1044

Funciones LAMBDA auxiliares

MAP

Aplica una función a cada elemento:

=MAP(A2:A100, LAMBDA(x, MAYUSC(RECORTAR(x))))
=MAP(B2:B100, LAMBDA(x, SI(x>100, "Alto", "Normal")))

REDUCE

Reduce un array a un solo valor:

=REDUCE(0, A2:A10, LAMBDA(acc, val, acc + val))
→ equivale a SUMA

=REDUCE(1, A2:A10, LAMBDA(acc, val, acc * val))
→ producto de todos los valores

=REDUCE("", A2:A5, LAMBDA(acc, val, acc & SI(acc="","",", ") & val))
→ concatenar con comas

SCAN

Como REDUCE pero devuelve valores intermedios:

=SCAN(0, A2:A10, LAMBDA(acc, val, acc + val))
→ suma acumulada

MAKEARRAY

Crea un array con una función:

=MAKEARRAY(10, 10, LAMBDA(f, c, f * c))
→ tabla de multiplicar 10×10

BYCOL y BYROW

Aplica una función por columna o fila:

=BYCOL(A2:D100, LAMBDA(col, PROMEDIO(col)))
→ promedio de cada columna

=BYROW(A2:D10, LAMBDA(fila, MAX(fila)))
→ máximo de cada fila

LAMBDA recursiva

Para algoritmos que necesitan llamarse a sí mismos:

// Factorial
FACT = LAMBDA(n, SI(n<=1, 1, n * FACT(n-1)))
=FACT(5) → 120

// Fibonacci
FIB = LAMBDA(n, SI(n<=1, n, FIB(n-1) + FIB(n-2)))

Dale un nombre a la LAMBDA para que pueda referenciarse a sí misma.

Combinaciones poderosas

Dashboard dinámico sin tablas dinámicas

=LET(
    datos, Tabla1,
    categorias, UNICOS(Tabla1[Categoría]),
    totales, MAP(categorias, LAMBDA(cat, 
        SUMAR.SI(Tabla1[Categoría], cat, Tabla1[Monto]))),
    ORDENARPOR(APILAR.H(categorias, totales), totales, -1)
)

Resumen

LAMBDA y los arrays dinámicos representan el futuro de Excel. Eliminan hojas auxiliares, columnas calculadas temporales y fórmulas CSE. MAP, REDUCE y las funciones de array convierten a Excel en un entorno casi funcional.

🔒

Ejercicio práctico disponible

Funciones LAMBDA y operaciones con arrays

Desbloquear ejercicios
// Funciones LAMBDA y operaciones con arrays
// Desbloquea Pro para acceder a este ejercicio
// y ganar +50 XP al completarlo

function ejemplo() {
    // Tu código aquí...
}

¿Te gustó esta lección?

Con Pro puedes marcar progreso, hacer ejercicios, tomar quizzes, ganar XP y obtener tu constancia.

Ver planes desde $9/mes