Buscar K
Aparência
Aparência
Fórmulas DAX por tarefa, com a forma SQL quando ela existe. A sintaxe das expressões em SQL está em Linguagem de expressões. Para aprender passo a passo, use o tutorial DAX.
| Você vem de | O que muda |
|---|---|
| Primeira linguagem de fórmula | Medida é um valor calculado para cada linha do gráfico. |
| Excel | SUM soma só as linhas que passam no filtro de cada linha do gráfico. Faz o papel do SOMASE. |
| SQL | Sem GROUP BY e sem JOIN. O gráfico agrupa e os relacionamentos do app ligam as tabelas. |
| Power BI | Mesmo DAX, só para medidas. Veja Diferenças em relação ao Power BI. |
SUM('Vendas'[Faturamento])SUM([Vendas].[Faturamento])COUNTROWS('Vendas')COUNT([Vendas].[Faturamento])DISTINCTCOUNT('Clientes'[Cliente])COUNT(DISTINCT [Clientes].[Cliente])AVERAGE('Vendas'[Faturamento])AVG([Vendas].[Faturamento])DIVIDE(SUM('Vendas'[Faturamento]), COUNTROWS('Vendas'))SUM([Vendas].[Faturamento]) / NULLIF(COUNT([Vendas].[Faturamento]), 0)CALCULATE(SUM('Vendas'[Faturamento]), 'Clientes'[UF] = "SP")SUM(CASE WHEN [Clientes].[UF] = 'SP' THEN [Vendas].[Faturamento] END)CALCULATE(SUM('Vendas'[Faturamento]), 'Clientes'[UF] IN {"SP", "PR"})SUM(CASE WHEN [Clientes].[UF] IN ('SP', 'PR') THEN [Vendas].[Faturamento] END)CALCULATE(SUM('Vendas'[Faturamento]), KEEPFILTERS('Clientes'[UF] = "SP"))COUNTROWS(FILTER(VALUES('Clientes'[Cliente]), CALCULATE(SUM('Vendas'[Faturamento])) > 1000))DIVIDE(SUM('Vendas'[Faturamento]), CALCULATE(SUM('Vendas'[Faturamento]), ALLSELECTED('Clientes'[UF])))SUM([Vendas].[Faturamento]) / NULLIF(SUM(SUM([Vendas].[Faturamento])) OVER (), 0)CALCULATE(SUM('Vendas'[Faturamento]), ALL('Clientes'))CALCULATE(SUM('Vendas'[Faturamento]), REMOVEFILTERS('Calendário'))CALCULATE(SUM('Vendas'[Faturamento]), SAMEPERIODLASTYEAR('Calendário'[Data]))${SUM([Vendas].[Faturamento]), [Calendário].[Data] BETWEEN SUBYEARS(<[Calendário].[Data]:START, CURRENT_DATE>, 1) AND SUBYEARS(<[Calendário].[Data]:END, CURRENT_DATE>, 1)}CALCULATE(SUM('Vendas'[Faturamento]), PREVIOUSMONTH('Calendário'[Data]))CALCULATE(SUM('Vendas'[Faturamento]), DATESYTD('Calendário'[Data]))CALCULATE(SUM('Vendas'[Faturamento]), SAMEPERIODLASTYEAR(DATESYTD('Calendário'[Data])))CALCULATE(SUM('Vendas'[Faturamento]), DATEADD('Calendário'[Data], -3, MONTH))CALCULATE(SUM('Vendas'[Faturamento]), DATESINPERIOD('Calendário'[Data], MAX('Calendário'[Data]), -12, MONTH))VAR atual = SUM('Vendas'[Faturamento])
VAR anterior = CALCULATE(SUM('Vendas'[Faturamento]), SAMEPERIODLASTYEAR('Calendário'[Data]))
RETURN DIVIDE(atual - anterior, anterior)RANKX(ALLSELECTED('Clientes'[Cliente]), SUM('Vendas'[Faturamento]))RANK() OVER (ORDER BY SUM([Vendas].[Faturamento]) DESC)RANK(SKIP, ALLSELECTED('Clientes'[UF], 'Clientes'[Cliente]), ORDERBY(SUM('Vendas'[Faturamento]), DESC), DEFAULT, PARTITIONBY('Clientes'[UF]))CALCULATE(SUM('Vendas'[Faturamento]), WINDOW(1, ABS, 0, REL, ORDERBY('Calendário'[Data])))SUM(SUM([Vendas].[Faturamento])) OVER (ORDER BY MIN([Calendário].[Data]))CALCULATE(SUM('Vendas'[Faturamento]), OFFSET(-1, ORDERBY('Calendário'[Data])))LAG(SUM([Vendas].[Faturamento]), 1, NULL) OVER (ORDER BY MIN([Calendário].[Data]))CALCULATE(SUM('Estoque'[Qtd]), LASTDATE('Estoque'[Data]))LASTNONBLANKVALUE('Estoque'[Data], SUM('Estoque'[Qtd]))IF(SUM('Vendas'[Faturamento]) > 100000, "Alto", "Baixo")CASE WHEN SUM([Vendas].[Faturamento]) > 100000 THEN 'Alto' ELSE 'Baixo' ENDVAR total = SUM('Vendas'[Faturamento])
RETURN SWITCH(TRUE(), total < 50000, "Baixo", total < 200000, "Médio", "Alto")IF(HASONEVALUE('Clientes'[UF]), SUM('Vendas'[Faturamento]))IF(ISINSCOPE('Clientes'[UF]), SUM('Vendas'[Faturamento]))IF(ISFILTERED('Clientes'[UF]), SUM('Vendas'[Faturamento]))COALESCE(SUM('Vendas'[Faturamento]), 0)COALESCE(SUM([Vendas].[Faturamento]), 0)/ dá vazio. DIVIDE dá vazio ou o valor alternativo do terceiro argumento.CALCULATE(..., UF = "SP") mostra SP em todas as linhas. KEEPFILTERS mantém o filtro da linha.SUM(CASE WHEN UF = 'SP' ...) do SQL deixa as outras UFs vazias. Ele só dá o número do CALCULATE sem UF nas linhas.RANKX, item sem valor no período conta como 0. Em ordem decrescente, fica abaixo dos positivos e acima dos negativos.COUNTROWS conta toda linha e DISTINCTCOUNT conta o vazio como um valor. O COUNT(coluna) e o COUNT(DISTINCT coluna) do SQL deixam o NULL de fora.LASTDATE usa a data da própria tabela de estoque ou saldo.{ } [ ] $.CALCULATE ou de WINDOW.CALCULATE. Alternativa: uma dentro da outra, como SAMEPERIODLASTYEAR(DATESYTD(...)).ALL.USERELATIONSHIP usa o relacionamento secundário declarado no app. Não existe relacionamento inativo.ORDERBY com coluna de data segue o agrupamento das linhas: com o mês nas linhas, percorre os meses.