REDUCE de CERO a PRO

REDUCE de CERO a PRO

Con REDUCE podrás transformar listas simples en análisis completos y automatizar cálculos que antes parecían imposibles. Si trabajas con datos y quieres llevar tu nivel de Excel al siguiente nivel, este vídeo es para ti.

La función REDUCE tiene fama de ser una de las más difíciles de aprender en Excel, pero su lógica es más sencilla de lo que parece una vez la entiendes. En este tutorial recorremos REDUCE desde cero: empezamos con ejemplos de calentamiento muy simples y vamos subiendo de nivel hasta un ejercicio avanzado de seguimiento de stocks que detecta roturas en los puntos intermedios. Si llegas hasta el final, habrás comprendido REDUCE al 100%.

Cómo se compone REDUCE

REDUCE es muy parecida a SCAN, pero con una diferencia clave. Ambas reciben tres elementos:

  • Un valor inicial (el acumulador de partida).
  • Un array o rango que se va a iterar.
  • Una función LAMBDA que se aplica en cada paso.

La diferencia es que, mientras SCAN devuelve el resultado línea a línea, REDUCE solo devuelve el resultado final. Internamente recorre cada fila acumulando, pero al terminar te muestra únicamente el último valor.

Dentro de la LAMBDA se usan dos parámetros: el primero es el valor acumulado (aquí lo llamamos a) y el segundo es el valor de la fila que se está procesando en esa iteración (lo llamamos i). Los nombres son libres, pero el primer parámetro siempre corresponde a lo acumulado y el segundo al valor actual.

Primeros ejercicios de calentamiento

Suma acumulada

Para sumar 1, 3 y 5 se parte de un valor inicial 0 y se aplica LAMBDA(a, i, a + i). REDUCE va sumando fila a fila y devuelve el total final.

Suma condicional

El mismo planteamiento sirve para una suma condicional. Si solo queremos acumular los valores mayores que 100, la función comprueba SI(i > 100, a + i, a): cuando se cumple la condición suma, y cuando no, mantiene el acumulado sin tener en cuenta ese valor.

Una de las dificultades de REDUCE es que genera una especie de caja negra: no podemos visualizar los pasos intermedios y hay que imaginarlos en un ejercicio de abstracción del cálculo.

REDUCE con matrices: apilar resultados

Aquí está una de las grandes ventajas frente a SCAN. Si cada iteración genera una matriz (por ejemplo, al usar DIVIDIRTEXTO para separar una lista por comas), SCAN da error porque no sabe manejar esa salida matricial. REDUCE, en cambio, sí puede condensar todo ese trabajo.

El truco es combinar REDUCE con APILARV (apilar verticalmente):

  • Se parte de un valor inicial (un espacio o doble espacio).
  • En cada paso se hace APILARV(a, DIVIDIRTEXTO(i, , ",")), añadiendo el resultado de la fila a lo ya acumulado.
  • La primera fila suele quedar vacía o con errores, por eso REDUCE aparece tan a menudo acompañado de EXCLUIR para eliminarla.

Así, a partir de una única columna obtenemos un resultado de varias columnas, algo que casi ninguna otra función dinámica permite. El resultado se puede rematar con BUSCARV/UNICOS o envolverlo para omitir los errores de las filas con distinto número de elementos.

Ejemplo práctico: lista de la compra

Imagina una lista de platos pedidos para una cena, cada uno con sus ingredientes en otra tabla. Con REDUCE podemos generar directamente la compra:

  1. Valor inicial: un doble espacio (que luego se excluye).
  2. Array: la lista de platos pedidos.
  3. En cada paso, un FILTRAR de la tabla de ingredientes donde la columna de plato coincide con el valor de la iteración.
  4. Se apila con APILARV(a, ...) para acumular todos los ingredientes.
  5. Se aplica EXCLUIR a la primera fila.

Sobre ese resultado se usa AGRUPARPOR, combinándolo con ELEGIRCOLS para seleccionar el ingrediente y la unidad, y se suman las cantidades necesarias. Si aumentamos las peticiones de un plato, todos sus ingredientes se recalculan automáticamente.

Cómo lee REDUCE los rangos de varias columnas

Antes del ejercicio final hay que entender un comportamiento poco intuitivo: cuando se pasa a REDUCE un rango con más de una columna, no lo recorre columna a columna, sino en zigzag (en Z). Es decir, lo trata siempre como una única secuencia de celdas. A diferencia de BYROW o MAP, donde puedes pasar varios rangos y actúan como esperas, REDUCE siempre interpreta el rango como una sola columna recorrida en Z.

Ejercicio avanzado: seguimiento de stocks con roturas

El reto final consiste en seguir un stock inicial y una serie de pedidos secuenciales, detectando cuándo un pedido supera el stock disponible y genera una rotura. Un simple acumulado daría el saldo total, pero ignoraría las unidades que no se pudieron servir.

La estrategia aprovecha la lectura en Z pasando un doble rango (producto y movimiento). En cada paso, la LAMBDA:

  • Detecta si el valor es letra (producto) o número (movimiento).
  • Si es producto, apila una nueva fila con la letra y dos ceros.
  • Si es movimiento, recupera la última fila con TOMAR, calcula el stock disponible y comprueba si el pedido lo supera. Si hay saldo suficiente, registra el movimiento sin rotura; si no, cancela el saldo a cero y genera la diferencia como unidades no servidas.

Cada paso usa APILARV y EXCLUIR para sustituir la fila provisional por la definitiva. Al final, un AGRUPARPOR por producto suma tanto el saldo como las roturas, ofreciendo una visión real de lo ocurrido en lugar de una mera suma aritmética.

Conclusión

REDUCE permite inyectar cálculos complejos línea a línea, transformando una columna en estructuras de datos completas. Desde sumas acumuladas hasta análisis de stocks con detección de roturas, dominar esta función cambia tu forma de trabajar con Excel. Y esto es solo el principio: practica con los archivos disponibles en influexcel.com y verás los datos con otros ojos.

Más contenido de Excel en InflueXcel