
Tengo la siguiente fórmula en la celda M8
:
{=SUM((MOD(ROW(M$16:$M977)-ROW($M$16),4)=0)*(M$16:$M977))}
con esta fórmula obtengo el total de horas por semana en la columna M de cada cuarta fila mirando a M16, como m16+m20+m24+m28, etc. Sigo agregando los nuevos datos en la parte superior, así que cuando abra la hoja de cálculo tendré la información más actual en la parte superior. Cuando agrego las cuatro filas nuevas para mis nuevos datos, la fórmula se ve así:
{=SUM((MOD(ROW(M$20:$M977)-ROW($M$20),4)=0)*(M$20:$M977))}
¿Cómo hago para que siempre empiece a sumar M16, porque ahí es donde estará mi nuevo total de horas para la nueva semana?
Respuesta1
¡Pon el valor de M16 al final del archivo o en una celda que no muevas! De hecho, cada vez que agrega una fila, ¡automáticamente se modifica cada referencia a la celda!
Respuesta2
Primero, debes cambiar esto a una SUMPRODUCT
fórmula. No requiere que lo ingreses como una fórmula matricial y, en mi humilde opinión, es más fácil de usar.
=SUMPRODUCT(M16:M977*(MOD(ROW(M16:M977)-ROW(M16),4)=0))
Para evitar el comportamiento de Excel al insertar filas, recomiendo convertir sus datos en una tabla. (Insertar cinta > Tabla) Hace que hacer referencia a "todos los datos en esta área" sea realmente fácil y se actualiza de la forma deseada cada vez que la tabla se hace más grande o más pequeña. En ese caso, la fórmula se vería así:
=SUMPRODUCT(Table1[Hours]*(MOD(ROW(Table1[Hours])-ROW(Table1[[#Headers],[Hours]])-1,4)=0))
Si no puede convertirlo en una tabla por algún motivo, le recomendaría crear un rango con nombre y hacer referencia a él. La fórmula para el rango nombrado sería:
=OFFSET(Sheet3!$M$1,15,0,MATCH(9E+99,Sheet3!$M:$M)-15)
... y la fórmula que hace referencia a él sería:
=SUMPRODUCT(rngHours*(MOD(ROW(rngHours)-ROW(OFFSET(rngHours,0,0,1,1)),4)=0))
... ¿dónde rngHours
está el nombre que le dio al rango nombrado?
Si realmente no desea utilizar rangos con nombre, puede agrupar todo en una fórmula grande, pero se volverá complicado, aunque funcione:
=SUMPRODUCT(OFFSET(Sheet3!$M$1,15,0,MATCH(9E+99,Sheet3!$M:$M)-15)*(MOD(ROW(OFFSET(Sheet3!$M$1,15,0,MATCH(9E+99,Sheet3!$M:$M)-15))-ROW(OFFSET(Sheet3!$M$1,15,0)),4)=0))