Buscar K
Aparência
Aparência
Lição 9 de 12 do tutorial DAX, nível avançado, cerca de 10 minutos. Objetivo: calcular uma conta em cada linha de uma tabela e juntar o resultado.
A tabela Vendas tem quantidade e preço, e não tem o total da venda. Crie a medida:
SUMX('Vendas', 'Vendas'[Qtd] * 'Vendas'[Preço])O SUMX multiplica quantidade por preço em cada venda e soma os resultados.
Numa tabela com UF nas linhas, crie a medida:
AVERAGEX(
VALUES('Clientes'[Cliente]),
CALCULATE(SUM('Vendas'[Faturamento]))
)Cada UF mostra a média do faturamento dos seus clientes. A média por venda daria outro número.
Valores do app de demonstração:
| UF | Faturamento | Média por cliente |
|---|---|---|
| PR | 63.574.811,65 | 1.352.655,57 |
| SC | 29.421.831,76 | 1.401.039,61 |
| SP | 18.503.356,55 | 1.541.946,38 |
O iterador percorre a tabela do primeiro argumento, calcula a expressão em cada linha e junta: SUMX soma, AVERAGEX faz a média, MAXX pega o maior.
Sobre a tabela de vendas, a expressão usa só colunas. Para usar uma medida, o iterador percorre VALUES de uma coluna, como VALUES('Clientes'[Cliente]).
No corpo do iterador, o agregado vai num CALCULATE. Sem ele, a medida é recusada.
SUM(qtd * preco). A conta dentro do SUM já roda em cada linha. A média por cliente pede uma subconsulta agrupada por cliente.
Crie a medida "Maior cliente", com o maior faturamento entre os clientes de cada linha.
MAXX(
VALUES('Clientes'[Cliente]),
CALCULATE(SUM('Vendas'[Faturamento]))
)