Skip to content

Lição 5: CALCULATE ​

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

Lição 5 de 12 do tutorial DAX, nível intermediário, cerca de 8 minutos. Objetivo: calcular uma medida com um filtro diferente do filtro da linha.

1. Medida sem filtro ​

Na tabela "Faturamento por UF", crie a medida:

dax
SUM('Vendas'[Faturamento])

Cada linha mostra o faturamento da própria UF. O filtro vem da linha.

2. Medida com CALCULATE ​

Crie a medida "Só SP":

dax
CALCULATE(
    SUM('Vendas'[Faturamento]),
    'Clientes'[UF] = "SP"
)

Todas as linhas mostram o faturamento de SP.

Valores do app de demonstração:

UFFaturamentoSó SP
PR63.574.811,6518.503.356,55
SC29.421.831,7618.503.356,55
SP18.503.356,5518.503.356,55

Como funciona ​

O CALCULATE substitui o filtro de UF da linha (UF = PR) pelo filtro informado (UF = SP). Os demais filtros, como o período do dashboard, são mantidos.

Com KEEPFILTERS, o filtro é adicionado em vez de substituído. Nesse caso a linha do PR fica vazia.

Em SQL ​

SUM(CASE WHEN UF = 'SP' THEN valor END). O CASE avalia a linha da tabela, e o CALCULATE altera o filtro do gráfico. Para condição simples na mesma tabela, o CASE é mais rápido. Com UF nas linhas, o CASE deixa as outras UFs vazias, e por isso não equivale ao CALCULATE nesse caso.

Exercício ​

Crie a medida "Faturamento sobre SP": faturamento da linha dividido pelo faturamento de SP. Use DIVIDE para tratar divisor zero.

Mostrar resposta
dax
DIVIDE(
    SUM('Vendas'[Faturamento]),
    CALCULATE(SUM('Vendas'[Faturamento]), 'Clientes'[UF] = "SP")
)

Próximos passos ​