Como classificar uma tabela sem usar macros do Excel

Imagem
Uma facilidade interessante do Excel é a classificação de tabelas. O Excel permite que tabelas sejam classificadas com várias colunas. Basta marcar a faixa de dados a ser classificada (todas as colunas e todas as linhas) e clicar no ícone CLASSIFICAR na aba Dados. Escolhe-se quais colunas serão utilizadas para classificar e em que ordem (ascendente ou decrescente). Pronto.Agora suponha que queiramos classificar uma tabela usando como argumento uma coluna calculada. Suponha que a cada novo cálculo, queiramos reclassificar a tabela. Fica chato repetir todo o processo acima manualmente a cada nova entrada de dados na tabela. Uma macro pode resolver isso, automatizando o processo. Mas dá para fazer sem macro ? Sim !!

Para classificar uma tabela automaticamente, tudo que temos que fazer é usar a função ORDEM() do Excel.

Essa função recebe os seguintes argumentos
=ordem( número ; coluna ; ascendente_ou_descendente )

número é o valor, dentro da coluna pela qual iremos classificar.

coluna é a faixa (range) de células que contém os valores.

ascendente_ou_descendente é um valor lógico ( falso ou verdadeiro, 0 ou 1) que indica se vai ser em ordem ascendente (1 ou verdadeiro) ou descendente (0 ou falso).

A função vai retornar a “classificação” do número na tabela. Vamos dar um exemplo.

Suponha a seguinte tabela de notas num campeonato de surf.
A…………………… B
Surfista……………. Nota
Joca……………….. 7
Badu……………….. 6
Manso……………… 8
Panela……………… 9
Redondo…………… 4
Peru……………….. 3
Cacetão……………. 5

Para obter a classificação de Joca, a fórmula seria
=ordem( b2 ; $b$2:$b$8; 0 )
No caso, vai dar 3, ou seja, Joca foi o 3º colocado na competição.
Se colocarmos essa fórmula em C2 e copiarmos para c3:c8 vamos ter a classificação de cada competidor.

Legal ! temos a classificação de cada competidor mas eles ainda estão listados fora de ordem. Como fazer para colocá-los do primeiro para o último colocado com o primeiro no topo ?

Para fazer isso, temos que exibir os competidores em outro local na ordem desejada. Nenhuma fórmula do excel é capaz de mudar o conteúdo de posição. Só macros fazem isso. O que podemos fazer é escolher quais entre os valores possíveis será o exibido numa célula. Isso significa que não dá para exibir a tabela de concorrentes e depois mudar a ordem nela mesma só com fórmulas. Vamos exibir em outro local então.

Sendo assim, imagine que em outro lugar da planilha, vamos colocar a “Classificação” do campeonato. Que tal a partir de F2 ?? De F2 até F8, na ordem de primeiro para último (ou seja, descendente de notas obtidas). Aí usamos a função CORRESP() e índice()
Em F2 vamos colocar 1, em f3 2, f4 3, f5 4 e assim por diante até f8 ter 7, que é a última colocação nesse campeonato.

Qual o concorrente que ficou em 1º lugar ?? Ora, é só buscar na tabela de classificação o 1. Para saber em que célula da lista de concorrentes está o que ficou em 1º lugar, basta localizar na coluna C2:C8 onde está o 1. Isso a gente faz com Corresp() assim e vamos colocar em G2

=corresp( f2 ; $C$2:$c$8 ; 0 )

Como funciona função corresp() ? Ela funciona de forma muito semelhante a função procv() só que ela só retorna o número da linha que correspondeu ao código procurado. No caso o que está em F2 que é a posição no ranking. Nesse exemplo, vai retornar 4. Ou seja, o concorrente que obteve a pontuação máxima está na linha 4 da tabela. Copiamos então essa fórmula para G3:G8 e teremos as posições do primeiro até o último colocado. Mas não queremos a posição !! Queremos o nome do cara ! Aí que entra a função ÍNDICE() que nada mais faz do que pegar o n-ésimo elemento de uma matriz.

EM h2 então colocamos a seguinte fórmula

=índice( $a$2:$a$8 ; G2 )
Copiamos essa fórmula para h3:h8 e teremos os nomes dos concorrentes.

QUer a nota ao lado ? É só usar a função índice() novamente só que com a coluna das notas B2:B8.

Aqui tem uma planilha com as fórmulas já prontas para vocês experimentarem

 
Anúncios