Como obter o nome da coluna atual no Excel?

Como obter o nome da coluna atual no Excel?

Qual é a função para obter o número da linha atual e o nome da coluna atual de uma célula no Excel?

Responder1

Você pode usar as funções ROWe COLUMNpara fazer isso. Se você omitir o argumento dessas fórmulas, a célula atual será usada. Estes podem ser usados ​​diretamente coma OFFSETfunçãoou qualquer outra função onde você possa especificar a linha e a coluna como valores numéricos.

Por exemplo, se você inserir =ROW()na célula D8, o valor retornado será 8. Se inserir =COLUMN()na mesma célula, o valor retornado será 4.

Se quiser a letra da coluna, você pode usar a CHARfunção. Eu não recomendo o uso de letras para representar a coluna, pois as coisas ficam complicadas ao passar para nomes de colunas com letras duplas (onde apenas usar números é mais lógico de qualquer maneira).

Independentemente disso, se você ainda quiser obter a letra da coluna, você pode simplesmente adicionar 64 ao número da coluna (sendo 64 um caractere a menos que A), portanto, no exemplo anterior, se você definir o valor da célula como =CHAR(COLUMN()+64), o valor retornado seria D. Se você quisesse que o valor de uma célula fosse a própria localização da célula, a fórmula completa seria =CHAR(COLUMN()+64) & ROW().


Apenas para sua informação, obtive 64 de uma tabela ASCII. Você também pode usar a CODEfórmula, então a fórmula atualizada usando isso seria =CHAR(COLUMN() + CODE("A") - 1). Você deve subtrair 1, pois o valor mínimo de COLUMNé sempre 1, e então o valor mínimo de retorno de toda a fórmula seria B.

No entanto, isso não funcionará com colunas de duas letras. Nesse caso, você precisa da seguinte fórmula para analisar corretamente colunas de duas 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()

Não tenho certeza se existe uma maneira mais fácil de fazer isso ou não, mas sei que funciona do celular A1até ZZ99sem problemas. No entanto, isso ilustra por que é melhor evitar o uso de identificadores de colunas baseados em letras e optar por fórmulas puramente baseadas em números (por exemplo, usar o número da coluna em vez da letra com OFFSET).

Responder2

Experimente a seguinte função:

=SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")

Explicação: ADDRESS(row_num, column_num, [abs_num]). [abs_num] = 4= endereço relativo. Isso significa que não há '$' no valor retornado. Para a coluna 'AB', retornará ADDRESS'AB1'. O substituto remove o '1'.

Responder3

Experimente isso

=SUBSTITUTE(SUBSTITUTE(CELL("address"),"$" & ROW(),""), "$", "")

Isso fornece o cabeçalho exato da coluna, sem $ etc.

Responder4

Para obter o nome da coluna, usei as seguintes fórmulas.

Para uma célula específica:

=SUBSTITUTE(CELL("address",H3),"$" & ROW(H3),"")

Para a célula atual:

=SUBSTITUTE(CELL("address"),"$" & ROW(),"")

Experimente esta variação. Funciona em colunas de 3 letras e não deixa um "$" no front end:

=SUBSTITUTE(ADDRESS(ROW(XFD123),COLUMN(XFD123),4),ROW(XFD123),"")

informação relacionada