Vamos a ver un ejemplo con la función BYROW.
Bien, tenemos el siguiente modelo de datos, donde tenemos ventas de diferentes productos en diferentes centros comerciales, y provincias en diferentes fechas, el modelo, lo tenemos en formato de tabla.
Tenemos asignados, nombres de rangos, a cada columna, por lo que en las funciones que usemos, nos referiremos a cada rango a utilizar por su nombre.
Vamos a recordar, como se crean estos nombres de rangos, con una celda dentro del modelo, pulsamos CTRL más asterisco, quedando todo el modelo seleccionado, vamos a la pestaña formulas, dentro del grupo nombres definidos, hacemos clic en crear desde la selección.
Se abre la ventana, crear nombres a partir de la selección, pues, marcamos fila superior, para que utilice cada nombre de encabezado, para crear dichos nombres.
Aceptamos, si, vamos al cuadro de nombres podremos ver dichos nombres.
También, podemos trabajar con los nombres de los encabezados de la tabla, pero, en este caso, voy a trabajar con nombres de rangos.
Lo primero que vamos a hacer, es calcular el promedio de la columna TOTAL, para ello, hacemos uso de la función PROMEDIO, para ello, escribimos el signo igual, seguido de la función PROMEDIO, y, abrimos un paréntesis, pero este ejercicio, lo haremos en una hoja nueva.
Vamos a calcular el promedio, en la hoja llamada RESULTADOS, en la celda B4, para ello, escribimos el signo, seguido del nombre de la función, y, abrimos un paréntesis.
=PROMEDIO(
Como argumento, numero1, decir, que podemos especificar celdas independientes, separadas por punto y coma, pero, en este caso, vamos a usar el nombre de rango, TOTAL, para calcular el promedio de la columna TOTAL, para ello, basta con escribir las iniciales del nombre, por ejemplo, “TO”, y, aparecerán todas las funciones, y, nombres de rangos que comiencen, o, contengan la palabra “TO”, pues bajamos con el cursor, seleccionamos el nombre de rango, y, pulsamos la tecla de tabular, o, hacemos doble clic con el ratón.
Cerramos paréntesis, y, aceptamos, y, tenemos el promedio de la columna TOTAL, en mi caso, voy a quitar decimales.
Lo que queremos es crear una nueva tabla a partir de la que tenemos, pero solo de aquellas cantidades de la columna TOTAL, que sean mayores al promedio.
Voy a copiar el encabezado del modelo, y, lo pego en la hoja RESULTADOS.
Como vamos a trabajar por filas, usamos la función BYROW.
Para ello, en la celda D5, de la hoja RESULTADOS, escribimos el signo igual, seguido de la función BYROW, y, abrimos un paréntesis.
=BYROW(
El primer argumento es, array, que es la matriz con la que vamos a trabajar, en este caso, es la columna de TOTAL, pues, seleccionamos el nombre de rango TOTAL.
=BYROW(Total;
Punto y coma, el siguiente argumento es la función LAMBDA.
=BYROW(Total;LAMBDA(
Como argumento parámetro de la función LAMBDA, creamos una variable, la voy a llamar, matriz.
=BYROW(Total;LAMBDA(matriz
Punto y coma, como argumento cálculo de la función LAMBDA, vamos a hacer uso de la función CONTAR.SI, para que nos cuente de la columna de TOTAL, aquellas cantidades que sean mayores al promedio, ya sabemos que la función CONTAR.SI, nos va a devolver un recuento de aquellas condiciones, que cumplan con el criterio que especifiquemos, para este caso, el argumento rango de la función CONTAR.SI, es la variable matriz, que tiene almacenada la columna de TOTAL, como argumento criterio de la función CONTAR.SI, el criterio debe de ir entre comillas dobles, pero dentro de dichas comillas dobles, no podemos hacer referencia, ni a una celda, ni a una función, y, en este caso, debemos de hacer r
eferencia a una celda, pues, debemos de concatenar el símbolo “>”, con la referencia a celda, la celda a referenciar, es la celda B4, que es donde tenemos el promedio.
=BYROW(Total;LAMBDA(matriz;CONTAR.SI(Total;">"&B4)))
Aceptamos, y, tenemos una matriz desbordada con el número de coincidencias, en todas las celdas, pone el mismo número.
Por último vamos a hacer uso de la función matricial FILTRAR, para que nos filtre la matriz primera, pero por aquellos valores devueltos por la función BYROW, que sean mayores a cero.
Para ello, después del signo igual, ponemos la función FILTRAR, abrimos el paréntesis, y seleccionamos los datos de la primera matriz, excepto el encabezado, para ello, me coloco en la celda A2 de hoja datos, pulso CTRL mas SHIFT mas cursor derecha, y, a continuación, pulso CTRL mas SHIFT mas cursor abajo, vemos que se han seleccionado todos los datos, pero como esta en formato de tabla, y, esta tabla se llamada, datos, pues ha puesto este nombre en el argumento.
=FILTRAR(Datos;
Punto y coma, como argumento include de la función FILTRAR, pues es el resultado de la función BYROW, y, después de BYROW, usamos el operador de comparación mayor a cero.
=FILTRAR(Datos;BYROW(Total;LAMBDA(matriz;CONTAR.SI(matriz;">"&B4)))>0
Punto y coma, y, como argumento si no se encuentra de la función FILTRAR, ponemos un texto en blanco.
=FILTRAR(Datos;BYROW(Total;LAMBDA(matriz;CONTAR.SI(matriz;">"&B4)))>0;"")
Aceptamos, y, ya tenemos nuestra tabla rellena solo con los valores de la columna TOTAL, que sean mayores al promedio.
Como es una matriz desbordada no se copian los formatos.
Comments