Note: The other languages of the website are Google-translated. Back to English

Como classificar números em uma célula no Excel?

É fácil e comum classificarmos os números em uma lista de colunas, mas você já tentou classificar os números em uma única célula? Pode ser que não haja uma boa maneira para você, exceto organizá-los um por um, aqui, vou falar sobre como classificar números dentro das células no Excel.

Classifique os números nas células com a fórmula

Classifique os números dentro das células com a função definida pelo usuário

Classifique os números separados por vírgulas dentro das células com o código VBA


seta azul bolha direita Classifique os números nas células com a fórmula

Para classificar os números nas células em uma planilha, você pode aplicar a seguinte fórmula longa, faça o seguinte:

1. Ao lado de seus dados, insira a seguinte fórmula, neste exemplo, irei digitá-la na célula C1, veja a captura de tela:

=TEXT(SUM(SMALL(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1)))

doc-sort-numbers-in-cells-1

2. Então aperte Ctrl + Shift + Enter juntas, arraste a alça de preenchimento até o intervalo em que deseja aplicar esta fórmula e você obterá os números que foram classificados do pequeno ao grande. Veja a imagem:

doc-sort-numbers-in-cells-1

notas:

1. Se o dígito do número for maior que 15 na célula, esta fórmula não obterá o resultado correto.

2. Se você deseja classificar os números em ordem decrescente, pode usar esta fórmula: =TEXT(SUM(LARGE(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1))).

3. Nas fórmulas acima, A1 indica a célula que contém os números que você deseja classificar, você pode alterá-la conforme sua necessidade.


seta azul bolha direita Classifique os números dentro das células com a função definida pelo usuário

Como existem algumas limitações da fórmula, você pode usar o seguinte Função definida pelo usuário para classificar números em células com mais de 15 dígitos.

1. Segure o ALT + F11 chaves, e abre o Janela Microsoft Visual Basic for Applications.

2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.

Código VBA: classifique os números nas células

Function SortNumsInCell(pNum As String, Optional pOrder As Boolean) As String
'Update 20140717
Dim xOutput As String
For i = 0 To 9
  For j = 1 To UBound(VBA.Split(pNum, i))
    xOutput = IIf(pOrder, i & xOutput, xOutput & i)
  Next
Next
SortNumsInCell = xOutput
End Function

3. Em seguida, salve e feche este código, volte para sua planilha e insira esta fórmula = sortnumsincell (A1) em uma célula em branco ao lado de seus dados, veja a captura de tela:

doc-sort-numbers-in-cells-1

4. E, em seguida, arraste a alça de preenchimento para as células que você deseja que contenham esta fórmula, e todos os números nas células foram classificados em ordem crescente, conforme mostrado a seguir:

doc-sort-numbers-in-cells-1

Nota: Se você deseja classificar os números em ordem decrescente, insira esta fórmula = sortnumsincell (A1,1).


seta azul bolha direita Classifique os números separados por vírgulas dentro das células com o código VBA

Se seus números forem separados por certos caracteres, como vírgula, ponto e vírgula, ponto e assim por diante, conforme a captura de tela seguinte, como você poderia classificá-los em células? Agora, apresento um código VBA para você classificá-los.

doc-sort-numbers-in-cells-1

1. Segure o ALT + F11 chaves para abrir o Janela Microsoft Visual Basic for Applications.

2. Clique inserção > Móduloe cole o seguinte código no Janela Módulo.

Código VBA: os números de classificação são separados por vírgulas dentro das células

Sub SortNumsInRange()
'Update 20140717
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set objArrayList = CreateObject("System.Collections.ArrayList")
For Each Rng In WorkRng
    Arr = VBA.Split(Rng.Value, ",")
    For i = 0 To UBound(Arr)
        xMin = i
        For j = i + 1 To UBound(Arr)
            If Arr(xMin) > Arr(j) Then
                xMin = j
            End If
        Next j
        If xMin <> i Then
            temp = Arr(i)
            Arr(i) = Arr(xMin)
            Arr(xMin) = temp
        End If
    Next i
    Rng.Value = VBA.Join(Arr, ",")
Next
End Sub

3. Então aperte F5 para executar este código e, em seguida, selecione suas células que contêm os números na caixa de prompt exibida, consulte a captura de tela:

doc-sort-numbers-in-cells-1

4. E, em seguida, clique em OK, todos os números nas células foram classificados de forma crescente no intervalo original.

Nota: Você pode alterar a vírgula “,” para quaisquer outros caracteres conforme necessário no código acima. E esse código só pode classificar os dados de forma ascendente.


Artigos relacionados:

Como classificar números com hifens no Excel?

Como classificar os dados pelo valor mais frequente no Excel?

Como classificar o endereço de e-mail por domínio no Excel?

Como classificar linhas para colocar as células em branco no topo do Excel?


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (13)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
senhor, você poderia por favor ajudar a classificar os dados para a duplicata primeiro se é pequeno ou grande Exemplo 1211 ---> 1112 9495 ---> 9945 7379 ---> 7739 Muito obrigado pela sua ajuda
Este comentário foi feito pelo moderador no site
Oi, eu queria saber como esta UDF, = sortnumsincell (A1,1), pode ser modificado de forma mais geral, como =sortnumsincell(A1," "," ",,1) onde o primeiro argumento, A1, é a célula de destino, o segundo argumento,"", é um delimitador que pode receber qualquer caractere, ou um espaço, ou nada, com terceiro argumento, "", um delimitador diferente ou igual, e o quarto argumento, 1 ou 0, indicando uma classificação crescente ou decrescente, com a string de resultado exibindo, classificada corretamente, dentro de uma célula, com o delimitador padrão igual à string original, a menos que especificado no terceiro termo. Eu gostaria que funcionasse tanto em string quanto em numérico, e às vezes o segundo ou terceiro argumento pode ser um feed de linha, como seria inserido manualmente com alt-enter. Você seria meu herói do mês se pudesse fazer isso. Tentei mas falhei miseravelmente. Obrigada.
Este comentário foi feito pelo moderador no site
Eu tenho uma série de células com números separados por um espaço que quero classificar. por exemplo, 8 4 5 1 6 3 que eu quero classificar como 1 3 4 5 6 8 Qualquer ajuda é apreciada
Este comentário foi feito pelo moderador no site
Existe alguma maneira de classificar mais números ao mesmo tempo de uma célula? Exemplo, eu tenho uma lista de 50000 números de ativos como A1234,A1235... e eu preciso puxar 500 números específicos e eu preciso puxar 500 na hora para fazer a mudança e salvar. Obrigado
Este comentário foi feito pelo moderador no site
precisa classificar 84-12-74-26-98 qualquer pedido 12-26-74-84-98 ou 98-84-74-26-12 obrigado
Este comentário foi feito pelo moderador no site
Se CInt(Arr(xMin)) > CInt(Arr(j)) e funciona
Este comentário foi feito pelo moderador no site
eu quero classificar um total de 14000 a 20000 de várias linhas Exemplo: - 2000,1500 uma linha e assim todo o valor da linha para organizar
Este comentário foi feito pelo moderador no site
Oi, o código VBA parece sair incorretamente, exemplo antes de 13,50,47,7,39 e depois de 13-39-47-50-7. Alguma idéia por quê?
Este comentário foi feito pelo moderador no site
hOLA, MI PROBLEMA ES QUE TENGO EXEL 2019 EN ESPAÑOL COMO SERIA LA FORMULA?
Este comentário foi feito pelo moderador no site
Como classificar o texto AZ em uma célula no Excel?
Este comentário foi feito pelo moderador no site
Oi, obrigado por bom bom para classificar números separados por vírgulas dentro de células com código VBA
Só que eu enfrentei um problema com o código.
O código não pode detectar o número de três dígitos. por exemplo os números (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) após a aplicação do código, a nova ordem (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)
Você tem alguma solução para o problema?
Este comentário foi feito pelo moderador no site
Olá, omer, pode ser que o código abaixo possa ajudá-lo, tente:
Função pública CellSort(r como intervalo) como string
Dim bry() Enquanto Longo, L Enquanto Longo, U Enquanto Longo
ch = r(1).Texto
ary = Split(ch, ","")
L = LBound(ary)
U = UBound(ary)
ReDim bry(L para U)
Para i = LBound(ary) Para UBound(ary)
bry(i) = CLng(ary(i))
Proximo eu
Chamar BubbleSort(bry)
Para i = LBound(bry) Para UBound(bry)
ary(i) = Cstr(bry(i))
Proximo eu
CellSort = Join(ary, ","")
Função final

Sub BubbleSort(arr)
Dim strTemp como variante
Dim i tanto tempo
Dim j como longo
Dim lngMin Enquanto
Dim lngMax Long
lngMin = LBound(arr)
lngMax = UBound(arr)
Para i = lngMin Para lngMax - 1
Para j = i + 1 Para lngMax
Se arr(i) > arr(j) Então
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
Se acabar
Próxima j
Proximo eu
End SubDepois de inserir o código acima, aplique esta fórmula: =CellClass(A1).E você terá o resultado que precisa.
Este comentário foi feito pelo moderador no site
Olá, você pode ordenar as letras em uma única celda por ordem alfabética? Você usa o Excel para Mac. Gracias
Não há comentários postados aqui ainda
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos