Fórmula do Excel: obter o endereço do intervalo nomeado -

Índice

Fórmula genérica

=ADDRESS(ROW(nr),COLUMN(nr))&":"&ADDRESS(ROW(nr)+ROWS(nr)-1,COLUMN(nr)+COLUMNS(nr)-1)

Resumo

Para obter o endereço completo de um intervalo nomeado com uma fórmula do Excel, você pode usar a função ENDEREÇO ​​junto com as funções LINHA e COLUNA. No exemplo mostrado, a fórmula em G5 é:

=ADDRESS(ROW(data),COLUMN(data),4)&":"&ADDRESS(ROW(data)+ROWS(data)-1,COLUMN(data)+COLUMNS(data)-1,4)

onde "dados" é o intervalo nomeado B5: D10

Explicação

O núcleo desta fórmula é a função ADDRESS, que é usada para retornar um endereço de célula com base em uma determinada linha e coluna. Infelizmente, a fórmula fica um pouco complicada porque precisamos usar ADDRESS duas vezes: uma para obter o endereço da primeira célula do intervalo e outra para obter o endereço da última célula do intervalo. Os dois resultados são unidos com concatenação e o operador de intervalo (:) e o intervalo completo é retornado como texto.

Para obter a primeira célula do intervalo, usamos esta expressão:

=ADDRESS(ROW(data),COLUMN(data))

ROW retorna o primeiro número da linha associado ao intervalo, 5 *.

COLUMN retorna o primeiro número da coluna associado ao intervalo, 2.

Com abs_num definido como 4 (relativo), ADDRESS retorna o texto "B5".

=ADDRESS(5,2,4) // returns "B5"

Para obter a última célula do intervalo, usamos esta expressão:

=ADDRESS(ROW(data)+ROWS(data)-1,COLUMN(data)+COLUMNS(data)-1,4)

Veja esta página para uma explicação detalhada.

Essencialmente, seguimos a mesma ideia acima, adicionando matemática simples para calcular a última linha e a última coluna do intervalo, que são alimentadas como antes em ADDRESS com abs_num definido como 4. Isso se reduz à seguinte expressão, que retorna o texto " D10 ":

=ADDRESS(10,4,4) // returns "D10"

Ambos os resultados são concatenados com dois pontos para obter um endereço de intervalo final como texto:

="B5"&":"&"D10" ="B5:D10

Intervalo nomeado de outra célula

Para obter um endereço para um intervalo nomeado em outra célula, você precisará usar a função INDIRETO. Por exemplo, para obter o endereço de um nome em A1, você usaria:

=ADDRESS(ROW(INDIRECT(A1)),COLUMN(INDIRECT(A1)))&":"&ADDRESS(ROW(INDIRECT(A1))+ROWS(INDIRECT(A1))-1,COLUMN(INDIRECT(A1))+COLUMNS(INDIRECT(A1))-1)

Defina abs_num como 4 em ADDRESS para obter um endereço relativo.

* Na verdade, em todos os casos em que usarmos ROW e COLUMN com um intervalo nomeado de várias células, obteremos uma matriz de números em vez de um único valor. No entanto, como não estamos usando uma fórmula de matriz, o processamento é limitado ao primeiro item dessas matrizes.

Artigos interessantes...