La función BYCOL, aplica una función LAMBDA a cada columna del modelo de datos, y, devuelve una matriz.
En el módulo siguiente vamos a ver matrices desbordadas, que son aquellas funciones que devuelven mas de un valor, además, nos permite trabajar con columnas, estas funciones LAMBDA, van a trabajar con columnas, yo la iré explicando, así, cuando lleguemos al módulo siguiente, ya tendremos una idea clara de lo que es una matriz desbordada, o, derramada.
BYCOL, va a almacenar los datos de cada columna, esto quiere decir, que la función LAMBDA, se aplica a cada columna.
Sintaxis
= BYCOL (matriz, lambda (columna))
La sintaxis de la función BYCOL tiene los siguientes argumentos y parámetros:
matriz Es el rango con el que vamos a trabajar.
lambda LAMBDA que toma la matriz que hemos seleccionado, y, calcula un resultado.
Veamos un ejemplo sencillo, tenemos los siguientes valores.
Como argumento matriz va a ser A1:C2, esto quiere decir, que cuando realicemos el cálculo va a ser por columna, es decir, que la función LAMBDA se va a ejecutar por cada columna, es decir, nos va a devolver una matriz desbordada de tres columnas.
Queremos calcular el promedio para cada columna.
Para ello, usamos la siguiente sintaxis, onde como argumento matriz, seleccionamos el rango A1:C2.
=BYCOL (A1:C2;
Punto y coma, ponemos LAMBDA, como argumento parámetro, declaramos una variable, la vamos a llamar matriz, esta variable, almacena el rango A1:C2, punto y coma, como argumento calculo, usamos la función PROMEDIO, y, como argumento de PROMEDIO, ponemos la variable matriz.
Cerramos paréntesis.
=BYCOL(A1:C2;LAMBDA(matriz;PROMEDIO(matriz)))
Aceptamos, y, como resultado tenemos una matriz desbordada de tres columnas, con el promedio de cada columna.
Sabemos que es una matriz desbordada porque tiene un contorno de color azul.
El primer promedio sale de calcular el promedio de los valores 10 y 40, el segundo promedio de los valores 20 y 50, y, el tercer promedio de los valores 30 y 60, si lo hubiéramos hecho de manera manual, deberíamos de haber dado tres pasos, fijar celdas si fuera necesario, y, arrastrar, pues, con las matrices desbordadas al trabajar con columnas, nos ahorramos los pasos anteriores, además, nos da seguridad, porque solo podemos borrar la celda inicial, no las demás.
Vamos a ver otro ejemplo.
Tenemos lo siguientes datos, donde tenemos dos columnas con cantidades:
Vamos a crear una nueva columna con la suma de ambas cantidades, lo vamos a calcular con la función BYCOL.
En la celda G2, ponemos BYCOL, como argumento matriz, ponemos las columnas cantidad, y, precio.
=BYCOL (E2:F2
Punto y coma, ponemos LAMBDA, declaramos una variable, como argumento calculo ponemos la variable “a”.
Cerramos paréntesis.
=BYCOL(E2:F2;LAMBDA(a;a))
Aceptamos, y, nos va a devolver una matriz desbordada con los valores de cantidad, y, precio.
Pero lo que queremos es la suma de ambos valores, por lo que delante del signo igual, usamos la función SUMA.
=SUMA(BYCOL(E2:F2;LAMBDA(a;a)))
Aceptamos, y, tenemos la suma de ambas cantidades para el primer registro.
Arrastramos, y, tenemos la cantidad total para cada registro.
Veamos otro ejemplo.
Tenemos los siguientes datos, una serie de cantidades, para diferentes años.
Queremos calcular el promedio para cada año, donde, vamos a usar la función BYCOL.
Escribimos el signo igual, seguido del nombre de la función, y, abrimos un paréntesis.
=BYCOL (
Como argumento matriz, de BYCOL, seleccionamos el rango de datos, desde A2 a G18, ya sabemos, que va a trabajar de forma independiente con cada columna.
=BYCOL (AÑOS! A2: G18;
Ahora, usamos la función LAMBDA, para cada columna, donde vamos a calcular el promedio.
Como argumento parametro1, definimos una variable llamada prome.
=LAMBDA (prome;
Como argumento, calculo, usamos la función PROMEDIO, y, como argumento de PROMEDIO; es la variable prome.
=LAMBDA (prome; PROMEDIO (prome))
Cerramos paréntesis, y, aceptamos.
=LAMBDA (prome; PROMEDIO (prome)))
La sintaxis competa, quedaría:
=BYCOL(A2:G18;LAMBDA(prome;PROMEDIO(prome)))
La variable, prome, va a tomar el valor especifica en el argumento array de la función BYCOL, y, trabajara con cada columna de forma independiente.
Como resultado, tenemos, una matriz desbordada con el promedio para cada año.
Lo siguiente es ver el promedio, solo, si los resultados de la matriz desbordada son mayores a 5000, para ello, modificamos la función LAMBDA, debemos de modificar, el argumento cálculo de la función LAMBDA, donde vamos a usar el condicional SI, para preguntar, que si el promedio de la variable prome, es mayor a 3000, entonces, que me calcule el promedio de la variable prome, en caso contrario, que ponga un texto en blanco, quedaría como sigue:
=BYCOL (AÑOS! A2:G18;LAMBDA(prome;SI(PROMEDIO(prome)>3000;PROMEDIO(prome);"")))
Aceptamos, y, podemos ver, solo aquellas cantidades que son mayores a 3000.
Comments