«

»

abr 01 2015

Ordenação de Dados e Ranking

Neste post veremos uma das maneiras de ordenar de forma crescente e
decrescente uma lista de valores, porém precisaremos tratar os valores
repetidos que poderão surgir na lista. A partir desta lista ordenada, você
poderá fazer um ranking com o número de linhas adequadas para sua solução.

Iniciaremos com uma lista contendo descrição e valores para a ordenação.

Etapa 0:
Na lista contendo descrição e valores, crie uma coluna contendo um valor sequencial iniciando do 1. Veja a figura da Etapa 1.

Etapa 1:
Criaremos uma coluna contendo um valor sequencial para apoiar a ordenação
dos valores e o tratamento dos valores repetidos.
Utilize a função ORDEM para identificar a ordem em que o valor ocupa na lista.
-> ORDEM(valor; matriz; [ordem])

No caso abaixo, o valor procurado é o -2 no intervalo de D3 a D10. Ao
replicar esta função para as outras linhas, fixe apenas o intervalo para
que a célula requerida seja flutuante.
OBS: A ordem é uma opção, porém é interessante selecionar uma delas. No
caso abaixo, foi selecionada ordem crescente.

pic29959

pic32628
Etapa 2:
Na etapa 2, precisaremos tratar os valores repetidos.

Na coluna G faremos o tratamento e utilizaremos a função CONT.SE para isso.
-> CONT.SE(matriz, valor)

pic21228

Deve ser selecionado, como primeiro parâmetro, o array onde encontraremos
os valores repetidos, sendo que precisaremos deixar o primeiro valor do
array fixo e o último flutuante. Nesta função faremos os testes de acordo
com a coluna F apenas. No outro parâmetro, necessário na função, será o valor
que queremos procurar e subtrairemos 1 para haja a ordenação correta.
Ou seja, ao procurar uma valor, se este não tiver valores repetidos, o
valor retornado será 1, caso contrário o valor somado a 1.

OBS: Caso o valor retornado seja 1, o valor no somatório será 2 e assim sucessivamente.

Exemplo:
A linha D4 tem mais 2 valores iguais e precisaremos dar uma posição para
cada um deles.
O valor 5, nas células D3 a D4, não tem valor repetido e por isso retornará
1 (subtrairemos 1 mais adiante e por isso o valor 0).
O valor 5, nas células D3 a D8, tem um valor repetido e por isso o
resultado é 2 (subtrairemos 1 mais adiante e por isso o valor 1).
O valor 5, nas células D3 a D9, tem 2 valores repetidos e por isso o
resultado é 3 (subtrairemos 1 mais adiante e por isso o valor 2).

Após fazer isso para todas as linhas, precisaremos subtrair 1 para que os
valores possam se ajustar no passo seguinte.

pic22139

Etapa 3:
Após identificar os valores repetidos e subtrair de 1, precisaremos somar
esta coluna (G) com a coluna de ordenação (F) para identificar a verdadeira
ordenação sem repetição.

pic27580

Etapa 4:
Nesta etapa faremos a ordenação do menor para o maior e para isso
utilizaremos a ordem sequencial numérica que fizemos na coluna B.
Faremos o uso da função CORRESP para identificar o valor requerido na lista
a partir do sequencial numérico.
-> CORRESP(valor; matriz; [tipo de correspondência])

pic21778

O tipo de correspondência é importante para identificar os valores de forma
exata ou não.  Neste caso, selecione a correspondência exata.

pic32471
A partir da coluna I, podemos fazer um PROCV para extrair a descrição e valor em ordem crescente ou decrescente.
->procv(I3;B3:D10;2;FALSO)

Sobre o autor

Gustavo Faro

http://br.linkedin.com/in/gustavofaro

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *