Como posso obter a referência de célula de um intervalo nomeado no Excel?

1

Eu resolvi o problema, mas estou pensando se há uma maneira melhor de fazer isso. O que eu tenho é uma coluna de alguns intervalos nomeados ("NAME"), e eu quero uma fórmula para a direita que procura o intervalo nomeado e me dá a referência de célula ("C352").

Eu finalmente resolvi isso com isso:

=CHAR(64+COLUMN(INDIRECT(C2, FALSE)))&ROW(INDIRECT(C2, FALSE))

A parte CHAR é para traduzir o número da coluna (3) para a letra (C), e não funciona após a coluna Z.

Esta não deve ser a melhor maneira de fazer isso. Eu vi algumas soluções VBA, é a única maneira possível de fazer isso melhor?

    
por Ehryk 14.09.2012 / 01:04

3 respostas

1
=ADDRESS(ROW(INDIRECT(C2)),COLUMN(INDIRECT(C2)),4,1)

Como funciona

  • INDIRECT(C2) retorna um endereço de referência especificado por C2 . O intervalo referido pelo intervalo nomeado neste caso.
  • ROW( ... ) retorna a linha da célula especificada
  • COLUMN( ... ) idem para coluna
  • ADDRESS( r, c, 4, 1) retorna o endereço ou linha r , coluna c . 4 significa relativo (ou seja, não $ 's. 1 significa A1 style. Portanto ADDRESS(ROW( ... ),COLUMN( ... ),4,1) será o endereço do intervalo nomeado em A1 notação
por 14.09.2012 / 09:37
3

Se você pode viver com $ na referência, você pode usar:

=CELL("address",INDIRECT(C1))

ou:

=SUBSTITUTE(CELL("address",INDIRECT(C1)),"$",)

para eliminar o $

    
por 14.09.2012 / 01:46
1
=ADDRESS(ROW(INDIRECT(C2, FALSE)), COLUMN(INDIRECT(C2, FALSE)), abs_num)

onde abs_num é 1 para retornar um endereço absoluto (por exemplo, " $C$352 "), 4 para retornar um endereço relativo (por exemplo, " C352 ") ou 2 para " C$352 "ou 3 para" $C352 ". ( abs_num é padronizado para 1 (isto é, absoluto) se omitido.)

    
por 14.09.2012 / 01:28