Menu

CLASSIFICAR e CLASSIFICARPOR no Excel: ordenar com fórmula

=CLASSIFICAR(A2:C7;3;-1) retorna a tabela A2:C7 ordenada pela terceira coluna, do maior para o menor, e continua reordenando quando os dados mudam. A CLASSIFICARPOR ordena por qualquer intervalo, inclusive várias colunas e uma ordem personalizada.

Todas as planilhas desta página são ao vivo: mude um número ou uma fórmula e elas recalculam.

=SORT(A2:C7,3,-1) retorna a tabela A2:C7 ordenada pela terceira coluna, vendas, da maior para a menor. No Excel em português as funções se chamam CLASSIFICAR (SORT em inglês) e CLASSIFICARPOR (SORTBY em inglês), e você também pode digitar as fórmulas em português na tabela, com ponto e vírgula: =CLASSIFICAR(A2:C7;3;-1). A tabela original fica como está; a cópia ordenada é despejada a partir da célula da fórmula e se reordena quando um número muda. Mude C7 para 300 e Finn vai para o topo.

Vendas da maior para a menor
E2
ABCDEFG
1NameRegionSalesNameRegionSales
2AnnNorth120CaraNorth200
3BenSouth80DanEast150
4CaraNorth200AnnNorth120
5DanEast150EveSouth95
6EveSouth95BenSouth80
7FinnNorth60FinnNorth60
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CLASSIFICAR(A2:C7;3;-1)

Sintaxe da CLASSIFICAR

=SORT(array, [sort_index], [sort_order], [by_col])
  • array é o intervalo a ordenar e retornar.
  • sort_index é o número da coluna dentro de array usada para ordenar. O padrão é 1.
  • sort_order é 1 para crescente (o padrão) ou -1 para decrescente.
  • by_col é FALSO (o padrão) para ordenar linhas, VERDADEIRO para ordenar colunas da esquerda para a direita.

CLASSIFICAR e CLASSIFICARPOR precisam do Excel 2021, do Excel 2024 ou do Microsoft 365; versões mais antigas mostram #NOME? (#NAME? em inglês; a tabela mostra os nomes de erro em inglês). O Google Sheets tem as duas, mas a SORT dele recebe um número de coluna e VERDADEIRO ou FALSO em pares.

A ordem crescente coloca os números primeiro, depois o texto de A a Z, depois FALSO e VERDADEIRO. O texto é comparado sem levar em conta maiúsculas. Células vazias em array voltam como 0 no resultado.

Como colocar em ordem alfabética no Excel

Para reordenar uma lista no lugar, clique em qualquer célula dela e escolha Dados > Classificar de A a Z (ou de Z a A). Se a lista tem colunas vizinhas, o Excel ordena a tabela inteira, para cada linha continuar junta. Use Dados > Classificar para mais de uma coluna ou para uma lista personalizada.

Para manter a ordem original e ter uma cópia em ordem alfabética que se atualiza sozinha, use a CLASSIFICAR sem os outros argumentos:

Nomes de A a Z
C2
ABC
1NameA to Z
2MiaAnn
3BenBen
4ZoeCara
5AnnDan
6LeoLeo
7CaraMia
8DanZoe
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CLASSIFICAR(A2:A8)

Digite Abe em A3 e ele aparece primeiro. =CLASSIFICAR(A2:A8;;-1) dá Z a A; os dois separadores seguidos pulam o sort_index. Para ordenar uma lista sem repetições, ordene o resultado da ÚNICO: =CLASSIFICAR(ÚNICO(A2:A8)) (veja ÚNICO).

CLASSIFICARPOR: ordenar por uma coluna que não é retornada

A CLASSIFICAR só consegue ordenar por uma coluna do intervalo que ela retorna. A CLASSIFICARPOR recebe a chave de ordenação como um intervalo separado, então você pode retornar só os nomes, ordenados pelas vendas:

Nomes ordenados pelas vendas
E2
ABCDE
1NameRegionSalesBy sales
2AnnNorth120Cara
3BenSouth80Dan
4CaraNorth200Ann
5DanEast150Eve
6EveSouth95Ben
7FinnNorth60Finn
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CLASSIFICARPOR(A2:A7;C2:C7;-1)

O resultado é Cara, Dan, Ann, Eve, Ben, Finn. A sintaxe é =SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], ...). Cada by_array precisa ter o mesmo número de linhas que array, senão a CLASSIFICARPOR retorna #VALOR! (#VALUE!).

Para um top 3, pegue as primeiras linhas do resultado: =PEGAR(CLASSIFICARPOR(A2:A7;C2:C7;-1);3) retorna Cara, Dan e Ann. A PEGAR (TAKE em inglês) precisa do Microsoft 365 ou do Excel 2024; no Excel 2021, use =ÍNDICE(CLASSIFICARPOR(A2:A7;C2:C7;-1);SEQUÊNCIA(3)).

Ordenar por várias colunas

Passe à CLASSIFICARPOR um par de chave e ordem por nível. Isto ordena por região de A a Z e, dentro de cada região, por vendas da maior para a menor:

Região de A a Z, depois vendas da maior para a menor
E2
ABCDEFG
1NameRegionSalesNameRegionSales
2AnnNorth120DanEast150
3BenSouth80CaraNorth200
4CaraNorth200AnnNorth120
5DanEast150FinnNorth60
6EveSouth95EveSouth95
7FinnNorth60BenSouth80
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =CLASSIFICARPOR(A2:C7;B2:B7;1;C2:C7;-1)

East vem primeiro, depois as três linhas de North, como Cara (200), Ann (120) e Finn (60), depois South. A CLASSIFICAR consegue fazer o mesmo com matrizes de números de coluna e de ordens, mas a CLASSIFICARPOR é mais fácil de ler:

=SORT(A2:C7,{2,3},{1,-1})

Essa fórmula está na forma em inglês: os separadores de uma constante de matriz dependem da configuração regional.

Ordenar em uma ordem personalizada

A ordem alfabética nem sempre é a que você quer. Para ordenar as regiões como North, East, South, transforme cada região na posição dela nessa lista com a CORRESP (MATCH em inglês) e ordene pelas posições:

North primeiro, depois East, depois South
E2
ABCDEFG
1NameRegionSalesNameRegionSales
2AnnNorth120AnnNorth120
3BenSouth80CaraNorth200
4CaraNorth200FinnNorth60
5DanEast150DanEast150
6EveSouth95BenSouth80
7FinnNorth60EveSouth95
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

A CORRESP retorna 1 para North, 2 para East e 3 para South, e a CLASSIFICARPOR ordena por esses números. Linhas com a mesma chave mantêm a ordem original, então as linhas de North continuam Ann, Cara, Finn. O mesmo truque ordena meses ou dias da semana pelo nome: liste os nomes na ordem do calendário dentro da CORRESP. Uma região que não está na lista recebe #N/D (#N/A) da CORRESP; use IFERROR(MATCH(B2:B7,{"North","East","South"},0),99) (forma em inglês, por causa da constante de matriz) como chave para jogar essas linhas para o fim.

Prática: nomes ordenados pelas vendas

Sua vez
E2
ABCDE
1NameRegionSalesBy sales
2AnnNorth120
3BenSouth80
4CaraNorth200
5DanEast150
6EveSouth95
7FinnNorth60
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: Em E2, retorne só os nomes, ordenados pelas vendas da maior para a menor.

Função CLASSIFICAR ou botão Classificar

Os dois ordenam, mas fazem trabalhos diferentes:

Dados > ClassificarCLASSIFICAR e CLASSIFICARPOR
Muda a tabela originalSimNão, o resultado vai para células novas
Atualiza quando os dados mudamNão, é preciso ordenar de novoSim
Funciona no Excel 2019 e anterioresSimNão
O resultado pode ser editado célula por célulaSimNão, é uma fórmula só
Pode ficar dentro de outra fórmulaNãoSim, por exemplo =PEGAR(CLASSIFICAR(A2:C7;3;-1);3)

Use o botão para arrumar uma tabela uma vez. Use a função para um relatório ou painel que precisa continuar ordenado enquanto os dados mudam. Se as células abaixo ou à direita da fórmula não estão vazias, a função mostra #DESPEJAR! (#SPILL!) em vez da lista ordenada; limpe essas células e ela aparece (veja erro #DESPEJAR!).

Perguntas frequentes

Como ordenar dados com uma fórmula no Excel?

Use a CLASSIFICAR: =CLASSIFICAR(A2:C7;3;-1) retorna A2:C7 ordenada pela terceira coluna, do maior para o menor. Deixe de fora os dois últimos argumentos, =CLASSIFICAR(A2:A8), para ordenar pela primeira coluna do menor para o maior, ou de A a Z em texto.

Qual é a diferença entre CLASSIFICAR e CLASSIFICARPOR?

A CLASSIFICAR ordena por uma coluna do intervalo que ela retorna, escolhida pelo número. A CLASSIFICARPOR ordena por qualquer intervalo que você passar, mesmo um que não é retornado: =CLASSIFICARPOR(A2:A7;C2:C7;-1) retorna só os nomes, ordenados pelas vendas. A CLASSIFICARPOR também recebe várias chaves de ordenação direto.

Como colocar uma lista em ordem alfabética no Excel?

Selecione uma célula da lista e clique em Dados > Classificar de A a Z para reordenar no lugar. Para manter o original e ter uma cópia ordenada que se atualiza, digite =CLASSIFICAR(A2:A8) em uma célula vazia; use =CLASSIFICAR(A2:A8;;-1) para Z a A.

Como ordenar por duas colunas com uma fórmula?

Passe à CLASSIFICARPOR dois pares de chave e ordem: =CLASSIFICARPOR(A2:C7;B2:B7;1;C2:C7;-1) ordena por região de A a Z e, dentro de cada região, por vendas da maior para a menor.

Quais versões do Excel têm CLASSIFICAR e CLASSIFICARPOR?

Excel 2021, Excel 2024 e Microsoft 365. No Excel 2019 e anteriores elas mostram #NOME?, e o botão Classificar da guia Dados é o jeito de ordenar.

Ilustração das linguagens de programação do Coddy

Aprenda a programar com o Coddy

COMEÇAR