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
LAMBDAque 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
REDUCEaparece tan a menudo acompañado deEXCLUIRpara 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:
- Valor inicial: un doble espacio (que luego se excluye).
- Array: la lista de platos pedidos.
- En cada paso, un
FILTRARde la tabla de ingredientes donde la columna de plato coincide con el valor de la iteración. - Se apila con
APILARV(a, ...)para acumular todos los ingredientes. - Se aplica
EXCLUIRa 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 casos con estas funciones
Más contenido de Excel en InflueXcel
- Saldo acumulado por mes: tres enfoques (REDUCE+BYROW, PIVOTARPOR+acumulado, MMULT) CasoJuan plantea una pregunta que parece sencilla y se acaba convirtiendo en tres clases magistrales sobre cómo recorrer una matriz mes a mes. T
- Precio más reciente por artículo: REDUCE, AGRUPARPOR y números complejos CasoNuevo reto interesante planteado por Miki: dada una tabla con artículos y sus precios históricos por año (múltiples filas por artículo), obt
- Cálculo iterativo masivo: REDUCE + APILARV vs BISECCIÓN recursiva vs cálculo directo CasoNuevo caso que combina logística portuaria con fórmulas avanzadas de Excel. Un miembro necesita calcular la distribución de días de almacena
- Pivotar datos filtrados sin celdas vacías: PIVOTARPOR vs REDUCE CasoReto de LinkedIn que un miembro trae al grupo evitando ver las soluciones originales: tiene una tabla con categorías, meses y valores, y nec
- Descomposición de Cholesky con matrices dinámicas: de VBA a LAMBDA+REDUCE CasoJuan Pablo lanza un reto al grupo: tiene una descomposición de Cholesky resuelta con VBA y quiere saber si se puede hacer con matrices dinám
- Calcular costes por tramos escalonados con SUMAPRODUCTO y REDUCE CasoUn miembro de la comunidad desde Chile plantea un problema frecuente en facturación y logística: calcular el coste total cuando el precio va
- Cálculos iterativos con REDUCE y APILARV en Excel CasoLa comunidad aborda un caso sobre cómo trabajar con bucles iterativos en Excel usando funciones modernas. Un miembro necesita realizar cálcu
- Resolver ecuaciones iterativas en Excel: Colebrook con LAMBDA recursiva y REDUCE CasoCaso excepcional que demuestra el poder de las funciones modernas de Excel en ingeniería. Un ingeniero industrial de casi 70 años, consultor
- Lollipop chart en Excel con barras de error TutorialEl lollipop chart es el sustituto elegante del gráfico de barras cuando tienes muchos elementos y el cuadro de mando empieza a pesar: un pal
- Resumen contable mensual con PIVOTARPOR: totales, filtros y compatibilidad con segmentadores CasoUn miembro de la comunidad gestiona la contabilidad de un Club Social en Excel. En la hoja "Imputacions" registra todos los movimientos con