Compreendendo a função RANKX e as suas aplicações
- #Power BI
· Senários de Aplicação/Tipos de Análises
Em grandes redes de supermercados ou até mesmo empresas que possuem muitas filiais, é primordial entender a posição de determinados produtos para decidir se vale a pena continuar direcionando esforços, recursos ou até mesmo determinar ações para melhorar o desempenho daquele que se apresenta no final do ranking.
Com esta função, conseguimos aprimorar as nossas análises aplicando a vendas de produtos, lojas, regiões, desempenho de funcionários que atingem a meta, dentre outros.
· Compreendendo a Sintaxe da Linguagem
Para darmos os primeiros passos, é necessário compreendermos a sintaxe da função, bem como os parâmetros que ela precisa receber para funcionar corretamente. Para isso, vamos utilizar a base fornecida pelo próprio desenvolver, a Microsoft.
RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])
Onde:
Table: É a tabela que você deseja realizar a ordenação do ranking, exemplo, tabela de produtos.
Expression: Medida que contem os valores brutos que queremos análise, exemplo, total faturado.
Value: (opcional) Aqui conseguimos parametrizar um valor específico para ranquear, caso não necessite usar a expressão para todas as linhas da tabela.
Order: (Opcional) Aqui configuramos o tipo de ordenação, por ser opcional, ele assumirá o padrão que é crescente, mas caso queira mudar o comportamento, adota-se 0 para DESC ou 1 para ASC.
Ties: (opcional) Por fim, conseguimos configurar como lidar com valores “empatados”, onde adotamos skip para receberem a mesma classificação e a classificação seguinte pula quantidade de empates ou Dense onde recebe a mesma classificação, mas a seguinte não pula os empates.
· Aplicando a Função em um Dataset
Agora é mão na massa! Utilizei um dataset que usei recentemente para fazer umas análises. Gostaria de analisar a posição de cada produto que essa loja tem em seu portfólio. Na foto a seguir, após incluir os parâmetros obrigatórios, abaixo o resultado:
RankingProd1 = RANKX((Produtos),[Faturamento])
É possível identificar que algo não está certo, afinal todos os produtos ficaram na posição 1.
Eu trouxe este contexto, pois na vida real, é realmente assim que acontece. Em quase todas as situações, será necessário irmos mais a fundo na documentação para entender como a linguagem realmente funciona.
Consultando a nossa amiga “documentação” literalmente no rodapé desta sessão, encontrei o seguinte exemplo:
= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount]))
Mas por que esse ALL ?
O parâmetro expression avalia individualmente linha por linha, ou seja, ele vai considerar cada produto comparando individualmente o faturamento com ele mesmo. A função ALL faz com que ele olhe para todos os produtos da minha tabela e faça a comparação como deve ser feita.
Abaixo o resultado após a aplicação correta da sintaxe.
RankingProd2 = RANKX(ALL(Produtos),[Faturamento])
· Conclusão
Com este artigo concluímos que o uso desta função facilita a visualização dos dados, possibilitando uma tomada de decisão rápida e assertiva.
· Documentação
Acesso em 26/06/2024: https://learn.microsoft.com/pt-br/dax/rankx-function-dax