Função “endereço” da célula para todo o intervalo de referência

0

A função OFFSET($A$1:$Z$25,2,3,4,5) refere-se ao intervalo $D$3:$H$6 da planilha atual.

Se eu passar "endereço" como o primeiro parâmetro para a função CELL e a função OFFSET acima como o segundo parâmetro, recebo apenas o endereço da primeira célula do intervalo. Em outras palavras,

=CELL("address",  OFFSET($A$1:$Z$25,2,3,4,5))

produz um valor de $D$3 .

Existe uma maneira de escrever uma função para retornar a referência completa para um intervalo de células? Por exemplo, algo como:

=RANGE("address",  OFFSET($A$1:$Z$25,2,3,4,5))

que produziria um valor de $D$3:$H$6 ?

EDITAR : isso é simplesmente simples de fazer com um pequeno VBA. Eu estava esperando evitar isso para que eu não fosse forçado a salvar como um arquivo .xlsm habilitado para macro. Aqui está a função VBA que estou tentando implementar apenas com funções de planilha:

Function ShowAddress(CellRange As Range) As String
    ShowAddress = CellRange.Address
End Function

Observação: Minha motivação para querer isso é ajudar na depuração da criação de intervalos nomeados dinâmicos complexos. Eu sei que posso copiar e colar a fórmula na caixa Goto, mas isso adiciona um pouco de trabalho ao ciclo de desenvolvimento.

    
por mwolfe02 20.03.2018 / 03:48

1 resposta

0

Cell () retorna somente a célula primeiro em uma referência multicelular. Consulte o artigo de suporte .

Se você quiser construir uma referência multicelular, poderá usar Index () para o primeiro intervalo e outro Index para a última célula do intervalo. Combine as duas funções Index com um operador: e o resultado será um intervalo. Note que tal fórmula pode ser usada em um argumento que espera um intervalo, por exemplo Sum (), ou em uma fórmula nomeada no gerenciador de nomes, mas não em uma célula da planilha, porque retorna um intervalo.

=index(sheet1!$A$1:$Z$25,3,4):Index(Sheet1!$A$1:$Z$25,6,8)

    
por 20.03.2018 / 05:00