Como manter um número de célula em uma fórmula ao adicionar linhas no topo

Como manter um número de célula em uma fórmula ao adicionar linhas no topo

Eu tenho a seguinte fórmula na célula M8:

{=SUM((MOD(ROW(M$16:$M977)-ROW($M$16),4)=0)*(M$16:$M977))}

com esta fórmula, obtenha o total de horas por semana na coluna M de cada quarta linha começando em M16, como m16 + m20 + m24 + m28, etc. Continuo adicionando os novos dados no topo, então quando abrir a planilha terei as informações mais atuais no topo. Ao adicionar as quatro novas linhas aos meus novos dados, a fórmula se parece com:

{=SUM((MOD(ROW(M$20:$M977)-ROW($M$20),4)=0)*(M$20:$M977))}

Como faço para começar sempre a somar no M16, pois é aí que estará meu novo total de horas para a nova semana.

Responder1

Coloque o valor de M16 no final do arquivo ou em uma célula que você não move! Na verdade, toda vez que você adiciona uma linha, automaticamente todas as referências à célula são modificadas!

Responder2

Primeiro, você deve alterar isso para uma SUMPRODUCTfórmula. Não é necessário inseri-lo como uma fórmula de matriz e - IMHO - é mais fácil de usar.

=SUMPRODUCT(M16:M977*(MOD(ROW(M16:M977)-ROW(M16),4)=0))

Para contornar o comportamento do Excel ao inserir linhas, recomendo transformar seus dados em uma tabela. (Inserir faixa> Tabela) Torna muito fácil referenciar "todos os dados nesta área" e atualiza da maneira que você deseja sempre que a tabela fica maior ou menor. Nesse caso, a fórmula seria mais ou menos assim:

=SUMPRODUCT(Table1[Hours]*(MOD(ROW(Table1[Hours])-ROW(Table1[[#Headers],[Hours]])-1,4)=0))

Se você não puder transformá-lo em uma tabela por algum motivo, recomendo criar um intervalo nomeado e referenciá-lo. A fórmula para o intervalo nomeado seria:

=OFFSET(Sheet3!$M$1,15,0,MATCH(9E+99,Sheet3!$M:$M)-15)

... e a fórmula referenciando isso seria:

=SUMPRODUCT(rngHours*(MOD(ROW(rngHours)-ROW(OFFSET(rngHours,0,0,1,1)),4)=0))

... onde rngHoursestá o nome que você deu ao intervalo nomeado.


Se você realmente não deseja usar intervalos nomeados, pode comprimir tudo em uma grande fórmula, mas ficará confuso, embora 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))

informação relacionada