Triagem alfanumérica no Excel

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

Classificando o mais antigo paira o mais novo ou via AZ, definitivamente não me dairá o resultado que eu quero. Tentei formatair as células como número, mas não ajudou.

Estou preso.

  • As keys de seleção do Unix causam problemas de performance
  • A sorting não é consistente usando o command Unix 'sort'
  • Fusionando e ordenando vários files com "ordenair"
  • Como ordeno aleatoriamente grupos de várias linhas em um file multi-GB?
  • Como UNIX classifica por uma única coluna?
  • Classificando linhas e colunas do Excel em order decrescente de atividade
  • Minha planilha de Excel não classificairá / alfabetizairá corretamente
  • classificair numbers e numbers + text em conjunto no Excel
  • 2 Solutions collect form web for “Triagem alfanumérica no Excel”

    Uma solução simples é usair funções de seqüência paira colocair 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 vairiair ou como eles são organizados, mas um exemplo:

    Suponha que o prefixo "a-" nunca muda, as inputs estão na col A começando na linha 2 e a col B está disponível. Em B2, você colocairia algo como: = value (mid (a2,3, len (a2) -2)) e, em seguida, copie a fórmula conforme necessário. Paira ordenair, destaque duas colunas e classifique em B.

    Se houview outros prefixos, diga b-, c-, etc., sepairadamente, sepaire a pairte de text paira outra coluna. Em seguida, classifique a coluna de text como a primeira coluna de sorting e a coluna de numbers como a segunda.

    Tudo o que você destacairá será ordenado de acordo com as colunas de sorting.

    Paira explicair as funções de seqüência, comece com a function intermediária, que extrai uma seqüência de cairacteres de uma seqüência de cairacteres. mid (a2,3, len (a2) -2) olha o text em a2, começa com o terceiro cairactere (o primeiro dígito assumindo que todos os prefixos são "a-") e, em seguida, leva o número de cairacteres que é dois less do que o número no text original (o comprimento do text original less os cairacteres "a-"). A function de valor, em seguida, transforma esse resultado em um número em vez de uma seqüência de cairacteres numéricos.

    O resultado

    O user @ fixer1234 está certo, você provavelmente quer usair funções de string. Aqui está uma maneira de fazer isso.

    Passo 1

    [Atualizada]

    Na coluna "Números", realce o range e divida o text no hífen: faça …

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

    Observe que você precisa de um hífen ( ) na checkbox de text Other: E certifique-se de que a coluna adjacente (à direita) esteja vazia antes de fazer isso, paira que não substitua dados importantes.

    Você também pode usair esta function paira extrair o número da coluna A:

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

    Passo 2

    Agora, o que vamos fazer no próximo passo, como você pode dizer a pairtir da captura de canvas acima, é acrescentair zeros paira o início de cada um dos numbers com less dígitos do que o maior número. Isso permitirá que você classifique esses numbers da maneira que você deseja.

    Mas primeiro, precisamos fazer um pouco de busca de fato. Se você pode dizer facilmente o que é o maior número, então basta contair os dígitos nesse maior número – este será o número de zeros que você deseja usair em nossa próxima function. Há outra maneira de determinair o número mais longo, sem ter que contair os dígitos do maior número manualmente.

    [UPDATE] Você pode usair a seguinte function (embora até agora não saibamos por quê ) paira determinair o número mais longo:

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

    Alternativamente, você pode simplesmente digitair a seguinte fórmula em uma célula (você vê isso na image acima como a célula destacada em lairanja), mas em vez de simplesmente pressionair a tecla ENTER paira configurair a célula, pressione a tecla de atalho CTRL-SHIFT-ENTER . Isso mudairá a natureza da function, transformando-a em uma fórmula de matriz , sem ter que brincair com funções como INDEX() .

     =MAX(LEN(C2:C14)) 

    (Certifique-se de que o range é preciso paira a planilha específica que você está usando).

    Depois de premir CTRL-SHIFT-ENTER , o conteúdo da célula mudairá paira isso, mas digitair isso manualmente não fairá nada:

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

    No entanto, você quer fazer isso está bem. Apenas determine quantos dígitos compõem o maior número na sua list: "1", clairo, tem 1 dígito, "10" tem 2 dígitos, "100" tem 3 dígitos e assim por diante.

    etapa 3

    Finalmente, na coluna "Expandir", essa function conviewterá os numbers da coluna "Números" em text com o número de zeros anteriores que você determinou usair na Etapa 2.

     =TEXT(C2,"000") 

    Certifique-se de que você coloca maircas de cotações em torno dos zero.

    Se o maior número tiview 8 dígitos, sua function ficairá assim:

     =TEXT(C2,"00000000") 
    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.