Suponha que eu tenha um valor na célula $SheetX.A1
(digamos, número 42).
Agora, eu referencio esse valor em outra célula, digamos, $SheetY.M5
definindo seu conteúdo como =$SheetX.A1
(para que eu veja "42" na célula M5 da planilha Y).
Como posso deslocar a referência visada por M5 em outra célula? Por exemplo, eu gostaria que M6 visasse o mesmo local que M5 está referenciando, deslocado por 6 linhas, em outras palavras, eu gostaria que M6 mostrasse o valor de $SheetX.A7
(seis linhas abaixo de $SheetX.A1
) porque é isso que M5 está referenciando. Algo como "=OFFSET(TARGET(M5),6)".
- Eu sei que se eu puder obter um valor com =INDIRECT("addr")
- Eu também sei que posso obter a fórmula de uma célula com =FORMULA(ref), então
=FORMULA(M5)
retornará$SheetX.A1
Acho que eu poderia fazer alguma manipulação de string para remover o sinal de igual e então alterar o número 1 à direita para incrementá-lo, gerando de alguma forma o texto "$Sheet.A7" que eu posso passar para INDIRECT()
?
Como se faz isso? Qual é a melhor maneira?
Você pode tentar esta fórmula:
Ele será compensado se
INDIRECT
a fórmula retornar um resultado válido - caso contrário, retornará na (por exemplo, se a fórmula estiver em D1=$SheetX.A1+1
)Você pode usar esta fórmula:
Primeiro, ele extrai a planilha e depois constrói a referência para a célula 6 linhas abaixo da linha atual.
Eu assumo
INDEX()
queSEQUENCE()
deveria funcionar. Tentar-Se você tiver o Microsoft 365, poderá definir uma fórmula nomeada para facilitar o uso:
INDIRECT
geralmente é desaprovado, mas usá-lo aqui é uma atitude consciente :)indirectOFFSET
ref
pode ser uma célula única ou uma matriz=indirectOFFSET(M5,6)
ou=indirectOFFSET(M5:M10,6,1)
Sem formatação, conforme inserido no Gerenciador de Nomes: