Skip to content

Lição 8: Ranking ​

Tipo
Tutorial
Para
Analista
Na tela
DataViz › Aplicação › Editar › Expressões
Liberação
Em beta

Lição 8 de 12 do tutorial DAX, nível intermediário, cerca de 8 minutos. Objetivo: numerar as linhas do gráfico pela ordem de um valor.

1. Posição ​

Numa tabela com Cliente nas linhas, crie a medida:

dax
RANKX(
    ALLSELECTED('Clientes'[Cliente]),
    SUM('Vendas'[Faturamento])
)

O cliente de maior faturamento fica em 1. Empate recebe a mesma posição, e a seguinte é pulada.

Valores do app de demonstração:

ClienteFaturamentoPosição
Restaurante Central6.709.585,061
Restaurante Aurora6.240.072,592
Padaria Estrela5.970.014,593
Atacarejo Real5.695.812,534
Panificadora Bandeirante5.285.994,905

2. Acumulado na ordem ​

Numa tabela com a coluna Data do Calendário nas linhas, agrupada por mês:

dax
CALCULATE(
    SUM('Vendas'[Faturamento]),
    WINDOW(1, ABS, 0, REL, ORDERBY('Calendário'[Data]))
)

Cada mês soma do primeiro mês da tabela até ele.

Valores do app de demonstração:

MêsFaturamentoAcumulado
2025-013.669.264,973.669.264,97
2025-023.607.341,007.276.605,97
2025-033.963.213,8911.239.819,86
2025-044.268.354,2715.508.174,13
2025-054.378.399,1219.886.573,25

Como funciona ​

RANKX percorre a lista do primeiro argumento e compara o valor de cada item. A lista tem a coluna das linhas do gráfico.

Cliente sem faturamento no período conta como 0. Em ordem decrescente, fica abaixo de todo cliente com valor positivo.

WINDOW(1, ABS, 0, REL, ...) vai da primeira linha (1, ABS) até a linha atual (0, REL). -2, REL, 0, REL pega as três últimas.

Para ranking dentro de cada UF, a função é RANK com PARTITIONBY.

Em SQL ​

RANK() OVER (ORDER BY SUM(valor) DESC) e SUM(SUM(valor)) OVER (ORDER BY MIN(data)). O RANK() OVER não mostra o cliente sem faturamento.

Exercício ​

Crie a medida "Posição sem salto": ranking em que o empate não pula a posição seguinte.

Mostrar resposta
dax
RANKX(
    ALLSELECTED('Clientes'[Cliente]),
    SUM('Vendas'[Faturamento]),
    ,
    DESC,
    DENSE
)

Próximos passos ​