
Eu tenho strings no Excel como AA
ou XA
.
Eu preciso incrementá-los assim:
Pois AA
na célula A1 estará AB
na célula B1, AC
na célula B2 e assim por diante.
Pois XA
na célula A1 estará XB
na célula B1, XC
na célula B2 e assim por diante.
Tentei o código popular, =CHAR(CODE(A1)+1)
mas não funciona depois de Z.
Qualquer sugestão é bem-vinda.
Responder1
Tente isto: coloque "AA" na célulaA1e insira a seguinte fórmula na célulaB1e arraste
=IF(RIGHT($A1,1)="Z", CHAR(CODE(LEFT(A1,1))+1),LEFT(A1,1))&CHAR(65+MOD(CODE(RIGHT(A1,1))+1-65,26))
Ele irá incrementar da seguinte forma: AA, AB, AC,..., AZ, BA, BB, BC.... etc.
Você pode querer adaptar esta fórmula para se adequar à sua apresentação específica. Observe que isso não funcionará após "ZZ".
Atualização: bug corrigido
Responder2
Podemos usar a própria planilha do Excel para ajudar a incrementar as letras - o incremento funcionará de A
paraXFC
Primeiro crie a referência da célula: INDIRECT(A1&"1")
Em seguida, encontre o endereço da próxima coluna: ADDRESS(1,COLUMN(INDIRECT(A10&"1"))+1)
Então do $??$1 extraímos as letras: 2 maneiras:
Procure o segundo $ e recorte o texto entre eles
=MID(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2,FIND("$",ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2)-2)
Substitua 1 e $ por nada na string
=SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),"$",""),"1","")
Escolha qual funciona melhor para você
Responder3
Outro exemplo: digite na célula A1 e copie a fórmula para uma ou todas as células.
=CHAR(MOD(LINHA(A1)-1;26)+65)&CHAR(MOD(COLUNA(A1)-1;26)+65)
Pretende ser um exemplo de como alguém pode pensar sobre o problema.
Responder4
Outra solução para isso ADDRESS()
é:
=MID(ADDRESS(1,26+ROW()),2,2)
A fórmula acima retornará AA
na primeira linha e AB
na segunda linha e assim por diante.
Também com o uso de matemática a fórmula é:
=CONCATENATE(CHAR(INT(ROW()/26)+65),CHAR(MOD(ROW()-1,26)+65))