¿Cuál es la función para obtener el número de línea actual y el nombre de la columna actual para una celda en Excel?
Respuesta1
Puede utilizar las funciones ROW
y COLUMN
para hacer esto. Si omite el argumento de esas fórmulas, se utiliza la celda actual. Estos se pueden utilizar directamente conla OFFSET
función, o cualquier otra función donde 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 utilizar la CHAR
función. No recomiendo el uso de letras para representar la columna, ya que las cosas se complican al pasar a nombres de columnas de dos letras (donde usar números es más lógico de todos modos).
Independientemente, si aún desea obtener la letra de la columna, simplemente puede agregar 64 al número de la columna (siendo 64 un carácter menos que A
), por lo que en el ejemplo anterior, si establece el valor de la celda en =CHAR(COLUMN()+64)
, el valor devuelto sería D
. Si quisiera que el valor de una celda fuera la ubicación de la celda misma, la fórmula completa sería =CHAR(COLUMN()+64) & ROW()
.
Sólo para su información, obtuve 64 de una tabla ASCII. También podrías usar la CODE
fórmula, por lo que la fórmula actualizada usando esto sería =CHAR(COLUMN() + CODE("A") - 1)
. Tienes que restar 1 ya que el valor mínimo de COLUMN
es siempre 1, y luego el valor mínimo de retorno de toda la fórmula sería B
.
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:
=IF(COLUMN()>26,IF(RIGHT(CHAR(IF(MOD(COLUMN()-1,26)=0,1,MOD(COLUMN()-1,26))+64),1)="Y",CHAR(INT((COLUMN()-1)/26)+64) & "Z",CHAR(INT((COLUMN()-1)/26)+64) & CHAR(IF(MOD(COLUMN(),26)=0,1,MOD(COLUMN(),26))+64)),CHAR(COLUMN()+64))&ROW()
No estoy seguro si hay una manera más fácil de hacerlo o no, pero sé que funciona desde el celular A1
sin ZZ99
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 puramente en números (por ejemplo, usar el número de columna en lugar de la letra con OFFSET
).
Respuesta2
Pruebe la siguiente función:
=SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")
Explicación: ADDRESS(row_num, column_num, [abs_num])
. [abs_num] = 4
= dirección relativa. Eso significa que no hay '$' en el valor devuelto. Para la columna 'AB', devolverá ADDRESS
'AB1'. El suplente quita el '1'.
Respuesta3
Prueba esto
=SUBSTITUTE(SUBSTITUTE(CELL("address"),"$" & ROW(),""), "$", "")
Esto le proporciona el encabezado de columna exacto, sin $, etc.
Respuesta4
Para obtener el nombre de la columna utilicé las siguientes fórmulas.
Para una celda en particular:
=SUBSTITUTE(CELL("address",H3),"$" & ROW(H3),"")
Para la celda actual:
=SUBSTITUTE(CELL("address"),"$" & ROW(),"")
Prueba esta variación. Funciona en columnas de 3 letras y no deja un "$" al principio:
=SUBSTITUTE(ADDRESS(ROW(XFD123),COLUMN(XFD123),4),ROW(XFD123),"")