La función BYCOL de Excel aplica una función LAMBDA a cada columna de una matriz o rango de datos y devuelve una matriz de una sola fila con los resultados. Es una herramienta muy potente para realizar cálculos columna por columna sin necesidad de crear fórmulas auxiliares o arrastrar una fórmula por todo el rango.
Imagina que tienes un informe de ventas trimestral y quieres calcular la venta total de cada trimestre (cada columna). En lugar de escribir =SUMA(B2:B10), =SUMA(C2:C10), etc., para cada columna, puedes usar BYCOL para hacerlo en un solo paso.
Sintaxis
=BYCOL(matriz, lambda(columna))
La función BYCOL tiene los siguientes parámetros:
- matriz: Es la matriz o rango de celdas al que se le aplicará la función 
lambda. Obligatorio. - lambda: Es una función LAMBDA que se aplicará a cada columna de la 
matriz. Esta funciónlambdadebe aceptar un solo parámetro (que representará a cada columna). Obligatorio. 
Ejemplos
Para los siguientes ejemplos, usaremos la tabla de datos de ventas trimestrales:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Producto | Trimestre 1 | Trimestre 2 | Trimestre 3 | 
| 2 | Producto A | 150 | 200 | 250 | 
| 3 | Producto B | 120 | 180 | 210 | 
| 4 | Producto C | 200 | 220 | 190 | 
Ejemplo 1: Sumar el total de ventas por trimestre
Calcularemos la suma de cada columna (cada trimestre) del rango B2:D4.
=BYCOL(B2:D4, LAMBDA(columna, SUMA(columna)))
Resultado: La fórmula devolverá una matriz horizontal con la suma de cada trimestre: {470, 600, 650}. Cada valor se mostrará en una celda consecutiva de la fila.
Ejemplo 2: Encontrar la venta máxima de cada trimestre
Esta fórmula encuentra el valor más alto en cada una de las columnas del rango de ventas.
=BYCOL(B2:D4, LAMBDA(trimestre, MAX(trimestre)))
Resultado: La fórmula devolverá los valores máximos de cada columna: {200, 220, 250}.
Ejemplo 3: Contar el número de ventas que superaron los 150€ por trimestre
Usamos la función CONTAR.SI dentro de la función lambda para contar cuántas celdas de cada columna cumplen con el criterio.
=BYCOL(B2:D4, LAMBDA(col, CONTAR.SI(col, ">150")))
Resultado: La fórmula devolverá el recuento para cada columna: {1, 3, 3}. En el Trimestre 1 solo hay una venta > 150, mientras que en los trimestres 2 y 3, todas las ventas superan esa cifra.
Observaciones
La función lambda proporcionada a BYCOL debe aceptar exactamente un argumento; de lo contrario, Excel devolverá un error #¡VALOR!. Este argumento representa una columna de la matriz de entrada en cada iteración.
Errores comunes
- #¡VALOR!: Ocurre si la función 
lambdano es válida o si tiene un número incorrecto de parámetros. - #¿NOMBRE?: Ocurre si el nombre de la función está mal escrito o si estás usando una versión de Excel que no es compatible con BYCOL o LAMBDA.
 - #¡CALC!: Ocurre si la matriz de entrada está vacía o si la función 
lambdadevuelve una matriz vacía para alguna de las columnas. 
Disponibilidad por versión de Excel
La función BYCOL está disponible en las siguientes versiones de Excel:
- Microsoft 365 (Windows y Mac)
 - Excel en la Web
 
Compatibilidad
| Software | Compatibilidad | Notas | 
|---|---|---|
| Microsoft Excel | ✔️ | Disponible en versiones de Microsoft 365 y posteriores. | 
| Google Sheets | ✔️ | — | 
| LibreOffice Calc | ✔️ | Disponible a partir de la versión 7.4. | 
| OpenOffice Calc | ❌ | No disponible. | 
| WPS Office Spreadsheets | ✔️ | Compatible con funciones LAMBDA y sus auxiliares. | 
| Apple Numbers | ❌ | No disponible. | 
Funciones Relacionadas
- BYROW: La función homóloga a BYCOL, que aplica una función 
lambdaa cada fila de una matriz. - LAMBDA: Permite crear funciones personalizadas y reutilizables. Es un requisito indispensable para usar BYCOL.
 - MAP: Aplica una función 
lambdaa cada elemento de una o más matrices. - REDUCE: Reduce una matriz a un valor acumulado aplicando una función 
lambda. - SCAN: Analiza una matriz y aplica una función 
lambda, generando una matriz con los valores intermedios. 
