Fórmula genérica
=INDIRECT(sheet&"!"&CELL("address",A1))
Resumo
Para incrementar uma referência criada como texto dentro da função INDIRETO, você pode usar a função CELL. No exemplo mostrado, a fórmula em D5 é:
=INDIRECT($B$5&"!"&CELL("address",A1))
Que aumenta à medida que a fórmula é copiada.
Explicação
Considere uma referência dinâmica simples para a Planilha2 usando o INDIRETO em uma fórmula como esta:
=INDIRECT($B$5&"!"&"A1"))
Se mudarmos o nome da folha em B5 para outro nome (válido), INDIRECT retornará uma referência a A1 na nova folha.
No entanto, se copiarmos esta fórmula na coluna, a referência a A1 não mudará, porque "A1" está codificado como texto.
Para resolver este problema, usamos a função CELL para gerar uma referência de texto a partir de uma referência de célula regular:
CELL("address",A1)
Com "endereço" como primeiro argumento e A1 como segundo argumento, a função CELL retorna uma string como "$ A $ 1". Como A1 é uma referência de célula regular, ela aumentará normalmente conforme a fórmula é copiada para baixo na coluna. O resultado em D5: D9 é uma série de fórmulas como esta:
=INDIRECT("Sheet2!$A$1") =INDIRECT("Sheet2!$A$2") =INDIRECT("Sheet2!$A$3") =INDIRECT("Sheet2!$A$4") =INDIRECT("Sheet2!$A$5")
Em cada caso, INDIRECT resolve cada string de texto para uma referência e o Excel retorna o valor na célula fornecida na Planilha2.
Nota: INDIRETO e CÉLULA são funções voláteis e recalculam a cada alteração da planilha. Isso pode causar problemas de desempenho em planilhas mais complexas.