Una de las nuevas funciones aparecidas recientemente en Excel permite procesar una matriz de fila por fila, esta función es BYROW. En un artículo anterior sobre RTT, lo habíamos usado pero veamos con más detalle cómo funciona.
Cómo utilizar BYROW para procesar filas
Con la función BYROW solo se necesitan dos argumentos
- La matriz de datos: es simplemente el rango de datos a analizar
- El operador: Puede seleccionar un operador de la lista de funciones o crear su propio operador con la función LAMBDA
Considere este sencillo ejemplo:

Tenemos varias filas con números y queremos sumar 1 a todas las filas de una sola vez.
- Entonces ingresaremos nuestra matriz de A1 a A7 como primer argumento.
- Luego usamos LAMBDA con un parámetro que llamamos x. Este último representa el rango de A1 a A7, para facilitar la entrada posterior, por lo que el cálculo es x+1.
Hemos agregado 1 a cada línea con esta función:
=BYROW(A1:A7;LAMBDA(x;x+1))

Otro ejemplo con otra función LAMBDA
Usar la función LAMBDA es extremadamente poderoso. En el ejemplo anterior, construimos una suma pero todas las operaciones son posibles. Por ejemplo, aquí vamos a crear una prueba que nos devolverá los días festivos que caen en un día laborable (no en un fin de semana).
- X, nuestra variable, representa nuestra lista de días feriados
- Para cada fecha hacemos una prueba con la función VIAJE para saber si la fecha cae en fin de semana o no
- Finalmente, esta prueba se integra en un Función FILTRO.
=BYROW(Jvacaciones;LAMBDA(x;FILTRO(x;DAYSEM(x;2)<6)))

La función funciona pero tenemos #CALC lo que significa que parte de la tabla está vacía y devuelve un error.
Con Función SI.ERROR, si reemplazamos los errores con vacíos podríamos salirnos con la nuestra. Pero veremos otra solución.
Usando la función INCOL
La función DÉNCOL nos permitirá ignorar los errores devueltos por la matriz anterior. Consta de 2 argumentos obligatorios.
- Formación : la matriz deseada
- pasar por alto : de 0 a 3 a elección, para dejar como tal o ignorar espacios, errores, o todos a la vez
- [scan_by_column]: permite elegir el modo de escaneo de fila o columna dependiendo de los valores y su organización
Muy simple:
=INCOL(BYROW(Jvacaciones;LAMBDA(x;FILTRO(x;DAYSEM(x;2)<6)));3)

Nuestra matriz está libre de errores, lo único que debemos hacer es obtener el número de días, agregando un NB delante de
=NB(INCOL(BYROW(Jvacaciones;LAMBDA(x;FILTRO(x;DAYSEM(x;2)<6)));3))