¿Cuál es la función para obtener el número de línea actual y el nombre de columna actual para una celda en Excel?
30
¿Cuál es la función para obtener el número de línea actual y el nombre de columna actual para una celda en Excel?
LIN
yCOL
el problema es que devuelven números, y necesito la letra de la columnaINDIRECT
.OFFSET
función junto con, o en lugar de, laINDIRECT
fórmula en ese caso. Sin embargo, si desea usar cadenas, también actualicé mi respuesta.Respuestas:
Puede usar las funciones
ROW
yCOLUMN
para hacer esto. Si omite el argumento para esas fórmulas, se utiliza la celda actual. Se pueden usar directamente con laOFFSET
función o con cualquier otra función en la que pueda especificar tanto la fila como la columna como valores numéricos.Por ejemplo, si ingresa
=ROW()
en la celda D8, el valor devuelto es 8. Si ingresa=COLUMN()
en la misma celda, el valor devuelto es 4.Si desea la letra de la columna, puede usar la
CHAR
función. No recomiendo el uso de letras para representar la columna, ya que las cosas se ponen difíciles al pasar a los nombres de columna de doble letra (de todos modos, el uso de números es más lógico).De todos modos, si aún desea obtener la letra de la columna, simplemente puede agregar 64 al número de columna (64 es un carácter menos
A
), por lo que en el ejemplo anterior, si establece el valor de la celda=CHAR(COLUMN()+64)
, el valor devuelto seríaD
. Si desea que el valor de una celda sea la ubicación de la celda en sí, la fórmula completa sería=CHAR(COLUMN()+64) & ROW()
.Solo para su información, obtuve 64 de una tabla ASCII. También puede usar la
CODE
fórmula, por lo que la fórmula actualizada con esto sería=CHAR(COLUMN() + CODE("A") - 1)
. Debe restar 1 ya que el valor mínimo deCOLUMN
siempre es 1, y luego el valor mínimo de retorno de toda la fórmula seríaB
.Sin embargo, esto no funcionará con columnas de dos letras. En ese caso, necesita la siguiente fórmula para analizar correctamente las columnas de dos letras:
No estoy seguro de si hay una manera más fácil de hacerlo o no, pero sé que funciona desde la celda
A1
hastaZZ99
sin problemas. Sin embargo, esto ilustra por qué es mejor evitar el uso de identificadores de columna basados en letras y seguir con fórmulas basadas en números puros (por ejemplo, usar el número de columna en lugar de la letra conOFFSET
).fuente
OFFSET
en su lugar, lo que te permite especificar columnas como números. De todos modos, actualicé la respuesta con una fórmula para extenderla para que funcione con columnas de dos letras.However, this will not work with two-letter columns. In that case, you need the following formula to properly parse two-letter columns:
Pruebe la siguiente función:
Explicación:
ADDRESS(row_num, column_num, [abs_num])
.[abs_num] = 4
= dirección relativa. Eso significa que no hay '$' s en el valor devuelto. Para la columna 'AB',ADDRESS
devolverá 'AB1'. El sustituto elimina el '1'.fuente
Prueba esto
Esto le da el encabezado de columna exacto, sin ningún $ etc.
fuente
Escriba esto en cualquier celda:
español :
Inglés :
Puede reemplazar la columna () por el número de fila.
fuente
Para obtener el nombre de la columna, utilicé las siguientes fórmulas.
Para una celda particular:
Para la celda actual:
Prueba esta variación. Funciona en columnas de 3 letras y no deja un "$" en la parte frontal:
fuente
Ligeramente manual pero menos VBA y una fórmula más simple:
=column()
=Address(1,A1)
$A$1
Una vez que se copian los valores, busque y reemplace
$
y1
con espacios en blanco.fuente
Esto también funcionará
fuente
Otra posible forma sería usar algo como esto:
Donde se
colid
refiere a un rango con nombre que crearía en otro lugar dentro del libro de trabajo que comprende dos columnas adyacentes con múltiples filas: la primera columna que contiene los números 1 a n correspondientes alCOLUMN()
número, la segunda que contiene las letras A - ZZ, o la cantidad de columnas que le haga referencia Deseo acomodar. SeROW()
deja bien como está para devolver el número de fila.Entonces, si copiara la cadena anterior a la celda A1 de 'MySheet2', se evaluaría como
=MySheet1!A1
y devolvería el valor que encontró en la celda correspondiente deMySheet1
.Esto le permitiría, por ejemplo, usar
MySheet1
como área de trabajo, eliminar y volver a insertar nuevos datos, mientras que cualquier formato o cálculoMySheet2
que haga referencia a esos contenidos continuará funcionando correctamente con los nuevos conjuntos de datos de la hoja de trabajo con pestañas objetivo.fuente
Solución para la versión polaca de Excel:
fuente
Aquí hay una VBA, fórmula definida por el usuario, solución. Funciona con columnas de 1, 2 y 3 letras.
Ponga lo siguiente en un módulo de código:
= COLUMNLETTER () en cualquier celda devolverá la letra de la columna de la celda.
= COLUMNLETTER (B3) en cualquier célula volverá B .
Esta función definida por el usuario funciona muy bien al crear fórmulas genéricas dentro de la función INDIRECTA.
fuente
La fórmula de la dirección funciona devolviendo el nombre de la columna y la fila. El formato devuelto siempre será
$(Column Letters)$(Row Numbers)
, por ejemplo,$AA$2
o$XAA$243556
Si sabemos que $ siempre ocurrirá en el primer carácter, podemos usar la primera fórmula intermedia para comenzar a extraer caracteres después del primer signo $ (es decir, el segundo carácter).
Luego, encontramos el próximo signo $ (ya que sabemos que solo habrá dos) y sabemos cuántos caracteres hay entre el primer y el segundo signo de dólar. El resto es simple resta.
fuente
Así es como puede encontrar el encabezado de la columna (es decir, la letra):
fuente
prueba esto:
fuente
La siguiente fórmula funciona sin importar dónde la coloque (le devolverá el nombre de la columna).
fuente
prueba esto:
esta función es efectiva hasta "ZY1" o columna = 701
fuente
fuente