E+

ChakiArt

Excel · Datos · Automatización

Volver a Excel Lab
Excel Lab · Programación funcional

REDUCE

Recorre una matriz elemento por elemento y va acumulando un resultado hasta devolver un único valor final.

Excel 365LAMBDAAcumuladoresNivel avanzado

Qué hace

Convierte una matriz completa en un solo resultado

REDUCE recorre todos los elementos de una matriz y mantiene un valor acumulado mientras avanza.

En cada paso, una función LAMBDA recibe el acumulador actual y el siguiente elemento de la matriz. El resultado de ese cálculo se convierte en el nuevo acumulador.

Sintaxis

Cómo se construye REDUCE

=REDUCE([valor_inicial],matriz,LAMBDA(acumulador,valor,cálculo))
[valor_inicial]Opcional

Es opcional. Define el valor con el que comenzará el acumulador antes de recorrer la matriz.

matrizObligatorio

Es el rango o matriz cuyos elementos se procesarán uno por uno.

LAMBDAObligatorio

Define cómo debe combinarse el acumulador con cada nuevo elemento.

La clave está en el acumulador

El acumulador guarda el resultado parcial. Cada elemento de la matriz lo modifica hasta llegar al resultado final.

Ejemplo sencillo

Sumar todos los valores de una lista

Supongamos que tenemos cuatro ventas y queremos obtener el total utilizando REDUCE.

Venta
$1,000
$2,500
$3,200
$4,500
Ejemplo 1

Utilizando un rango normal

Si las ventas están en A2:A5 podemos utilizar:

=REDUCE(0,A2:A5,LAMBDA(acumulador,venta,acumulador+venta))
0

valor inicial

El acumulador comienza en cero.

A2:A5

matriz

Es el rango cuyos valores recorrerá REDUCE.

acumulador+venta

cálculo

Cada nueva venta se suma al resultado acumulado.

Recomendado

Utilizando una tabla de Excel

Si los datos están dentro de una tabla llamada tblVentas, podemos referenciar directamente la columna Venta.

=REDUCE(0,tblVentas[Venta],LAMBDA(acumulador,venta,acumulador+venta))
0

valor inicial

El cálculo comienza desde cero.

tblVentas[Venta]

matriz

Representa todos los registros de la columna Venta.

acumulador+venta

cálculo

Va sumando cada venta al resultado parcial.

¿Por qué usar una tabla?

Porque tblVentas[Venta] se expande automáticamente cuando agregamos nuevos registros. REDUCE procesará también esas nuevas filas sin cambiar la fórmula.

Resultado final

REDUCE recorrerá las cuatro ventas y devolverá un único valor:

$11,200

Paso a paso

Cómo cambia el acumulador

Inicio

0

0

Venta 1

0 + 1,000

1,000

Venta 2

1,000 + 2,500

3,500

Venta 3

3,500 + 3,200

6,700

Venta 4

6,700 + 4,500

11,200

Más posibilidades

REDUCE no sirve únicamente para sumar

El cálculo dentro de LAMBDA puede hacer mucho más que una suma. REDUCE puede construir resultados personalizados mientras recorre la matriz.

Contar elementos que cumplen determinadas condiciones.

Construir textos concatenados dinámicamente.

Calcular productos o acumulaciones personalizadas.

Crear lógica propia sobre matrices sin columnas auxiliares.

Otro ejemplo

Contar ventas mayores a $2,000

Podemos hacer que el acumulador aumente únicamente cuando una venta cumple cierta condición.

=REDUCE(0,tblVentas[Venta],LAMBDA(acumulador,venta,acumulador+(venta>2000)))

La expresión venta>2000 genera VERDADERO o FALSO. Dentro de esta operación, Excel puede convertir esos resultados en 1 y 0, permitiendo acumular cuántos registros cumplen la condición.

Diferencia importante

REDUCE y SCAN recorren la matriz, pero no devuelven lo mismo

REDUCE

Devuelve únicamente el resultado final del acumulador.

11,200

SCAN

Devuelve cada uno de los resultados intermedios del acumulador.

1,000 → 3,500 → 6,700 → 11,200

Cuándo utilizar REDUCE

Cuando necesitas obtener un solo resultado a partir de una matriz.

Cuando el cálculo depende del resultado obtenido en el paso anterior.

Cuando una suma, conteo o cálculo tradicional no cubre la lógica que necesitas.

Cuando quieres construir acumuladores personalizados mediante LAMBDA.

Funciones relacionadas

REDUCE trabaja especialmente bien con LAMBDA

REDUCE dentro del Dashboard Matricial

REDUCE nos permitirá crear acumulaciones y cálculos personalizados sobre matrices sin depender necesariamente de columnas auxiliares.

Junto con SCAN veremos cómo la lógica de un acumulador puede producir tanto un resultado final como una secuencia completa de resultados.

Ver Dashboard Matricial