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 ROW
e COLUMN
para fazer isso. Se você omitir o argumento dessas fórmulas, a célula atual será usada. Estes podem ser usados diretamente coma OFFSET
funçã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 CHAR
funçã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 CODE
fó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 A1
até ZZ99
sem 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),"")