Isso pode ser alcançado com uma fórmula muito elegante:
=SUM($S$2:INDIRECT($S$1&ROW()))
Estou trabalhando com um arquivo grande do Excel mensalmente. Neste arquivo eu tenho que encontrar algo parecido com um sum
como em
=sum(S2:AC2)
O problema é que a coluna da última célula no intervalo é alterada. Eu gostaria de poder fazer algo assim:
Em uma célula, digamos, S1
, insiro um valor AC
e, mais tarde, posso escrever
=sum(S2:value(S1)2)
e isso tem o mesmo efeito que eu escrevi
=sum(S2:AC2)
Eu sei que isso pode ser feito. Eu vi isso há muito tempo atrás. Seria uma grande economia de tempo. Eu tenho centenas de linhas do para =sum(S2:AC2)
. Mas no próximo mês, todos poderão ter que mudar para =sum(S2:BF2)
. Ter um lugar para mudar o final do intervalo seria bom.
Por acaso, o número da linha também muda, mas de uma maneira totalmente previsível.
Idealmente, gostaria de poder concatenar o nome como:
=sum(S2: & S1 & row() )
onde estou usando row()
para obter o número da linha atual
Uma maneira é usar INDIRETO assim
=SUM(INDIRECT("S2:"&S1&"2"))
.... mas isso significa "codificar" o número da linha ....
Se você não tiver intervalos nos dados, talvez seja melhor definir um "intervalo nomeado dinâmico" com base no número de valores na linha, por exemplo, definir um intervalo de nome com base nesta fórmula
=OFFSET($S$2,0,0,1,COUNTA($S$2:$IV$2))
então você pode usar apenas
=SUM(Range)
Eu consegui um pouco de trabalho. Mas eu não estou feliz com isso.
Digamos que nas células:
cell(AB1) = "AD"
cell(AC1) = "AG"
depois, na linha x
, tenho o seguinte
cell(ABx)=AB$1 & row()
cell(ACx)=AC$1 & row()
e depois posso definir
cell(AAx)=sum(indirect(ABx &":"& ACx))
Enquanto isso funciona, isso significa que eu tenho que criar manualmente duas colunas com o código desejado.
Seria bom poder fazer algo como
cell(AAx)=sum(indirect(AB$1 & row() &":"& AC$1 & row()))
Ah, e funciona !!!
Tags microsoft-excel