Módulo 8: DAX intermediário: filtros, relações e ranking

Aula 3 de 4

RANKX, TOPN e análise de concentração

Rankings que funcionam também na linha de total — e a curva ABC.

19 minutos de leitura


DAXRANKX básico
Ranking Produto =RANKX(    ALL( dProduto[Produto] ),   -- universo do ranking    [Receita Total],            -- expressão avaliada para cada item    ,                           -- valor (opcional)    DESC,                       -- ordem    DENSE                       -- empates ocupam a mesma posição, sem pular)
DAXRanking seguro
Ranking Produto =IF(    ISINSCOPE( dProduto[Produto] ),    RANKX( ALL( dProduto[Produto] ), [Receita Total], , DESC, DENSE ))
DAXRanking dentro da categoria
Ranking na Categoria =IF(    ISINSCOPE( dProduto[Produto] ),    RANKX(        ALLEXCEPT( dProduto, dProduto[Categoria] ),        [Receita Total], , DESC, DENSE    ))
DAXRanking que respeita as segmentações do usuário
Ranking Visível =IF(    ISINSCOPE( dProduto[Produto] ),    RANKX( ALLSELECTED( dProduto[Produto] ), [Receita Total], , DESC, DENSE ))

TOPN e o agrupamento 'Outros'

DAXReceita dos 10 maiores clientes
Receita Top 10 Clientes =CALCULATE(    [Receita Total],    TOPN( 10, ALL( dCliente[Cliente] ), [Receita Total], DESC )) Receita Demais Clientes =CALCULATE( [Receita Total], ALL( dCliente[Cliente] ) ) - [Receita Top 10 Clientes]

Curva ABC (Pareto)

DAXParticipação acumulada e classificação ABC
Receita Acumulada Produtos =VAR ReceitaAtual = [Receita Total]VAR TabelaProdutos =    ADDCOLUMNS( ALLSELECTED( dProduto[Produto] ), "@Receita", [Receita Total] )RETURNSUMX(    FILTER( TabelaProdutos, [@Receita] >= ReceitaAtual ),    [@Receita]) % Acumulado =DIVIDE(    [Receita Acumulada Produtos],    CALCULATE( [Receita Total], ALLSELECTED( dProduto[Produto] ) )) Classe ABC =VAR Acum = [% Acumulado]RETURNSWITCH( TRUE(),    Acum <= 0.80, "A",    Acum <= 0.95, "B",    "C")

Exercício prático

Monte uma tabela de produtos com Receita, Ranking, % Acumulado e Classe ABC. Ordene por receita decrescente e identifique quantos produtos formam a classe A.