TL;DR —
MAP,REDUCE,SCAN,BYROWyBYCOLson funciones de orden superior: toman unLAMBDAy lo ejecutan sobre una matriz — unFor Eachsin macro. El fallo número 1: el LAMBDA de BYROW/BYCOL debe devolver un valor por cada fila/columna, o te da#CALC!. Elige el ayudante según la forma de la respuesta que quieres. Excel 365 y 2024+.
=MAP(A2:A100, LAMBDA(v, IF(v<0, 0, v))) ' transforma cada celda
=BYROW(data, LAMBDA(row, SUM(row))) ' un total por fila
=REDUCE(0, A2:A100, LAMBDA(acc, v, acc + v)) ' colapsa a un único valor
LET te dio variables.
LAMBDA te dio funciones. Los ayudantes te dan la
última pieza de un lenguaje de programación: los bucles. Cada uno toma un
LAMBDA y lo ejecuta sobre una matriz, así que nunca escribes For Each —
describes qué hacer con cada elemento y Excel itera.
Lo que vas a aprender
- El modelo mental: los bucles — pásale un LAMBDA a una matriz
- Qué hace cada ayudante: MAP (transformar), REDUCE (colapsar), SCAN (totales acumulados), BYROW/BYCOL (un valor por fila/columna)
- La regla número 1: BYROW debe devolver un único valor — la corrección de
#CALC!para "una suma por fila" - El patrón del acumulador de REDUCE — y cuándo un simple SUMIFS sigue ganando
El modelo mental: estos son los bucles
Hay cinco ayudantes, y se dividen con claridad según qué forma sale:
- MAP — transforma cada elemento → una matriz de la misma forma (10 celdas entran, 10 celdas salen).
- REDUCE — colapsa una matriz entera hasta un único valor (un acumulador que avanza: total, concatenación, máximo).
- SCAN — como REDUCE, pero conserva cada paso intermedio → un total acumulado que se desborda hacia abajo por la columna.
- BYROW / BYCOL — ejecuta el LAMBDA sobre cada fila (o columna) completa → un valor por fila (o columna).
En cuanto los ordenas por la forma de salida — misma forma, un valor, cada paso, uno por fila — elegir el ayudante correcto deja de ser adivinar.
Patrones para copiar y pegar
MAP — aplica una transformación a cada elemento:
=MAP(A2:A100, LAMBDA(v, IF(v<0, 0, v)))
REDUCE — reduce una matriz hasta un único valor (el acumulador acc arrastra
el resultado hacia delante):
=REDUCE(0, A2:A100, LAMBDA(acc, v, acc + v))
SCAN — la misma idea, pero desborda cada paso (un total acumulado):
=SCAN(0, A2:A100, LAMBDA(acc, v, acc + v))
BYROW — un valor por fila (aquí, el máximo de cada fila):
=BYROW(A2:D100, LAMBDA(row, MAX(row)))
La regla que rompe BYROW: devuelve un valor por fila
Este es el ayudante que la gente usa mal, y el síntoma es #CALC!. El LAMBDA
que le das a BYROW (o BYCOL) debe devolver un único valor por cada fila — un
número, una cadena de texto, una sola celda. Si devuelve una matriz, BYROW no
puede encajarla y lanza #CALC!.
=BYROW(data, LAMBDA(row, SUM(row))) ' un número por fila -> funciona
=BYROW(data, LAMBDA(row, row*2)) ' #CALC! — row*2 es una matriz, no un valor único
Ese segundo caso es en realidad un trabajo para MAP (transformar cada
elemento), no para BYROW. El error también va en sentido contrario: hay quien
recurre a MAP para conseguir "una suma por fila" y no logra que funcione —
porque MAP actúa elemento a elemento y nunca agrega una fila. Si quieres un
valor por fila, eso es BYROW. Si quieres transformar cada celda, eso es MAP. La
forma de salida decide.
El acumulador de REDUCE: el único patrón que hay que interiorizar
REDUCE es el más potente y el menos intuitivo, por culpa de acc — el
acumulador que arrastra el resultado parcial de un elemento al siguiente. Lee
LAMBDA(acc, v, …) como "aquí tienes el resultado hasta ahora (acc) y el
siguiente valor (v); devuelve el nuevo resultado-hasta-ahora."
- Sumar:
LAMBDA(acc, v, acc + v)empezando en0 - Concatenar:
LAMBDA(acc, v, acc & ", " & v)empezando en"" - Conteo condicional:
LAMBDA(acc, v, acc + (v>100))empezando en0
Una vez acc te encaja, REDUCE resuelve las tareas de "recorrer la lista y
construir algo" que antes te obligaban a recurrir a VBA — saldos acumulados con
reglas, agregaciones personalizadas, bucles de análisis.
El criterio: cuándo un simple agregado sigue ganando
Estos ayudantes iteran en el motor de cálculo y pueden ser lentos en matrices
muy grandes. Para una suma normal, SUM/SUMPRODUCT/SUMIFS son más rápidos y
sencillos — recurre a los ayudantes cuando la lógica por elemento sea
genuinamente personalizada, no cuando un agregado integrado ya hace el trabajo.
| Lo que quieres… | Ayudante | Forma de salida |
|---|---|---|
| Transformar cada elemento | MAP | La misma forma que la entrada |
| Un valor por fila | BYROW | Una columna de resultados |
| Un valor por columna | BYCOL | Una fila de resultados |
| Colapsar a un único valor | REDUCE | Una celda |
| Un total acumulado por filas | SCAN | La misma forma, acumulativa |
Si estás arrastrando una fórmula de total acumulado por 10.000 filas, eso es un
SCAN; si estás añadiendo una columna auxiliar solo para calcular un valor por
fila, eso es un BYROW. Pero si un SUMIFS ya responde a la pregunta, úsalo —
los ayudantes son para lógica personalizada, no para reimplementar agregados.
Cómo ayuda ExcelMaster
Las funciones de orden superior son la parte más empinada del Excel moderno —
acc, las formas de salida, MAP-frente-a-BYROW — y justo donde un copiloto de IA
ahorra más tiempo. ExcelMaster convierte "dame el
máximo de cada fila" o "un saldo acumulado que se reinicia cada mes" en la
fórmula MAP/REDUCE/BYROW correcta, elige el ayudante adecuado para la forma de
salida que quieres y te explica el paso del acumulador uno a uno. Cuando un
ayudante lanza #CALC!, te dice si necesitabas BYROW en lugar de MAP — y la
reescribe. Pruébalo con tus propios datos.
Preguntas frecuentes
¿Qué son las funciones ayudantes de LAMBDA en Excel?
MAP, REDUCE, SCAN, BYROW y BYCOL son funciones de orden superior: cada
una toma un LAMBDA y lo ejecuta sobre una matriz. Te permiten recorrer datos en
una fórmula — transformando, agregando o acumulando — sin escribir una macro de
VBA.
¿Por qué BYROW devuelve #CALC!?
El LAMBDA que le pasaste devuelve una matriz en lugar de un único valor. BYROW
necesita un valor por fila — agrega la fila con SUM(row), MAX(row), etc. Si lo
que de verdad quieres es transformar cada elemento, usa MAP, no BYROW.
¿Cuál es la diferencia entre MAP y BYROW?
MAP actúa elemento a elemento y devuelve una matriz de la misma forma que la
entrada. BYROW actúa sobre filas enteras y devuelve un valor por fila. Usa MAP
para transformar cada celda; usa BYROW para obtener un total, máximo o conteo por
fila.
¿Cómo funciona REDUCE en Excel?
REDUCE(inicial, matriz, LAMBDA(acc, v, …)) recorre la matriz arrastrando un
acumulador acc. Por cada valor v calcula un nuevo acc. =REDUCE(0, A2:A100, LAMBDA(acc, v, acc+v)) suma el rango; empezando en "" con acc & v lo
concatena.
¿Qué versiones de Excel tienen MAP, REDUCE y BYROW?
Los ayudantes de LAMBDA están disponibles en Excel 2024 y Microsoft 365 para Windows y Mac. No están en Excel 2021, 2019 ni 2016.
Probado en
Probado en: Excel 365 (Windows 11): última verificación el 22/06/2026.
Guías relacionadas: Excel LAMBDA · Excel LET · Excel SORT · Excel SEQUENCE
