Esta función agrupa una matriz por columnas aplicando una función LAMBDA
a cada columna.
Ejemplo de uso
BYCOL(A1:C3;LAMBDA(columna;MAX(columna))
BYCOL(A1:C3;LAMBDA(columna;SUMA(columna)))
Sintaxis
BYCOL(matriz_o_intervalo;LAMBDA)
matriz_o_intervalo
: matriz o intervalo que se va a agrupar por columnas.LAMBDA
: una funciónLAMBDA
que se aplica a cada columna de la matriz o intervalo en cuestión para obtener su valor agrupado.- Sintaxis:
LAMBDA(nombre;expresión_fórmula)
- Requisitos:
- La función
LAMBDA
debe tener solo un argumentonombre
y unaexpresión_fórmula
que use esenombre
. Cuando se aplica la funciónLAMBDA
, elnombre
se resuelve en la columna actual que se está agrupando.
- La función
- Sintaxis:
Notas
- La función
LAMBDA
enviada debe aceptar solo un argumentonombre
. Si no, se devuelve un error#N/A
. Este argumento se corresponde con una columna de la matriz de entrada. - Cada columna debe agruparse en un valor único. No se admiten resultados de matriz de valores agrupados.
- En este caso, una
función con nombre
puede pasar por parámetroLAMBDA
y comportarse como una funciónLAMBDA
. Más información sobre las funciones con nombre- Debe haber exactamente un marcador de posición de argumento definido para ella.
- La
función con nombre
no debe ir seguida de un paréntesis.
Ejemplos
Devuelve una matriz de filas de 1x3 con el máximo de cada columna
Datos de ejemplo:
A |
B |
C |
|
---|---|---|---|
1 |
3 |
5 |
7 |
2 |
4 |
3 |
5 |
3 |
1 |
2 |
4 |
Ejemplo: =BYCOL(A1:C3;LAMBDA(columna;MAX(columna)))
Resultado:
4 |
5 |
7 |
Devuelve el nombre del representante de ventas con un promedio de ventas superior o igual a 30
Datos de ejemplo:
A |
B |
C |
D |
|
---|---|---|---|---|
1 |
Aura |
Bruno |
Luna |
|
2 |
2019 |
20 |
10 |
20 |
3 |
2020 |
50 |
15 |
30 |
4 |
2021 |
30 |
30 |
15 |
Ejemplo: =FILTER(B1:D1;BYCOL(B2:D4;LAMBDA(col;PROMEDIO(col))>=30))
Resultado:
Aura |
Devuelve una matriz de 1x3 con la diferencia entre el valor máximo y el mínimo de cada columna utilizando una función con nombre como LAMBDA
Datos de ejemplo:
A |
B |
C |
|
---|---|---|---|
1 |
3 |
5 |
7 |
2 |
4 |
3 |
5 |
3 |
1 |
2 |
4 |
Ejemplo: =BYCOL(A1:C3;MAX_MIN_DIFF)
Función con nombre: MAX_MIN_DIFF
es una función con nombre
que genera la diferencia entre el valor máximo y el valor mínimo.
Definición de la fórmula: =MAX(col)-MIN(col)
, dondecol
es un marcador de posición de argumento definido para MIN_MIN_DIFF
.
Resultado:
3 |
3 |
3 |
Errores frecuentes
El valor de LAMBDA enviado no tiene solo un argumento nombreSi la función LAMBDA
enviada no tiene un solo argumento nombre
y una expresión_fórmula
como argumento, se produce este error:
"Número incorrecto de argumentos para LAMBDA. Se esperaba un argumento, pero se han obtenido dos".
Ejemplo: =BYCOL(C1:C4;LAMBDA(a;b;a+b))
En este ejemplo, LAMBDA tiene dos argumentos nombre
cuando solo se necesita uno.
Si el último parámetro de BYCOL
no es una LAMBDA
, se produce este error:
“El argumento debe ser una LAMBDA”.
Ejemplo: =BYCOL(C1:C4;4)
Si uno o varios argumentos nombre
no son válidos, se produce este error:
“El argumento 1 de la función LAMBDA no es un nombre válido”.
Ejemplo: =BYCOL(C1:C4;LAMBDA(C1;C1+1))
En este ejemplo, C1
no es un nombre
válido porque entra en conflicto con un intervalo.
Si la aplicación de LAMBDA
en la matriz de entrada no agrupa cada columna en un valor único, se produce este error:
“Se esperaba un valor único. No se admiten resultados de matriz anidados”.
Ejemplo: =BYCOL(C1:C3;LAMBDA(col;col))
Funciones relacionadas
- Función LAMBDA: esta función te permite generar y devolver una función personalizada con un conjunto de
nombres
y unaexpresión_fórmula
que los utiliza. - Función MAP: esta función asigna cada valor de las matrices a un nuevo valor.
- Función REDUCE: esta función reduce una matriz a un resultado acumulado.
- Función BYROW: esta función agrupa una matriz por filas.
- Función SCAN: analiza una matriz y genera valores intermedios.
- Función CREATEARRAY: esta función crea una matriz calculada de dimensiones especificadas.
- Crear y usar funciones con nombre: esta función te permite crear y almacenar funciones personalizadas de forma similar a
LAMBDA
.