Promedio por fila con ARRAYFORMULA y BYROW en Google Sheets

Por el equipo de promedio.net · Actualizado el

Para calcular el promedio de cada fila con una sola fórmula en Google Sheets, usa BYROW: =BYROW(B2:D,LAMBDA(fila,SI(CONTAR(fila)=0,"",PROMEDIO(fila)))) escribe en la columna E el promedio de B a D de cada alumno, también de los que agregues después. No sirve =ARRAYFORMULA(PROMEDIO(B2:D)): PROMEDIO es una función que resume y, aun dentro de ARRAYFORMULA, devuelve un solo número, el promedio de todo el bloque. Con ARRAYFORMULA sí puedes armar el promedio con operaciones fila a fila, como suma entre conteo.

Sintaxis

MétodoFórmula (en E2)Celdas vacías
BYROW=BYROW(B2:D,LAMBDA(fila,SI(CONTAR(fila)=0,"",PROMEDIO(fila))))Se ignoran, como en PROMEDIO
ARRAYFORMULA con suma fija=ARRAYFORMULA(SI(A2:A="","",(B2:B+C2:C+D2:D)/3))Cuentan como 0
ARRAYFORMULA con conteo=ARRAYFORMULA(SI(A2:A="","",(B2:B+C2:C+D2:D)/((B2:B<>"")+(C2:C<>"")+(D2:D<>""))))Se ignoran
BYROW ponderado (pesos en F1:H1)=BYROW(B2:D,LAMBDA(fila,SI(CONTAR(fila)=0,"",SUMAPRODUCTO(fila,$F$1:$H$1)/SUMA($F$1:$H$1))))Cuentan como 0

LAMBDA(fila, …) define una fórmula que BYROW aplica a cada fila; fila es solo un nombre, puedes llamarla como quieras. BYROW, LAMBDA y ARRAYFORMULA se escriben en inglés aunque tus funciones estén en español.

Paso a paso

  1. Borra cualquier dato o fórmula de la columna donde irá el resultado (E2 hacia abajo): BYROW necesita la columna libre para desbordarse.
  2. En E2 escribe =BYROW(B2:D,LAMBDA(fila,PROMEDIO(fila))) y pulsa Enter.
  3. Verás #DIV/0! en las filas sin datos. Para ocultarlo, agrega la condición: SI(CONTAR(fila)=0,"",PROMEDIO(fila)).
  4. Escribe un alumno nuevo en la siguiente fila: su promedio aparece solo.
  5. Si la columna se llena desde un formulario de Google Forms, pon la fórmula en la fila 2 de una columna a la derecha de las respuestas o, mejor, en otra pestaña.

Ejemplos resueltos

Ejemplo 1: por qué la suma entre 3 falla con celdas vacías

Tres alumnos con calificaciones en B, C y D: Luis 9, 8 y 7; Sofía 6.5, 7 y vacía (aún no presenta el tercer parcial); Mateo 10, 9.5 y 9.

=ARRAYFORMULA(SI(A2:A="","",(B2:B+C2:C+D2:D)/3)) → Luis 8, Sofía 4.5, Mateo 9.5

Para Sofía, la celda vacía suma 0 y se divide entre 3. Con PROMEDIO(B3:D3) celda por celda tendría 6.75. Si quieres el promedio de lo que lleva, la versión con conteo de la tabla de sintaxis divide entre 2 y da 6.75.

Ejemplo 2: BYROW, igual que PROMEDIO fila por fila

Con los mismos datos:

=BYROW(B2:D,LAMBDA(fila,SI(CONTAR(fila)=0,"",PROMEDIO(fila)))) → Luis 8, Sofía 6.75, Mateo 9.5

BYROW llama a PROMEDIO una vez por fila, así que hereda todas sus reglas: ignora vacías y texto, cuenta los ceros. Las filas totalmente vacías del rango abierto devuelven "" gracias a la condición con CONTAR, y la columna queda limpia hasta el final de la hoja.

Ejemplo 3: promedio ponderado por fila

Los parciales pesan 30 %, 30 % y 40 %, escritos en F1:H1.

=BYROW(B2:D,LAMBDA(fila,SI(CONTAR(fila)=0,"",SUMAPRODUCTO(fila,$F$1:$H$1)/SUMA($F$1:$H$1))))

Luis: 9 × 0.3 + 8 × 0.3 + 7 × 0.4 = 7.9. Mateo: 3 + 2.85 + 3.6 = 9.45. Sofía obtiene 4.05, porque la celda vacía cuenta como 0 en SUMAPRODUCTO; si quieres su promedio parcial, divide entre la suma de los pesos de las celdas llenas: el resultado sería 4.05 / 0.6 = 6.75. Para un ponderado sin fila de pesos, también puedes usar AVERAGE.WEIGHTED dentro de LAMBDA.

Errores comunes

Para revisar el promedio de un alumno, usa la calculadora de promedio de calificaciones. El promedio de una sola columna que crece se resuelve sin BYROW, con un rango abierto: promedio de una columna completa.