¿MAP o BYROW? Descubre cuándo usar cada una

¿MAP o BYROW? Descubre cuándo usar cada una

¿MAP o BYROW? Descubre cuándo usar cada una y cómo estas funciones pueden transformar tu forma de trabajar en Excel. En este vídeo aprenderás la diferencia clave entre MAP y BYROW, sus similitudes y verás ejemplos prácticos para que nunca más dudes cuál aplicar en cada caso.

Las funciones MAP y BYROW son dos piezas clave para entender el Excel moderno. A simple vista se parecen mucho —ambas reciben un rango y le aplican una función con ayuda de LAMBDA—, pero esconden una diferencia fundamental que determina cuál debes usar en cada situación. En este tutorial vemos cómo se construyen paso a paso, en qué se parecen, en qué se diferencian y, sobre todo, cuándo conviene usar cada una.

Cómo se construye MAP

MAP recorre un rango y aplica una función a cada celda de forma individual. Su estructura básica es:

  • Le pasas el rango sobre el que quieres trabajar.
  • Le indicas con LAMBDA qué operación realizar en cada celda.

Por ejemplo, =MAP(rango; LAMBDA(celda; celda*2)) multiplica por dos cada valor del rango. La variable celda representa cada uno de los valores que recorre. El resultado es una matriz del mismo tamaño que el rango de entrada: si le pasas dos columnas, te devuelve dos columnas con cada celda transformada.

Cómo se construye BYROW

BYROW se escribe igual: un rango más una LAMBDA. La diferencia es que BYROW trabaja fila a fila y solo puede devolver un único valor por fila (una sola columna de salida).

Con un rango de una columna, =BYROW(rango; LAMBDA(fila; fila*2)) da el mismo resultado que MAP. Y aquí está el origen de la confusión: cuando el rango es de una sola columna, ambas funciones se comportan igual.

La diferencia clave: varias columnas

El comportamiento cambia en cuanto el rango tiene más de una columna:

  • MAP sigue funcionando sin problema: aplica la función celda por celda y devuelve una matriz con las mismas filas y columnas.
  • BYROW da un error de matrices anidadas. Como solo puede devolver una columna, no sabe qué hacer si le pides un resultado por cada valor de la fila.

Para que BYROW funcione con varias columnas, tienes que decirle cómo resumir esa fila en un solo número. Por ejemplo, LAMBDA(fila; SUMA(fila2)) multiplica cada valor por dos y suma toda la fila, devolviendo un único resultado. Curiosamente, si haces SUMA(celda2) dentro de un MAP, no cambia nada: como MAP ya procesa celda a celda, la suma de una sola celda es esa misma celda.

La regla práctica: BYROW acumula, MAP transforma. Usa MAP para aplicar la misma función a un conjunto de celdas, aunque sea una sola columna; reserva BYROW para cuando necesites acumular varias columnas en un valor por fila.

Varios rangos en MAP

Una particularidad de MAP es que admite varios rangos como parámetros de entrada. Puedes pasarle dos rangos y operar entre ellos, por ejemplo: MAP(rango1; rango2; LAMBDA(celda1; celda2; celda1+celda2)). El requisito es que todos los rangos tengan el mismo tamaño (mismo número de filas y columnas). Si tienen tamaños distintos, Excel intenta emparejar solo las columnas coincidentes y devuelve error o resultados parciales donde no hay coincidencia.

Trabajar con referencias, no solo con valores

Tanto MAP como BYROW pueden devolver la referencia de la celda que están recorriendo, no solo su valor. Esto abre la puerta a crear rangos dinámicos. Por ejemplo, usando la celda como referencia puedes construir una suma acumulada desde la primera casilla hasta la celda actual:

  • En MAP, defines un rango de referencia fija y sumas SUMA(primera_celda:celda), obteniendo el acumulado en cada posición.
  • En BYROW puedes simular el comportamiento de SCAN, sumando en cada fila el valor acumulado desde la celda inicial.

Un detalle importante: esto solo funciona si el rango existe físicamente en la hoja. Si conviertes el rango en una matriz mediante una operación (por ejemplo, multiplicándolo dentro de otra fórmula), las celdas pierden su referencia y los juegos de referencias dejan de funcionar.

Caso práctico: horas de una plantilla

El ejemplo final ilustra perfectamente cuándo usar cada función. Imagina el cuadro de turnos de un restaurante con cinco personas: cada día tiene un turno (A, B, C) y cada turno equivale a un número de horas. El objetivo es doble:

  1. Convertir cada letra en sus horas con MAP, aplicando un BUSCARX a todas las celdas de golpe: MAP(rango; LAMBDA(celda; BUSCARX(celda; matriz_turnos; matriz_horas; 0))).
  2. Acumular las horas de cada persona por semana con BYROW, sumando por fila el resultado anterior: BYROW(resultado_map; SUMA) o, si tu versión de Excel no admite la función eta, BYROW(resultado_map; LAMBDA(fila; SUMA(fila))).

El primer paso transforma una rejilla entera de celdas; el segundo acumula varias columnas en un total por fila. Cuando solo hay una columna, ambas funciones sirven indistintamente, pero usar MAP para transformar y BYROW para acumular evita confusiones.

Conclusión

MAP y BYROW comparten sintaxis, pero responden a necesidades distintas: MAP transforma celda a celda y devuelve una matriz del mismo tamaño; BYROW acumula fila a fila y devuelve un único valor por fila. Si tienes que aplicar la misma función a un conjunto de celdas, usa MAP; si necesitas resumir varias columnas en un resultado por fila, usa BYROW. Con esta distinción clara, dominar el Excel moderno con funciones de matriz dinámica resulta mucho más sencillo.

Más casos con estas funciones

Más contenido de Excel en InflueXcel