50 Exemplos de Medidas DAX
1. Contar o número total de linhas em uma tabela
TotalRows = COUNTROWS('Tabela')
Essa medida retorna o número total de linhas na tabela especificada.
2. Contar o número de ocorrências em uma coluna
CountOccurrences = COUNT('Tabela'[Coluna])
Aqui, a medida conta o número de valores em uma coluna específica.
3. Contar valores distintos em uma coluna
DistinctValues = DISTINCTCOUNT('Tabela'[Coluna])
Conta quantos valores únicos existem em uma coluna.
4. Somar valores de uma coluna numérica
TotalSales = SUM('Vendas'[ValorVenda])
Essa medida soma todos os valores da coluna ValorVenda.
5. Média de valores em uma coluna
AverageSales = AVERAGE('Vendas'[ValorVenda])
Calcula a média dos valores de venda.
6. Máximo valor de uma coluna
MaxSales = MAX('Vendas'[ValorVenda])
Obtém o valor máximo da coluna ValorVenda.
7. Mínimo valor de uma coluna
MinSales = MIN('Vendas'[ValorVenda])
Obtém o valor mínimo da coluna.
8. Somar valores com uma condição (filtrar valores maiores que 350)
SumAbove350 = CALCULATE(SUM('Vendas'[ValorVenda]), 'Vendas'[ValorVenda] > 350)
Soma apenas os valores de venda acima de 350.
9. Contar linhas com base em uma condição
CountAbove350 = CALCULATE(COUNTROWS('Vendas'), 'Vendas'[ValorVenda] > 350)
Conta quantas vendas têm valores acima de 350.
10. Contar valores com condição específica
CountSpecificCategory = CALCULATE(COUNTROWS('Vendas'), 'Vendas'[Categoria] = "Eletrônicos")
Conta o número de vendas na categoria “Eletrônicos”.
11. Filtrar e contar valores acima de 350 e na categoria específica
CountEletronicosAbove350 = CALCULATE(COUNTROWS('Vendas'), 'Vendas'[ValorVenda] > 350, 'Vendas'[Categoria] = "Eletrônicos")
Filtra para contar as vendas de eletrônicos acima de 350.
12. Filtrar com duas condições (vendas entre 350 e 1000)
SalesBetween350And1000 = CALCULATE(SUM('Vendas'[ValorVenda]), 'Vendas'[ValorVenda] > 350, 'Vendas'[ValorVenda] <= 1000)
Soma os valores de venda entre 350 e 1000.
13. Percentual de vendas sobre o total
PercentOfTotal = DIVIDE(SUM('Vendas'[ValorVenda]), CALCULATE(SUM('Vendas'[ValorVenda]), ALL('Vendas')), 0)
Calcula a porcentagem de cada venda em relação ao total.
14. Vendas acumuladas (running total)
RunningTotal = CALCULATE(SUM('Vendas'[ValorVenda]), FILTER(ALL('Vendas'), 'Vendas'[Data] <= MAX('Vendas'[Data])))
Acumula as vendas ao longo do tempo.
15. Média ponderada
WeightedAverage = SUMX('Vendas', 'Vendas'[ValorVenda] * 'Vendas'[Peso]) / SUM('Vendas'[Peso])
Calcula a média ponderada das vendas com base em pesos.
16. Diferença entre valores
SalesDifference = SUM('Vendas'[ValorVenda]) - SUM('Vendas'[Custo])
Calcula a diferença entre o valor de venda e o custo.
17. Taxa de crescimento entre dois anos
GrowthRate = DIVIDE(SUM('Vendas'[ValorVenda]) - CALCULATE(SUM('Vendas'[ValorVenda]), PREVIOUSYEAR('Vendas'[Data])), CALCULATE(SUM('Vendas'[ValorVenda]), PREVIOUSYEAR('Vendas'[Data])), 0)
Calcula a taxa de crescimento de vendas ano a ano.
18. Mediana de valores de uma coluna
MedianSales = MEDIAN('Vendas'[ValorVenda])
Calcula a mediana das vendas.
19. Contar valores não vazios
CountNotBlank = COUNTA('Vendas'[ValorVenda])
Conta quantos valores não vazios existem na coluna ValorVenda.
20. Somar valores apenas em um mês específico
SalesInJanuary = CALCULATE(SUM('Vendas'[ValorVenda]), MONTH('Vendas'[Data]) = 1)
Soma as vendas feitas em janeiro.
21. Soma com múltiplas condições (filtrando categorias e datas)
SumFiltered = CALCULATE(SUM('Vendas'[ValorVenda]), 'Vendas'[Categoria] = "Eletrônicos", YEAR('Vendas'[Data]) = 2024)
Soma as vendas de eletrônicos em 2024.
22. Soma com condição e remover contexto de filtro
SumAllCategories = CALCULATE(SUM('Vendas'[ValorVenda]), ALL('Vendas'[Categoria]))
Remove o filtro de categoria para somar as vendas em todas as categorias.
23. Média de vendas excluindo zeros
AverageExcludingZeros = CALCULATE(AVERAGE('Vendas'[ValorVenda]), 'Vendas'[ValorVenda] <> 0)
Calcula a média das vendas ignorando valores iguais a zero.
24. Calcular desconto baseado em uma porcentagem fixa
DiscountedSales = SUMX('Vendas', 'Vendas'[ValorVenda] * 0.9)
Aplica um desconto de 10% em todas as vendas.
25. Média móvel (moving average) de 3 meses
MovingAverage3Months = AVERAGEX(DATESINPERIOD('Calendario'[Data], MAX('Calendario'[Data]), -3, MONTH), [TotalSales])
Calcula a média móvel de vendas dos últimos 3 meses.
26. Contar o número de meses com vendas acima de 350
MonthsAbove350 = CALCULATE(DISTINCTCOUNT('Vendas'[Mês]), 'Vendas'[ValorVenda] > 350)
Conta o número de meses em que as vendas ultrapassaram 350.
27. Filtrar para vendas de clientes VIPs (com uma tabela relacionada)
VIPSales = CALCULATE(SUM('Vendas'[ValorVenda]), RELATED('Clientes'[Status]) = "VIP")
Filtra para somar apenas as vendas de clientes VIP.
28. Soma condicional com OR (ou)
SalesAboveOrCategory = CALCULATE(SUM('Vendas'[ValorVenda]), 'Vendas'[ValorVenda] > 350 || 'Vendas'[Categoria] = "Eletrônicos")
Soma as vendas que são acima de 350 ou pertencem à categoria “Eletrônicos”.
Claro! Vou continuar de onde paramos e fornecer os 50 exemplos completos de medidas DAX no Power BI, cobrindo diversas situações práticas.
Aqui estão os exemplos 29 a 50, continuando com cálculos, filtros e cenários mais avançados:
29. Valor total de vendas apenas para o último ano disponível
SalesLastYear = CALCULATE(SUM('Vendas'[ValorVenda]), YEAR('Vendas'[Data]) = YEAR(TODAY()) - 1)
Calcula o valor total de vendas no último ano (ano anterior ao atual).
30. Taxa de variação percentual entre dois meses consecutivos
MonthlyGrowthRate = DIVIDE([SalesThisMonth] - [SalesPreviousMonth], [SalesPreviousMonth], 0)
Calcula a taxa de variação percentual entre as vendas do mês atual e o mês anterior. Você precisa de duas medidas previamente definidas: SalesThisMonth e SalesPreviousMonth.
31. Média ponderada de vendas por quantidade
WeightedAverageSales = DIVIDE(SUMX('Vendas', 'Vendas'[ValorVenda] * 'Vendas'[Quantidade]), SUM('Vendas'[Quantidade]))
Calcula a média ponderada de vendas levando em conta as quantidades vendidas.
32. Somar valores de uma coluna, excluindo os 10% maiores valores
SumExcludingTop10Percent = CALCULATE(SUM('Vendas'[ValorVenda]), 'Vendas'[ValorVenda] <= PERCENTILEX.INC('Vendas', 'Vendas'[ValorVenda], 0.9))
Soma os valores de venda excluindo os 10% mais altos.
33. Contar vendas feitas nos finais de semana
CountWeekendSales = CALCULATE(COUNTROWS('Vendas'), WEEKDAY('Vendas'[Data], 2) > 5)
Conta quantas vendas foram realizadas nos finais de semana.
34. Contar vendas em dias úteis
CountWeekdaySales = CALCULATE(COUNTROWS('Vendas'), WEEKDAY('Vendas'[Data], 2) <= 5)
Conta quantas vendas foram realizadas durante os dias úteis.
35. Somar as vendas apenas para clientes com compras acima de R$1000
SumLargeClientsSales = CALCULATE(SUM('Vendas'[ValorVenda]), 'Vendas'[ValorVenda] > 1000)
Soma o valor das vendas feitas a clientes que gastaram mais de R$1000 em uma compra.
36. Somar vendas excluindo zeros
SumExcludingZeros = CALCULATE(SUM('Vendas'[ValorVenda]), 'Vendas'[ValorVenda] <> 0)
Soma os valores de vendas, excluindo as que têm valor zero.
37. Contar quantos dias com vendas
DaysWithSales = DISTINCTCOUNT('Vendas'[Data])
Conta quantos dias tiveram vendas registradas (conta única das datas de vendas).
38. Contagem de vendas por faixa de valor (entre R$100 e R$500)
CountSalesInRange = CALCULATE(COUNTROWS('Vendas'), 'Vendas'[ValorVenda] >= 100, 'Vendas'[ValorVenda] <= 500)
Conta quantas vendas tiveram um valor entre R$100 e R$500.
39. Vendas acumuladas até uma data específica
CumulativeSalesUntilDate = CALCULATE(SUM('Vendas'[ValorVenda]), FILTER(ALL('Vendas'[Data]), 'Vendas'[Data] <= MAX('Vendas'[Data])))
Calcula o total acumulado de vendas até uma data específica.
40. Soma das vendas acima de 350 para categorias específicas
SumSalesAbove350InCategories = CALCULATE(SUM('Vendas'[ValorVenda]), 'Vendas'[ValorVenda] > 350, 'Vendas'[Categoria] IN {"Eletrônicos", "Móveis"})
Soma as vendas acima de R$350 apenas para as categorias “Eletrônicos” e “Móveis”.
41. Média das vendas filtrando por região
AverageSalesByRegion = CALCULATE(AVERAGE('Vendas'[ValorVenda]), 'Vendas'[Região] = "Sul")
Calcula a média das vendas apenas para a região “Sul”.
42. Vendas acumuladas por mês no ano atual
CumulativeSalesCurrentYear = CALCULATE(SUM('Vendas'[ValorVenda]), FILTER(ALL('Vendas'[Data]), YEAR('Vendas'[Data]) = YEAR(TODAY()) && 'Vendas'[Data] <= MAX('Vendas'[Data])))
Calcula as vendas acumuladas por mês no ano atual.
43. Soma de vendas, ignorando o contexto de filtros
TotalSalesIgnoringFilters = CALCULATE(SUM('Vendas'[ValorVenda]), ALL('Vendas'))
Soma as vendas, ignorando qualquer filtro aplicado.
44. Percentual de vendas de um produto sobre o total de vendas
ProductSalesPercentage = DIVIDE(SUM('Vendas'[ValorVenda]), CALCULATE(SUM('Vendas'[ValorVenda]), ALL('Vendas')), 0)
Calcula a porcentagem de vendas de um produto em relação ao total de vendas.
45. Número de clientes únicos que fizeram compras
UniqueCustomers = DISTINCTCOUNT('Vendas'[ClienteID])
Conta quantos clientes únicos fizeram compras.
46. Número de produtos vendidos em uma categoria específica
ProductsSoldInCategory = CALCULATE(DISTINCTCOUNT('Vendas'[ProdutoID]), 'Vendas'[Categoria] = "Eletrônicos")
Conta quantos produtos únicos foram vendidos na categoria “Eletrônicos”.
47. Soma das vendas para os últimos 3 meses
SalesLast3Months = CALCULATE(SUM('Vendas'[ValorVenda]), DATESINPERIOD('Vendas'[Data], MAX('Vendas'[Data]), -3, MONTH))
Soma o valor das vendas feitas nos últimos 3 meses.
48. Soma das vendas para clientes específicos
SalesForSpecificCustomers = CALCULATE(SUM('Vendas'[ValorVenda]), 'Vendas'[ClienteID] IN {1, 2, 3})
Soma as vendas feitas apenas para clientes com os IDs 1, 2 e 3.
49. Diferença entre o total de vendas deste ano e do ano passado
SalesDifferenceYearOverYear = SUM('Vendas'[ValorVenda]) - CALCULATE(SUM('Vendas'[ValorVenda]), PREVIOUSYEAR('Vendas'[Data]))
Calcula a diferença entre o total de vendas deste ano e o total do ano passado.
50. Média das vendas com base em um filtro dinâmico
AverageSalesWithDynamicFilter = CALCULATE(AVERAGE('Vendas'[ValorVenda]), 'Vendas'[ValorVenda] > SELECTEDVALUE('Vendas'[FiltroDinamico]))
Calcula a média das vendas, aplicando um filtro dinâmico com base em um valor selecionado no relatório.
O filtro dinâmico na última fórmula (exemplo 50) do Power BI permite que você altere os critérios de filtragem de uma medida com base em um valor selecionado em um slicer ou outra interação no relatório. A ideia é que o usuário pode selecionar um valor específico, e esse valor será usado como critério de filtragem nas medidas.
Exemplo da Fórmula com Filtro Dinâmico
A fórmula que utilizamos foi:
AverageSalesWithDynamicFilter =
CALCULATE(
AVERAGE('Vendas'[ValorVenda]),
'Vendas'[ValorVenda] > SELECTEDVALUE('Vendas'[FiltroDinamico])
)
Explicação
SELECTEDVALUE('Vendas'[FiltroDinamico]):
- A função
SELECTEDVALUEretorna o valor atualmente selecionado pelo usuário em um slicer (ou outro campo dinâmico) no campo'Vendas'[FiltroDinamico]. - Se houver apenas um valor selecionado, ele é retornado. Caso contrário (se houver múltiplos valores ou nenhum valor selecionado), a função pode retornar
BLANK()ou um valor padrão, se definido.
'Vendas'[ValorVenda] > SELECTEDVALUE('Vendas'[FiltroDinamico]):
- Essa condição cria um filtro dinâmico: as vendas (
'Vendas'[ValorVenda]) são filtradas para incluir apenas os valores acima do valor selecionado no slicer. O usuário escolhe um valor no campo'FiltroDinamico', e a medida será recalculada com base na seleção.
CALCULATE:
- A função
CALCULATEpermite modificar o contexto de uma medida. Nesse caso, estamos alterando o contexto da medida de média (AVERAGE) para considerar apenas as vendas que atendem à condição definida pelo filtro dinâmico ('Vendas'[ValorVenda] > SELECTEDVALUE('Vendas'[FiltroDinamico])).
Como Configurar no Relatório
Para que essa fórmula funcione corretamente, você precisa adicionar um slicer no seu relatório que permita a seleção do valor de filtragem. Aqui está como configurar:
- Criar uma tabela de parâmetros (ou campo de valores):
- Pode ser uma tabela estática ou uma coluna existente na sua tabela de vendas que contenha os valores que serão usados como filtro. Por exemplo, uma coluna que tenha valores de limite para filtrar as vendas.
- Adicionar um slicer ao relatório:
- Coloque a coluna
'FiltroDinamico'no slicer para que o usuário possa selecionar um valor específico. Esse valor será então utilizado na medida para filtrar as vendas.
- A medida será recalculada dinamicamente:
- Cada vez que o usuário mudar a seleção no slicer, a medida
AverageSalesWithDynamicFilterserá recalculada para refletir apenas as vendas que atendem à nova condição (vendas acima do valor selecionado).
Exemplo Visual
Imagine que você tem um slicer com os valores:
- 100
- 200
- 300
- 400
Se o usuário selecionar “300” no slicer, a fórmula irá calcular a média de todas as vendas cujo valor seja superior a 300. Se ele mudar para “200”, a média será recalculada considerando apenas as vendas acima de 200.
Aplicação do Filtro Dinâmico
Essa abordagem é muito útil quando você quer permitir que os usuários interajam com o relatório, filtrando os dados de acordo com suas necessidades diretamente no visual, sem necessidade de alterar fórmulas ou criar várias medidas.
Esses 50 exemplos cobrem uma ampla gama de funcionalidades e técnicas de DAX no Power BI, como contagem de linhas, somas condicionais, filtros avançados, cálculos percentuais, e muito mais.

Leave a comment