Classificando Números em Ordem Crescente e Decrescente

Escrito por: Reinaldo Coral Em 3 - maio - 2009

Olá amigos!

Essa dica vai para aquelas situações onde precisamos classificar uma determinada listagem e a ferramenta “Classificar” não atenderia da maneira que precisamos naquele momento. Lembre-se que a ferramenta classificar reorganiza toda a disposição dos dados nas colunas. No entanto, há situações em que precisamos apenas de gerar informações com aqueles dados e uma alteração de layout não seria interessante.

Nesse caso, apresento uma solução em que, uma listagem numérica disposta aleatóriamente será exibida em outras colunas classificadas em ordem crescente e decrescente, respectivamente.

Digamos que você tenha uma listagem como mostrada na figura abaixo.

0305_p

E queira exibir seus dados classificados em outras duas colunas. Assim:

Para exibir a lista classificada do menor para o maior (ordem crescente), utilize a fórmula, inserindo-a em todas as linhas adjacentes as linhas da coluna B:

=MENOR($B$3:$B$27;LIN()-LIN($C$3)+1)

E para classificar de forma inversa, do maior para o menor (ordem decrescente), digite a fórmula:

=MAIOR($B$3:$B$27;LIN()-LIN($D$3)+1)

O resultado ficará assim:

0305_03_p1

Bem legal né. Um abraço.

MENOR Retorna o menor valor k-ésimo do conjunto de dados. Use esta função para retornar valores com uma posição específica relativa em um conjunto de dados.

Sintaxe

MENOR(matriz;k)

Matriz é uma matriz ou intervalo de dados numéricos cujo menor valor k-ésimo você deseja determinar.

K é a posição (a partir do menor) na matriz ou intervalo de dados a ser fornecido.

Comentários

  • Se matriz estiver vazia, MENOR retornará o valor de erro #NÚM!.
  • Se k ≤ 0 ou k exceder o número de pontos de dados, MENOR retornará o valor de erro #NÚM!.
  • Se n for o número de pontos de dados em matriz, MENOR(matriz;1) será igual ao menor valor, e MENOR(matriz;n) será igual ao maior valor.
MAIOR Retorna o menor valor k-ésimo do conjunto de dados. Use esta função para retornar valores com uma posição específica relativa em um conjunto de dados.

Sintaxe

MAIOR(matriz;k)

Retorna o maior valor k-ésimo de um conjunto de dados. Você pode usar esta função para selecionar um valor de acordo com a sua posição relativa. Por exemplo, você pode usar MAIOR para obter o primeiro, o segundo e o terceiro resultados.

Matriz    é a matriz ou intervalo de dados cujo maior valor k-ésimo você deseja determinar.

K    é a posição (do maior) na matriz ou intervalo de célula de dados a ser fornecida.

Comentários

  • Se a matriz estiver vazia, MAIOR retornará o valor de erro #NÚM!.
  • Se k ≤ 0 ou se k for maior que o número de pontos de dados, MAIOR retornará o valor de erro #NÚM!.

Se n for o número de pontos de dados em um intervalo, MAIOR(matriz;1) retornará o maior valor e MAIOR(matriz;n) retornará o menor valor.

Ref.: http://exceltip.com/st/Sorting_Numbers_in_Ascending_or_Descending_Order/1079.html
Bookmark and Share

20 Comentários

  1. EDUARDO Disse,

    E se houver legendas? por exemplo: meses do ano e valore de vendas… como fazer a coluna do mêss acopanhar a do valor ?

    Reply

    exceldoseujeito Reply:

    Neste caso você deverá usar outro método de classificação, do estilo do comando classificar do menu Dados.

    Abraço.

    Reply

    Comentário feito em julho 14th, 2009 às 16:29

  2. Arnaldo Disse,

    Gostaria de saber como se procede em uma classificação de numeros digitados em uma linha e não em uma coluna , sendo que cada numero digitado em celulas diferente ,exemplo:
    48 46 45 43 42 41 50 44 47 49
    18 16 15 13 12 11 20 14 17 19
    38 37 35 34 33 31 39 32 36 40
    05 03 06 02 01 07 09 10 04 08
    Eu gostaria que á ordem fosse assim:
    01 02 03 04 05 06 07 08 09 10
    11 12 13 14 15 16 17 18 19 20
    31 32 33 34 35 36 37 38 39 40
    41 42 43 44 45 46 47 48 49 50:
    Sera possivél?existe recurço no excel? Obrigado pela atenção .e aguardo resposta no email.

    Reply

    exceldoseujeito Reply:

    Olá Arnaldo,

    Você pode usar a mesma fórmula. No entanto, deve definir, uma a uma, as posições de classificação na matriz. Exemplo:

    Supondo que sua matriz com os números aleatórios esteja em $A$1:$J$4, sua fórmula para o primeiro item ficaria assim:
    =MENOR($A$1:$J$4;1)
    Para o segundo item classificado, assim:
    =MENOR($A$1:$J$4;2)
    Para o décimo-quinto, portanto, já na segunda linha, assim:
    =MENOR($A$1:$J$4;15)

    Entendeu? A matriz será sempre a mesma, mudará apenas a posição de classificação, ok?

    Arnaldo, existem outras maneiras mais automatizadas ainda, porém, demandam um tempinho para desenvolver através de macros. Mas acredito que deste modo já atenda as suas necessidades.
    Abraços

    Reply

    Comentário feito em agosto 8th, 2009 às 2:31

  3. ANTONIO CARLOS Disse,

    OLÁ… BOA NOITE… GOSTARIA DE UMA GRANDE AJUDA SOBRE UMA FORMULA PARA SE TRANSFERIR UNS NÚMEROS DE UM LADO DIGAMOS: LADO 1 E LADO 2, ONDE OS NUMEROS NAO ESTÃO EM ORDEM CRESCENTE POR LINHA… GOSTARIA DE CRIAR LADO 3 E 4 PARA PUXAR DO LADO 1 E LADO 2 SÓ QUE JÁ CAIA NOS LADOS 3 E 4 EM ORDEM CRESCENTE… SE NAO ENTENDEU, POR FAVOR.., MEU E-MAIL É: antoniofloquet@bol.com.br E PASSAREI O ARQUIVO PRA QUE VOCE POSSA FAZER E ME AJUDAR OK??? MUITO OBRIGADO… ANTONIO CARLOS

    Reply

    Reinaldo Coral Reply:

    Cara, a explicação neste artigo já satisfaz a sua necessidade. É só adaptar…
    No exemplo eu fiz com somente uma coluna desordenada…
    Você usa esse modelo para as demais colunas, ok.

    Reply

    Comentário feito em setembro 19th, 2009 às 19:38

  4. ANTONIO CARLOS Disse,

    CARISSIMO SENHOR REINALDO…

    MUITO BOM DIA…
    PEÇO DESCULPA POR ESTÁ BATENDO NA MESMA TECLA O ASSUNTO, NA REALIDADE, EU TENHO UMA PLANILHA DE ‘A ATÉ Q, ONDE PARA CADA LETRA, UM NÚMERO, JÁ POSSUO NESSA PLANILHA DIVIDIDA EM 2 LADOS ONDE JÁ SAEM AS NUMERAÇÕES.., COMO FALEI, ESSA PLANILHA ESTÁ DIVIDIDA EM 2 LADOS… CRIEI MAIS LADO 3 E LADO 4, ONDE O LADO 3 PUXARÁ OS NUMEROS DO LADO 1 E A 4 DO LADO 2…, SÓ QUE, GOSTARIA QUANDO OS LADOS 3 E 4 QUANDO PUXASSE, JA CAISSE EM ORDEM CRESCENTE ENTENDEU??? POR FAVOR, ME AJUDE… SE POSSÍVEL, PASSE A FORMULA OU SEU E-MAIL PARA EU TE PASSAR VIA E-MAIL A PLANILHA… POR FAVOR, ME AJUDE, POIS JÁ TENTEI DIVERSAS VEZES E NAO CONSIGO… UM GRANDE ABRAÇO E BOM DIA… MEU E-MAIL É: antoniofloquet@uol.com.br SE VOCE PODER RESPONDER ENVIANDO POR MEU E-MAIL, EU TE MANDAREI A PLANILHA PRA VOCE VER.. MUITO OBRIGADO..

    Reply

    Comentário feito em setembro 21st, 2009 às 8:05

  5. Ramirez F. Disse,

    Caro Reinaldo,

    Tenho uma planilha que monitora quantas viagens cada veículo realiza em um período de um cliente a outro, porém o que me dificulta é como calcular a quantidade de viagens realizadas por cada veículo aos “Sábados, Domingos e Fora do Horário Comercial(horas extras)”

    OPERAÇÃO DATA DIA SEMANA FROTA MOTORISTA CHEGADA SAIDA Dt STATUS CHEGADA Dt STATUS SAIDA Dt STATUS SAIDA PORT EXTRA
    Renault 01/09/09 Terça 7 ATAMIL 18:40 18:51 0:11 OK 19:20 0:29 OK 20:57 01:37 NOK 21:03 NÃO
    Renault 01/09/09 Terça 7 ATAMIL 21:31 21:47 0:16 OK 22:16 0:29 OK 22:35 00:19 NOK 22:40 NÃO
    Renault 02/09/09 Quarta 3 JOSE DIRCEU 5:56 6:31 0:35 OK 6:58 0:27 OK 7:40 00:42 NOK 07:45 NÃO
    Renault 02/09/09 Quarta 5 ODAIR 13:59 14:52 0:53 NOK 15:21 0:29 OK 15:32 00:11 OK 15:35 NÃO
    Renault 03/09/09 Quinta 6 LUCIANO ROCHA 6:52 7:28 0:36 OK 7:56 0:28 OK 8:18 00:22 NOK 08:23 NÃO
    Renault 03/09/09 Quinta 6 LUCIANO ROCHA 8:50 9:55 1:05 NOK 10:24 0:29 OK 10:41 00:17 NOK 10:46 NÃO
    Renault 03/09/09 Quinta 1 JOAO VARGAS 19:53 20:31 0:38 OK 20:59 0:28 OK 22:33 01:34 NOK 22:39 NÃO
    Renault 13/09/09 Domingo 10 RAMIREZ 0:00 0 0:00 OK 00:00 OK NÃO
    Renault 12/09/09 Sabado 10 RAMIREZ 0:00 0 0:00 OK 00:00 OK NÃO
    Renault 12/09/09 Sabado 10 RAMIREZ 0:00 0 0:00 OK 00:00 OK NÃO

    Reply

    Reinaldo Coral Reply:

    Ramirez,

    Não entendi bem a lógica disposta em sua planilha. De qualquer maneira, não sei se você leu uma artigo publicado aqui sobre calculo entre datas. Talvez possa te ajudar.
    Acesse: http://www.exceldoseujeito.com.br/2008/12/16/calculando-um-intervalo-entre-datas/

    Um abraço

    Reply

    Comentário feito em setembro 23rd, 2009 às 23:33

  6. Elaine Disse,

    Olá eu tb estou com uma duvida…

    Produto 2º-Feira 3ºFeira 4º-Feira 5º-Feira 6º-Feira Total
    trs 2 222 1 3 3 5 234
    trs 1 222 6 7 3 5 243

    Eu precisaria que a linha toda acompanhasse o resultado maior, ou seja preciso de saber qual produto esta sendo o mais vendido na semana

    Reply

    Reinaldo Coral Reply:

    Olá, você pode usar o comando Classificar... no menu Dados.

    Selecione a região onde estão os dados de sua tabela, acesse o menu Dados > Classificar…

    Então, escolha qual coluna deve ser a index, ou seja, a principal classificada…. e todas as outras colunas referentes a linha de registro irão acompanhá-la, respectivamente.

    Abraço.

    Reply

    Comentário feito em novembro 6th, 2009 às 10:42

  7. ricardo paraiso Disse,

    Gostaria de saber como deixar crescente as numeração numa linha somente

    ex: 1 2 3 10 15 14 11 9 8

    para ficar assim:

    ex: 1 2 3 8 9 10 11 14 15

    obrigado

    Reply

    Reinaldo Coral Reply:

    Tenta assim:

    =MENOR($A$1:$I$1;COL()-COL($A$1)+1)

    Supondo que o intervalo com os números desordenados esteja de A1 até I1.

    Abraços

    Reply

    Comentário feito em dezembro 9th, 2009 às 11:54

  8. TIAGO HENRIQUE Disse,

    oi, queria saber como posso classificar uma coluna de números em ordem decrescente, alterando também o nome e outros valores que fazem parte da mesma linda, ou seja, classificar as linhas em ordem decrescente de acordo com apenas um valor pertencente a mesma, mas de coluna diferente. EX: uma relação de aprovados em concurso, com nomes e respectivas notas.

    Reply

    Reinaldo Coral Reply:

    Olá Tiago

    Selecione toda a planilha.
    Vá ao menu Dados > Classificar…
    Na tela que vai aparecer, você poderá classificar sua planilha em até três níveis.
    Exemplo:
    Classificar primeiro por Nome em ordem crescente, seguido por maior nota (ordem decrescente)….

    Entendeu?
    Teste aí, que você verá os resultados.

    Abraço

    Reply

    Comentário feito em janeiro 14th, 2010 às 13:09

  9. Ricardo Disse,

    Olá Tiago,

    Parabéns pelo seu Blog, muito importante o seu conteúdo, me ajuda muito diariamente e tenho certeza que ajuda muitas outras pessoas.

    Gostaria de pedir uma ajuda:
    Preciso classificar alguns números, só que a ordenação será pelo 2 digitos finais, ou seja ao contrário da classificação normal, tem como fazer isso?

    Ex.: (Ordem atual)
    7989079761104
    9780345381361
    9780345381439
    9780345381460
    9780345381477
    9780345381521
    9780345381644

    Resultado da ordenação que eu preciso:

    7989079761104
    9780345381521
    9780345381439
    9780345381644
    9780345381460
    9780345381361
    9780345381477

    Obrigado pela atenção.

    Abraços,

    Ricardo

    Reply

    Reinaldo Coral Reply:

    Ricardo,

    Tente fazer esta manobra:
    Supondo que sua lista original começe em A1.

    1 – Adicione uma nova coluna (B) para incluir uma fórmula que servirá de comparação. Insira a fórmula:
    =VALOR(DIREITA(A1;2) & A1)

    2 – Arraste esta fórmula até a última linha que contenha dados na sua lista original. Neste exemplo até a linha 7.

    3 – Na coluna C (coluna onde será exibida a lista já classificada corretamente), escreva a seguinte fórmula:
    =DIREITA(MENOR($B$1:$B$7;LIN()-LIN($C$1)+1);13)

    4 – Copie-a até a última linha.

    OBS: O número 7 (escrito em $B$7) corresponde a última linha da lista original. E o número 13, ao total de dígitos de seus dados numéricos.

    Espero que resolva.

    Abraço

    Reply

    Comentário feito em janeiro 21st, 2010 às 10:53

  10. Ricardo Disse,

    Ops!

    Por favor, me desculpe a troca dos nomes, Leia-se Reinaldo Coral onde escrevi Tiago

    Abs,

    Reply

    Comentário feito em janeiro 21st, 2010 às 10:55

  11. sales Disse,

    vi essa formula: =MAIOR($B$3:$B$27;LIN()-LIN($D$3)+1) que vc disponibilizou, muito boa mesmo. mas eu tenho: produto na coluna A, valores na coluna B e quero colocar os dados da coluna B em ordem decrescente na coluna D, mas de tal forma que os produtos da coluna A, tambem acompanhe tambem sejam alterados na coluna C:
    A B C D
    carne 5 feijão 10
    feijão 10 carne 5

    é possivel?
    grato

    Reply

    Reinaldo Coral Reply:

    O ideal para resolver esta sua questão seria utilizar o comando Classificar do menu Dados.

    Primeiro selecione toda a área de sua planilha que contenha os dados que deseja classificar.
    Em seguida, acesse o menu Dados > Classificar…
    E selecione a coluna B (preços) – classificação decrescente.

    Pronto. As colunas relacionadas serão reajustadas perfeitamente.

    Abraço

    Reply

    Comentário feito em janeiro 25th, 2010 às 20:19

Deixar um comentário

Get Adobe Flash playerPlugin by wpburn.com wordpress themes