Classificação alfanumérica no Excel

11

No Excel, é possível classificar alfanuméricos de a-1, a-2, a-3 ... a-123 em vez de a-1, a-10, a-100, a-11?

A classificação do mais antigo para o mais novo ou do AZ definitivamente não me dará o resultado que desejo. Eu tentei formatar as células como número, mas não ajudou.

Estou preso.

beccabecca
fonte
Olá @beccabecca, aceite uma resposta, pois isso não só é útil para pessoas que têm uma pergunta semelhante à sua, mas também recompensa aqueles que trabalharam para fornecer uma solução para você. Felicidades!
David Michael Gregg

Respostas:

4

O resultado

O usuário @ fixer1234 está certo, você provavelmente deseja usar as funções de string. Aqui está uma maneira de fazer isso.

Passo 1

[Atualizada]

Na coluna "Números", realce o intervalo e divida o texto com o hífen: faça ...

Data> Text to Columns> Delimited> Next> Other: ->Finish

Observe que você precisa de um hífen ( - ) na Other:caixa de texto. E verifique se a coluna adjacente (à direita) está vazia antes de fazer isso, para não sobrescrever dados importantes.

Você também pode usar esta função para extrair o número da coluna A:

=RIGHT(A2,LEN(A2)-SEARCH("-",A2))

Passo 2

Agora, o que faremos na próxima etapa, como você pode ver na captura de tela acima, é acrescentar zeros ao início de cada um dos números que possuem menos dígitos que o maior número. Isso permitirá que você classifique esses números da maneira que desejar.

Mas primeiro, precisamos investigar um pouco. Se você puder dizer com facilidade qual é o maior número, basta contar os dígitos desse número maior - esse será o número de zeros que você deseja usar em nossa próxima função. Há outra maneira de determinar o número mais longo, sem precisar contar os dígitos do maior número manualmente.

[UPDATE] Você pode usar a seguinte função (embora até agora não sabemos exatamente o porquê ) para determinar o número mais longo:

=MAX(INDEX(LEN(C2:C14),,1))

Como alternativa, você pode simplesmente digitar a fórmula a seguir em uma célula (você vê isso na imagem acima como a célula destacada em laranja), mas em vez de simplesmente pressionar a ENTERtecla para definir a célula, pressione a tecla de atalho CTRL-SHIFT-ENTER. Isso mudará a natureza da função, transformando-a em uma fórmula de matriz , sem ter que brincar com funções como INDEX().

=MAX(LEN(C2:C14))

(Verifique se o intervalo é preciso para a planilha específica que você está usando.)

Depois de pressionar CTRL-SHIFT-ENTER, o conteúdo da célula mudará para isso, mas digitar manualmente não fará nada:

{=MAX(LEN(C2:C14))}

No entanto, você quer fazer tudo bem. Apenas determine quantos dígitos compõem o maior número da sua lista: "1" obviamente tem 1 dígito, "10" possui 2 dígitos, "100" possui 3 dígitos e assim por diante.

etapa 3

Por fim, na coluna "Expandir", essa função converterá os números da coluna "Números" em texto com o número de zeros anteriores que você determinou que deveria usar na Etapa 2.

=TEXT(C2,"000")

Certifique-se de colocar aspas em torno dos zeros.

Se o maior número tiver 8 dígitos, sua função ficará assim:

=TEXT(C2,"00000000")
David Michael Gregg
fonte
2

Uma solução simples é usar funções de string para colocar os valores numéricos em uma nova coluna como um número. Em seguida, classifique nessa coluna. Você não especificou como os valores podem variar ou como são organizados, mas um exemplo:

Suponha que o prefixo "a-" nunca seja alterado, as entradas estão na coluna A começando na linha 2 e a coluna B está disponível. Em B2, você colocaria algo como: = value (mid (a2,3, len (a2) -2)) e, em seguida, copie a fórmula conforme necessário. Para classificar, realce as duas colunas e classifique em B.

Se houver outros prefixos, digamos b-, c- etc., também separe a parte do texto para outra coluna. Em seguida, classifique na coluna de texto como a primeira coluna de classificação e a coluna numérica como a segunda.

Tudo o que você destacar será classificado de acordo com as colunas de classificação.

Para explicar as funções de string, comece com a função mid, que extrai uma string de caracteres de dentro de uma string de caracteres. mid (a2,3, len (a2) -2) examina o texto em a2, começa com o terceiro caractere (o primeiro dígito assumindo que todos os prefixos são "a-") e, em seguida, pega o número de caracteres que é dois a menos que o número no texto original (o comprimento do texto original menos os caracteres "a-"). A função value transforma esse resultado em um número em vez de uma sequência de caracteres numéricos.

fixer1234
fonte
Desculpe, você poderia explicar um pouco mais em detalhes? O que é função de string?
precisa saber é o seguinte
Então, para B3 seria = value (mid (a3,3, len (a3) ​​-2))? Estou certo? Então será assim por diante? Desculpe eu espero im não fazer perguntas estúpidas ...
beccabecca
Você entendeu. Depois de criar a fórmula em B2, basta copiá-la, realçar as células B para quantas linhas você precisar e colar. Ele mudará automaticamente as referências de célula para corresponder linha por linha.
precisa saber é o seguinte
2

Eu tenho os seguintes dados:

[Student Name]  [Regn. No (AlphaNum)]    [Test Score]

Lisa            DD38                      90

Aletta          BC36                      85

Ava             AB40                      95

Sunny           BB34                      91

Sofia           CD36                      89

Johnny          CM07                      80

Dados iniciais a serem classificados de acordo com a sequência AlphaNumeric

Quero que os alunos e as marcas sejam organizados de acordo com o número de registro, que são sequências alfanuméricas. A saída final deve ser assim:

[Student Name]  [Regn. No (AlphaNum)]    [Test Score]

Ava             AB40                      95

Sunny           BB34                      91

Aletta          BC36                      85

Sofia           CD36                      89

Johnny          CM07                      80

Lisa            DD38                      90

A saída final deve ficar assim

Como:

Etapas para converter seqüência alfanumérica em números puros

Embora o instantâneo acima seja óbvio, as etapas são as seguintes:

  1. Extraia a parte alfabética de uma coluna usando =LEFT(B4, 2)como fórmula, onde '2' mostra o número de alfabetos na string e minhas strings começam B4.

  2. Atribua um número a esta parte alfabética usando =COLUMN(INDIRECT(E4&1))

  3. Extraia a parte numérica do número de registro usando =RIGHT(B4,2)como fórmula. Aqui '2' é o não. de números na string.

  4. Concatene as duas partes em 2 e 3

  5. Converta-os em números 'puros' usando =VALUE(H4)

  6. Copie a última coluna para a tabela original e use a opção Colar como 'Valores'

    Dados iniciais anexados com cadeias alfanuméricas convertidas em números

  7. Agora, classifique de acordo com a última coluna e escolha 'Expandir a seleção'

    Classificação 1

    Classificação 2

  8. Feito!!!

    Saída final

Importante: Dica Pro -> Combine as etapas de 1 a 5 usando =VALUE(CONCATENATE(COLUMN(INDIRECT(LEFT(B4,2)&1)),RIGHT(B4,2)))

BK_
fonte
Além disso: como neste exemplo, todos os números de registro têm o mesmo comprimento, usando zeros à esquerda para a parte numérica : uma ordenação regular não funcionaria imediatamente ?
Arjan