¿Cómo puedo obtener la referencia de celda de un rango con nombre en Excel?

1

Resolví el problema, pero me pregunto si hay una mejor manera de hacerlo. Lo que tengo es una columna de algunos rangos con nombre ("NAME"), y quiero una fórmula a la derecha que busque el rango con nombre y me dé la referencia de celda ("C352").

Finalmente lo resolví con esto:

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

La parte CHAR es traducir el número de columna (3) a la letra (C), y no funciona más allá de la columna Z.

Esta no debería ser la mejor manera de hacerlo. Vi algunas soluciones de VBA, ¿es esa la única forma posible de hacerlo mejor?

Ehryk
fuente

Respuestas:

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

Cómo funciona

  • INDIRECT(C2)devuelve una dirección de referencia especificada por C2. El rango al que hace referencia el rango con nombre en este caso.
  • ROW( ... ) devuelve la fila de la celda especificada
  • COLUMN( ... ) lo mismo para la columna
  • ADDRESS( r, c, 4, 1)devuelve la dirección o fila r, columna c. 4significa relativo (es decir, no $'s. 1significa A1estilo. Así ADDRESS(ROW( ... ),COLUMN( ... ),4,1)será la dirección del rango nombrado en A1notación
Chris Neilsen
fuente
3

Si puede vivir con $ en la referencia, puede usar:

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

o:

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

dejar caer el $

Rhys Gibson
fuente
2
= DIRECCIÓN (FILA (INDIRECTO (C2, FALSO)), COLUMNA (INDIRECTO (C2, FALSO)), abs_num )

donde abs_num es 1 para devolver una dirección absoluta (por ejemplo, " $C$352"), 4 para devolver una dirección relativa (por ejemplo, " C352"), o 2 para " C$352", o 3 para " $C352". ( abs_num por defecto es 1 (es decir, absoluto) si se omite).

Scott
fuente
Esta es la forma más directa de obtener esto? ¿No hay nada parecido =ADDRESS(C2)o similar?
Ehryk