Como incrementar string como AA para AB?

Como incrementar string como AA para AB?

Eu tenho strings no Excel como AAou XA.

Eu preciso incrementá-los assim:

Pois AAna célula A1 estará ABna célula B1, ACna célula B2 e assim por diante.

Pois XAna célula A1 estará XBna célula B1, XCna 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 AparaXFC

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:

  1. 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)
    
  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á AAna primeira linha e ABna 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))

informação relacionada