Uma versão simplificada do meu problema é que em uma planilha diferente chamada Sheet2
tenho dados que desejo calcular a média:
=AVERAGE(Sheet2!$A$1:Sheet2!$A$100)
Dependendo de onde o código acima for usado preciso trocar a coluna A
por outra letra, por exemplo coluna D
. Para fazer isso criei uma função:
=MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)
que irá produzir D
.
Meu problema é que em vez de ter que escrever:
=AVERAGE(Sheet2!$D$1:Sheet2!$D$100)
Eu quero usar:
=AVERAGE(Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$1:Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$100)
mas o Excel não aceita isso. Como posso usar funções próximas a Sheet2!
?
Responder1
Você pode usar INDIRETO:
=AVERAGE(INDIRECT ("Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$1:Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$100"))
Responder2
OFFSET e INDIRECT são voláteis, podemos usar INDEX
=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,4))
Diz 0
ao INDEX para retornar todas as linhas e 4
é a 4ª coluna. Portanto, será calculada a média de todas as linhas de 1 a 100 na coluna 4.
De acordo com seus comentários:
=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,(COLUMN(A:A)-1)*3))
Responder3
Aqui está uma maneira:
=AVERAGE(OFFSET(Sheet2!$A:$A,0,(COLUMN()-1)*3))
Observe que isso OFFSET
é volátil e aumentará a carga de cálculo na sua pasta de trabalho