Defina um intervalo usando uma fórmula

Defina um intervalo usando uma fórmula

Uma versão simplificada do meu problema é que em uma planilha diferente chamada Sheet2tenho 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 Apor 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 0ao 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

informação relacionada