Como obter o próximo valor da lista personalizada no excel com fórmula

0

Eu preciso pegar o próximo valor da lista que criei antes. A lista personalizada é o alfabeto 'A, B, C .... AA, AB, AC ...'. Quando eu o aplico de B52: G52 e escrevo 'C' em B52 e arrasto a célula para G52, a lista é aplicada assim em C52 = D, D52 = E ....

Como posso saber qual é o próximo valor com fórmula. Se eu tiver 'C' em B52, qual é a fórmula que em C52 deve ser 'D'.

Até agora eu tenho uma célula P1 contém letra 'B' e célula B52 = P1 e eu tenho a fórmula em C52 = IF (C45; B52 + 1; "") que se aplica quando a célula C45 não está vazia (em branco) .

Por enquanto, se eu escrever 'C' em P1, ele será automaticamente copiado em B52. Quando eu escrevo algo em C45, a célula C52 deve se tornar 'D'. Mas a parte 'B52 + 1' é a errada.

Obrigado pela sua ajuda.

    
por Георги Даскалов 05.08.2016 / 13:26

1 resposta

0

Usar B52+1 seria bom se você está lidando com números, mas como você está usando letras você precisa usar o CHAR () e Funções CODE () , além de apenas referenciar a célula C45 em seu teste lógico sem definir o teste que você deseja aplicar à célula C45 não produziria nenhum resultado. Para testar se a célula C45 não está vazia, você precisa de um teste lógico de C45<>""

Se você quisesse ir de A-Z, precisaria alterar a fórmula na célula C52 para

=IF(C45<>"",CHAR(CODE(B52)+1),"")

O problema para você com essa fórmula é que, se você usou essa fórmula e passou Z , a próxima célula retornaria um [ , já que ela usa o Conjunto de caracteres ASCII

Se você quiser ir além e passar de Z para AA , precisará de uma fórmula mais complexa usando LEN () , ESQUERDA () e RIGHT () funções.

Portanto, a fórmula na célula C52 precisa ser

=IF(C45<>"",IF(B52="Z","AA",IF(LEN(B52)=1,CHAR(CODE(B52)+1),(IF(RIGHT(B52)="Z",CHAR(CODE(LEFT(B52))+1)&"A",LEFT(B52)&CHAR(CODE(RIGHT(B52))+1))))),"")

Isso vai de A a Z , a etapa de Z a AA , então, AA a ZZ

    
por 07.08.2016 / 12:41