Vamos aprender, no artigo de hoje, como fazer um rank (ordenamento) dinâmico no Excel. Para isso, vamos abordar algumas funções importantes do Excel: RANK, INDEX e MATCH.
Antes de aprender como implementar, é importante entender quando usar esse ordenamento. Vou dar um exemplo bem simples…
Imagine que você tem a variação diária de uma grande lista de ativos, ou seja, quanto cada ativo está subindo ou caindo durante o dia.
Agora, vamos supor que precisemos sempre indicar as 5 maiores e as 5 menores variações dessa lista. Como fazer isso?
É claro que você pode pegar essa lista e ordená-la manualmente, escolhendo as maiores e as menores variações.
Mas lembre-se que o preço das ações muda a cada segundo, o que inviabiliza esse tipo de trabalho.
É aí que entra o ordenamento dinâmico. Agora, vamos entender as funções necessárias para montar essa ferramenta.
Essa função é bem simples. Você passa o valor que você quer Rankear, a lista que ele se encontra (range) e 0 se você quer o ordenamento do maior para o menor ou 1 se preferir do menor para o maior.
Só tem um problema com essa função: quando há um empate.
Olhe o que acontece nesse caso, ordenando do maior para o menor.
Note como o valor 5 aparece repetido, o Rank 1 (maior valor) consequentemente aparece 2 vezes também. E a posição 2 do Rank não aparece pois o ordenamento pula do 1 para o 3.
No entanto, para certas aplicações, como a desse artigo, é importante ter o ordenamento certo, no caso de 1 a 5.
Então, para resolver esse problema, temos que criar uma coluna auxiliar com valores únicos.
Você pode tentar criar um critério para desempate. Mas o que eu prefiro fazer, é criar uma coluna auxiliar com o valor + um número único bem pequeno.
E é possível fazer isso com a função ROW que retorna a linha atual, dividido por um número bem grande.
Você já deve ter ouvido falar da função VLOOKUP (PROCV em português), uma das funções mais utilizadas no Excel. Se você não faz a mínima ideia do que ela faça, procure um tutorial na internet para aprendê-la.
Olhe esse exemplo,
Como você pegaria o valor que está associado ao “Fundo B”?
A maneira mais rápida é usando o VLOOKUP:
=VLOOKUP(“Fundo B”;$A$1:$B$3;2;FALSE)
No entanto, posso chegar ao mesmo resultado, usando as funções INDEX + MATCH !
=INDEX($B$1:$B$3;MATCH(“Fundo B”;($A$1:$A$3;0))
Mas o por que fazer isso?
VLOOKUP não é tão flexível. Experimente adicionar uma coluna entre a coluna A e a coluna B.
Pior ainda é se você der um “Ctrl + X” na coluna B e trocá-la de lugar com a coluna A.
Portanto, no VLOOKUP, a coluna com os valores de referência deve estar sempre antes da coluna com os valores que você quer que retorne.
Dessa forma, a junção INDEX e MATCH cria um VLOOKUP muito mais flexível!!
Troque a coluna B com a coluna A. Você vai ver que continua funcionando, apenas vai alterar a fórmula para: =INDEX($A$1:$A$3;MATCH(“Fundo B”;$B$1:$B$3;0))
Agora, você está pronto para entender o RANK o dinâmico!!
É só baixar a planilha abaixo, olhar com detalhe as fórmulas e você vai aprender. Teste mudar valores e adicionar novos ativos para observar como se altera o RANK.
Você vai notar uma coluna, “Preço Anterior Ajustado”. Se você não entendeu, dê uma olhada nesse post!
Planilha para Download
0 Comentários
中国 エロwe’re going to validate your concerns and,and let you realize that you know what? We just want you to have a life that is as full as you want it to be.