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 contenido de Excel en InflueXcel
- Reorganizar tablas mensuales: cruzar por persona buscando en vertical y en horizontal CasoNuevo caso interesante de la comunidad. Juan tenía varias tablas mensuales (a veces más de una en el mismo mes) y quería reorganizarlas por
- Un dato de todas las hojas, escrito una sola vez CasoEsta semana surgió en la comunidad un reto muy habitual cuando un libro tiene muchas hojas: mostrar el valor de la celda B3 de cada hoja, in
- Un índice de hojas que se genera solo: HYPERLINK en rangos desbordados CasoEsta semana surgió en la comunidad un pequeño "expediente X". Un miembro llegó tras ver un vídeo con una idea clara en la cabeza: montar una
- Reformatear un código alfanumérico al teclear: de NN1234567 a NN-12345-67 CasoEsta semana surgió en la comunidad una duda muy práctica: cómo conseguir que al escribir un código tipo NN1234567 (dos letras seguidas de si
- Reclasificación contable: duplicar cada fila con una conversión distinta por columna, en un único bloque CasoInteresante reto contable planteado esta semana por un miembro de la comunidad. Juan parte de una tabla de apuntes contables (rango C7:P10)
- Cuenta clientes y cervezas en Excel 🍺 Caso "La Taberna: El Poney Pisador" (Nivel 1) Tutorial🍺 Noche cerrada en Bree. Frodo, Sam, Merry y Pippin cruzan la puerta de El Poney Pisador huyendo de los Jinetes Negros: la sala está a reven
- SUMAR.SI.CONJUNTO en acción con El Señor de los Anillos 🃏 El 21 de La Comarca TutorialLo que practicamos en este caso: • Contar cartas por palo con CONTAR.SI • Sumar valores con condiciones (SUMAR.SI / SUMAR.SI.CONJUNTO) • Apl
- Reto de Excel: El cumpleaños de Bilbo 🎂 | CONTAR.SI y SUMAR.SI desde cero (Nivel 1) TutorialEn La Comarca se celebra el cumpleaños número 111 de Bilbo Bolsón: cerveza, pasteles, fuegos artificiales… y algún curioso escondido tras el
- ¡Excel PowerQuery Hack! Conexiones con rutas relativas en 10 minutos! Tutorial¿Harto de ajustar las conexiones en PowerQuery cada vez que compartes tu archivo de Excel? 🙄 Convierte las conexiones de PowerQuery con ruta
- Mejora un 90% el rendimiento de Power Query con SQLite TutorialPower Query es una herramienta potente para consolidar, combinar y calcular datos, pero cuando trabajamos con millones de registros y calcul