Buscar K
Aparência
Aparência
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.
Numa tabela com Cliente nas linhas, crie a medida:
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:
| Cliente | Faturamento | Posição |
|---|---|---|
| Restaurante Central | 6.709.585,06 | 1 |
| Restaurante Aurora | 6.240.072,59 | 2 |
| Padaria Estrela | 5.970.014,59 | 3 |
| Atacarejo Real | 5.695.812,53 | 4 |
| Panificadora Bandeirante | 5.285.994,90 | 5 |
Numa tabela com a coluna Data do Calendário nas linhas, agrupada por mês:
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ês | Faturamento | Acumulado |
|---|---|---|
| 2025-01 | 3.669.264,97 | 3.669.264,97 |
| 2025-02 | 3.607.341,00 | 7.276.605,97 |
| 2025-03 | 3.963.213,89 | 11.239.819,86 |
| 2025-04 | 4.268.354,27 | 15.508.174,13 |
| 2025-05 | 4.378.399,12 | 19.886.573,25 |
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.
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.
Crie a medida "Posição sem salto": ranking em que o empate não pula a posição seguinte.
RANKX(
ALLSELECTED('Clientes'[Cliente]),
SUM('Vendas'[Faturamento]),
,
DESC,
DENSE
)