Arrastando a fórmula do Excel envolvendo o INDIRECT

1

=INDIRECT("'"&$A4&"'!E4")

É necessário usar o valor da célula E4 da planilha com o nome encontrado em A4. Na verdade, funciona. Mas quando eu arrasto essa fórmula para várias colunas / linhas, o A4 atualiza para colunas diferentes, mas o E4 não ... acho que porque está em uma string.

Como posso fazer isso funcionar, tudo que eu tento me dá! REF?

    
por Mr. Boy 19.09.2013 / 19:53

2 respostas

4

Tente usar a função CELL como esta

=INDIRECT("'"&$A4&"'!"&CELL("address",E4))

Isso converte E4 em texto para uso na função INDIRECT, mas continuará sendo atualizado quando você arrastar / diminuir

    
por 20.09.2013 / 00:33
2

Bem, você não ficou muito claro no seu comentário, então acho que será mais simples se eu der algo e você ajustar para as suas necessidades.

Suponho que você tenha a fórmula =INDIRECT("'"&$A4&"'!E4") na planilha Target e na célula A1 .

=INDIRECT("'"&$A4&"'!E4")

Você pode alterá-lo para:

=INDIRECT("'"&$A4&"'!"&CHAR(96+COLUMN()+4)&ROW()+3)

COLUMN() retorna a coluna na qual a fórmula é. Aqui, como a fórmula está na célula A1, COLUMN() retorna 1.

ROW() age da mesma maneira, mas com o número de linhas, e retornará 1 também aqui.

CHAR(96+COLUMN()+4) retornará CHAR(96+1+4) nesse caso, que é a letra E .

ROW()+3 retornará 1+3 , que é 4 .

Concatenar tudo lhe dará E4.

Quando você copia / cola essa fórmula em B1, você recebe:

=INDIRECT("'"&$B4&"'!"&CHAR(96+COLUMN()+4)&ROW()+3)

COLUMN() agora retorna 2 porque está na segunda coluna e CHAR() retornará F .

Como a linha é a mesma, você obtém 4 , para que a célula referenciada se torne F4 .

    
por 19.09.2013 / 21:17