DAXAs medidas-base de qualquer modelo de vendas
Receita Total = SUM( fVendas[Receita] )Custo Total = SUM( fVendas[Custo] )Qtd Vendida = SUM( fVendas[Quantidade] )Qtd Pedidos = DISTINCTCOUNT( fVendas[NumeroPedido] )Qtd Clientes = DISTINCTCOUNT( fVendas[IdCliente] )Linhas de Venda = COUNTROWS( fVendas )Ticket Médio = DIVIDE( [Receita Total], [Qtd Pedidos] )Preço Médio = DIVIDE( [Receita Total], [Qtd Vendida] )Margem Bruta = [Receita Total] - [Custo Total]Margem % = DIVIDE( [Margem Bruta], [Receita Total] )Variáveis: legibilidade e performance
VAR calcula uma vez e guarda o resultado. Além de deixar o código legível, evita recalcular a mesma expressão várias vezes — ganho real de performance em medidas complexas.
DAXAntes e depois
-- Difícil de ler e recalcula tudo três vezesCrescimento Ruim =DIVIDE( SUM(fVendas[Receita]) - CALCULATE(SUM(fVendas[Receita]), SAMEPERIODLASTYEAR(dCalendario[Date])), CALCULATE(SUM(fVendas[Receita]), SAMEPERIODLASTYEAR(dCalendario[Date]))) -- Legível, testável e mais rápidoCrescimento YoY % =VAR Atual = [Receita Total]VAR Anterior = CALCULATE( [Receita Total], SAMEPERIODLASTYEAR( dCalendario[Date] ) )VAR Delta = Atual - AnteriorRETURN IF( NOT ISBLANK( Anterior ), DIVIDE( Delta, Anterior ) )Contagens que você precisa distinguir
| Função | Conta | Cuidado |
|---|---|---|
| COUNT(coluna) | Valores não vazios da coluna | Ignora nulos |
| COUNTA(coluna) | Valores não vazios, inclusive texto | — |
| COUNTROWS(tabela) | Linhas da tabela | Mais rápida e clara que COUNT em uma chave |
| DISTINCTCOUNT(coluna) | Valores distintos | Custosa em colunas de alta cardinalidade |
| COUNTBLANK(coluna) | Valores vazios | Ótima para auditoria de qualidade |
Formatação e organização
- Crie uma tabela vazia chamada '_Medidas' e mova todas as medidas para lá.
- Use pastas de exibição: Base, Comparativos, Metas, Auxiliares.
- Defina o formato na própria medida (Ferramentas de Medida → Formato), não no visual.
- Padronize o nome: substantivo + qualificador. 'Receita LY', 'Receita YTD', 'Receita Meta'.