Escolar Documentos
Profissional Documentos
Cultura Documentos
DAX
RAL TREINAMENTOS
Funções de texto
O DAX inclui um conjunto de funções de texto com base nas funções de cadeia de
caracteres no Excel.
LEFT
Retorna o número especificado de caracteres do início de uma cadeia de texto.
Sintaxe
LEFT(<texto>, <número de caracteres>)
Exemplo
CTPS_PARTE1 = LEFT (fFerias[Nº CTPS],3)
Resultado
MID
Retorna uma cadeia de caracteres do meio de uma cadeia de texto, dados um ponto
inicial e um comprimento.
Sintaxe
MID <texto>, <número inicial>, <número de caracteres>)
Exemplo
CTPS_PARTE2 = MID (fFerias[Nº CTPS], 5,3)
Resultado
CONCATENATE
Une duas cadeias de texto em uma.
Sintaxe
CONCATENATE <texto1>, <texto2>)
Exemplo
CTPS FINAL = CONCATENATE (fFerias[CTPS_PARTE1], fFerias[CTPS_PARTE2])
Resultado
RIGHT
RIGHT retorna o último caractere ou caracteres em uma cadeia de texto, com base no
número de caracteres que você especificar.
Sintaxe
RIGHT <texto>, <número de caracteres>)
Exemplo
UF = RIGHT (fFerias[Nº CTPS],2)
Resultado
SUBSTITUTE
Substitui o texto original pelo novo texto em uma cadeia de texto.
Sintaxe
SUBSTITUTE (<texto>, <texto antigo>, <texto novo>)
Exemplo
Prioridades = SUBSTITUTE (fFerias[Prioridade de Saída], "Prioridade", "")
Resultado
TRIM
Remove todos os espaços de um valor de texto, exceto espaços simples entre palavras.
Sintaxe
TRIM (<texto>)
Exemplo
DEPTO NO BLANKS = TRIM (fFerias[Departamento])
Resultado
FIND
Retorna a posição inicial de uma cadeia de texto em outra cadeia de texto.
Sintaxe
FIND (<texto procurado>, <no texto>[, [<posição inicial>])
Exemplo
POS BARRA = FIND ("/", fFerias2[Nº CTPS])
Resultado
LEN
Retorna o número de caracteres em uma cadeia de texto.
Sintaxe
LEN (<texto>)
Exemplo
TAMANHO = LEN (fFerias2[Nº CTPS])
Resultado
VALUE
Converte em número uma cadeia de texto que representa um número.
Sintaxe
VALUE (<texto>)
Exemplo
CTPS NUM = VALUE (fFerias2[CTPS FINAL])
Resultado
UPPER
Converte uma cadeia de texto em letras maiúsculas.
Sintaxe
UPPER (<texto>)
Exemplo
NOME = UPPER (fFerias2[Nome do Empregado])
Resultado
LOWER
Converte todas as letras de uma cadeia de texto em minúsculas.
Sintaxe
LOWER (<texto>)
Exemplo
DEPTO = LOWER (fFerias2[Departamento])
Resultado
DATE
Retorna a data especificada no formato datetime.
Sintaxe
DATE (<ano>, <mês>, <dia>)
Exemplo
DATA REF = DATE (fFerias[ANO REF], fFerias[MÊS REF], "01")
Resultado
REPLACE
REPLACE substitui parte de uma cadeia de texto, com base no número de caracteres
que você especificar, com uma cadeia de texto diferente.
Sintaxe
REPLACE (<texto antigo >, <posição inicial>, <número de caracteres>,
<novo texto>)
Exemplo
Novo CTPS = REPLACE (fFerias[Nº CTPS], 4, 5, "")
Resultado
Funções de data
Essas funções ajudam você a criar cálculos baseados em datas. Muitas das funções do
DAX são semelhantes às funções de data do Excel. No entanto, as funções DAX usam
um tipo de dados datetime e podem usar valores de uma coluna como argumento.
DATEDIFF
Retorna a contagem de limites de intervalo cruzados entre duas datas.
Sintaxe
DATEDIFF (<data inicial>, <data final>, <intervalo>)
O intervalo a ser usado ao comparar datas. O valor pode ser um dos seguintes:
- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
Exemplo
IDADE = DATEDIFF (dBases[Dt. Nasc.], TODAY (), YEAR)
Resultado
TODAY
Retorna a data atual.
Sintaxe
TODAY ()
DAY
Retorna o dia do mês, um número de 1 a 31.
Sintaxe
DAY (<data>)
Exemplo
DIA NASC = DAY (dBases[Dt. Nasc.])
Resultado
MONTH
Retorna o mês como um número entre 1 (janeiro) e 12 (dezembro).
Sintaxe
MONTH (<data>)
Exemplo
MÊS NASC = MONTH (dBases[Dt. Nasc.])
Resultado
YEAR
Retorna o ano de uma data como um inteiro de quatro dígitos no intervalo 1900-9999.
Sintaxe
YEAR (<data>)
Exemplo
ANO NASC = YEAR (dBases[Dt. Nasc.])
Resultado
WEEKDAY
Retorna um número de 1 a 7 que identifica o dia da semana de uma data. Por padrão, o
dia varia entre 1 (domingo) e 7 (sábado).
Sintaxe
WEEKDAY (<data>)
Exemplo
NUM SEMANA = WEEKDAY (fPagamentos[DATA DE PAGTO])
Resultado
DATEVALUE
Converte uma data no formato de texto em uma data no formato datetime.
Sintaxe
DATEVALUE (data em formato texto)
Funções matemáticas
As funções matemáticas e trigonométricas em DAX são muito semelhantes às funções
matemáticas e trigonométricas do Excel.
ROUND
Arredonda um número conforme o número de dígitos especificado.
Sintaxe
ROUND (<número>, <número de dígitos>)
Exemplo
ARRED = ROUND ('dCombustíveis'[Preço Barril], 2)
Resultado
ROUNDUP
Arredonda um número para cima, afastando-o de 0 (zero).
Sintaxe
ROUNDUP (<número>, <número de dígitos>)
Exemplo
ARRED PARA CIMA = ROUNDUP ('dCombustíveis'[Preço Barril], 2)
Resultado
ROUNDDOWN
Arredonda um número para baixo, em direção a zero.
Sintaxe
ROUNDDOWN (<número>, <número de dígitos>)
Exemplo
ARRED PARA BAIXO = ROUNDDOWN ('dCombustíveis'[Preço Barril],2)
Resultado
TRUNC
Trunca um número para um inteiro removendo a parte decimal ou fracionária do
número.
Sintaxe
TRUNC (<número>, <número de dígitos>)
Exemplo
TRUNCAR = TRUNC ('dCombustíveis'[Preço Barril], 2)
Resultado
INT
Arredonda um número para baixo, para o inteiro mais próximo.
Sintaxe
INT (<número>)
Exemplo
INTEIRO = INT ('dCombustíveis'[Preço Barril])
Resultado
Funções de relação
As funções nessa categoria são para o gerenciamento e a utilização de relações entre
tabelas.
RELATED
Retorna um valor relacionado de outra tabela.
Sintaxe
RELATED (<coluna da tabela>)
Exemplo
Para exibir o valor da coluna ICMS abaixo, são avaliadas duas condições. Um IF irá
avaliar se a coluna Estado contém RJ ou CE. O outro IF avaliará se a coluna Estado
contém SP. A sigla de cada estado é encontrada na tabela de Estados, que já deverá
obrigatoriamente estar relacionada com a tabela atual.
ICMS = IF (
OR (RELATED (dEstados1[Estado]) = "RJ", RELATED (dEstados1[Estado]) = "CE"), 0.18,
IF (RELATED (dEstados1[Estado]) = "SP", 0.20, 0.17))
Resultado
RELATEDTABLE
Avalia uma expressão de tabela em um contexto modificado pelos filtros especificados.
Sintaxe
RELATETABLE (<nome da tabela>)
Exemplo
Resultado
USERELATIONSHIP
Especifica a relação a ser usada em um cálculo específico entre a coluna1 e a coluna2.
Sintaxe
USERELATIONSHIP (<nome da coluna1>, <nome da coluna2>)
Exemplo
Uma vez que a tabela dCalendario já tenha uma relação ativa, para realizar a contagem
da coluna Data de Entrega, foi necessário ativar uma relação inativa entre dois campos
com a função USERELATIONSHIP.
Resultado
Funções lógicas
As funções lógicas agem sobre uma expressão para retornar informações sobre os valores
ou conjuntos dela. Por exemplo, você pode usar a função IF para verificar o resultado de
uma expressão e criar resultados condicionais.
IF
Verifica se uma condição fornecida como o primeiro argumento é atendida. Retornará
um valor se uma condição for TRUE e retornará outro valor se a mesma condição for
FALSE.
Sintaxe
IF (<teste lógico>, <valor se verdadeiro>[, <valor se falso>])
Exemplo
Resultado
SWITCH
Avalia uma expressão em relação a uma lista de valores e retorna uma das várias
expressões de resultado possíveis.
Sintaxe
SWITCH (<expressão>, <valor>, <resultado>[, <valo2>, <resultado>]…)
Exemplo
DIA DA SEMANA = SWITCH (fPagamentos[NUM SEMANA], 1, "DOMINGO", 2, "SEGUNDA", 3,
"TERÇA", 4, "QUARTA", 5, "QUINTA", 6, "SEXTA", 7, "SÁBADO")
Resultado
AND
Verifica se ambos os argumentos são TRUE e retorna TRUE se isso se confirmar. Caso
contrário, retorna false.
Sintaxe
AND (<teste lógico 1>, <teste lógico 2>)
Exemplo
TELEFONE e SIM = IF (
AND (fCallCenter[Fonte do Contato]="TELEFONE",
fCallCenter[Satisfastório]="SIM"), 10, 0)
Resultado
OR
Verifica se um dos argumentos é TRUE para retornar TRUE. A função retornará
FALSE se os dois argumentos forem FALSE.
Sintaxe
OR (<teste lógico 1>, <teste lógico 2>)
Exemplo
Resultado
IFERROR
Avalia uma expressão e retorna um valor especificado se a expressão retorna um erro;
caso contrário, retorna o valor da própria expressão.
Sintaxe
IFERROR (expressão, valor em caso de erro)
Exemplo
Abaixo será calculado o valor da parcela, considerando a divisão do valor a pagar pelo
número de parcelas. Caso o número de parcelas não seja informado, a divisão retornará
erro. Para evitar este erro, a função IFERROR é utilizada.
Resultado
CONTAINS
Retornará TRUE em toda coluna, se os valores de todas as colunas referidas existirem
ou estiverem contidas nessas colunas; caso contrário, a função retornará FALSE.
Sintaxe
CONTAINS (<nome da tabela>, <nome da coluna>, <valor procurado>)
Exemplo
Se o produto BLADE PRO 2020 estiver na lista de vendas, todos os produtos serão
entregues dois dias antes do previsto. Caso contrário a data prevista será mantida.
VERIFICA BLADE PRO 2020 = IF (CONTAINS (dFretes, dFretes[PRODUTO], "BLADE PRO 2020"),
dFretes[PREVISÃO DE ENTREGA] - 2,
dFretes[PREVISÃO DE ENTREGA])
Resultado
CONTAINSSTRING
Retorna TRUE ou FALSE, indicando se uma cadeia de caracteres contém outra cadeia
de caracteres.
Sintaxe
CONTAINSSTRING (<local da pesquisa>, <texto a ser procurado>)
Exemplo
Se algum produto BLADE estiver na lista de vendas, estes produtos serão entregues
dois dias antes do previsto. Os demais terão a data prevista mantida.
SUM
Soma todos os números de uma coluna.
Sintaxe
SUM (<coluna>)
Exemplo
QTDE TOTAL = SUM (fVendas[Unidades])
Resultado
AVERAGE
Retorna a média aritmética de todos os números de uma coluna.
Sintaxe
AVERAGE (<coluna>)
Exemplo
QTDE MÉDIA VENDIDA = AVERAGE (fVendas[Unidades])
Resultado
MAX
Retorna o maior valor de uma coluna ou entre duas expressões escalares.
Sintaxe
MAX (<coluna>)
Exemplo
MAIOR QTDE VENDIDA = MAX (fVendas[Unidades])
Resultado
MIN
Retorna o menor valor de uma coluna ou entre duas expressões escalares.
Sintaxe
MIN (<coluna>)
Exemplo
MENOR QTDE VENDIDA = MIN (fVendas[Unidades])
Resultado
COUNTROWS
Conta o número de linhas na tabela especificada.
Sintaxe
COUNTROWS (<nome da tabela>)
Exemplo
TOTAL PEDIDOS = COUNTROWS (fVendas)
Resultado
DISTINCTCOUNT
Conta o número de valores distintos de uma coluna.
Sintaxe
DISTINCTCOUNT (<coluna>)
Exemplo
NRO DE PRODUTOS = DISTINCTCOUNT (fVendas[Produto])
Resultado
COUNT
Conta o número de valores de uma coluna que contém valores numéricos.
Sintaxe
COUNT (<coluna>)
Exemplo
Nº LANCS = COUNT (fPedidos[Lançamento])
Resultado
COUNTA
Conta o número de valores de uma coluna que não estão vazias.
Sintaxe
COUNTA (<coluna>)
COUNTBLANK
Conta o número de células vazias em uma coluna.
Sintaxe
COUNTBLANK (<coluna>)
Exemplo
Nº LANCS VAZIOS = COUNTBLANK (fVendas[Lançamento])
Resultado
SUMX
Retorna a soma de uma expressão avaliada para cada linha de uma tabela.
Sintaxe
SUMX (<nome da tabela>, <expressão>)
Exemplo
TOTAL FATURAMENTO = SUMX (fVendas, fVendas[Unidades] * fVendas[Preço])
Resultado
AVERAGEX
Calcula a média aritmética de um conjunto de expressões avaliadas de uma tabela.
Sintaxe
AVERAGEX (<nome da tabela>, <expressão>)
Exemplo
MÉDIA FATURAMENTO = AVERAGEX (fVendas, fVendas[Unidades] * fVendas[Preço])
Resultado
MAXX
Avalia uma expressão para cada linha de uma tabela e retorna o maior valor.
Sintaxe
MAXX (<nome da tabela>, <expressão>)
Exemplo
MAIOR FATURAMENTO = MAXX ('fLançamentos', 'fLançamentos'[ Preço Unitário ] *
'fLançamentos'[Quantidade] - 'fLançamentos'[ Desconto ])
Resultado
MINX
Retorna o menor valor resultante da avaliação de uma expressão para cada linha de uma
tabela.
Sintaxe
MINX (<nome da tabela>, < expressão>)
Exemplo
MENOR FATURAMENTO = MINX ('fLançamentos', 'fLançamentos'[ Preço Unitário ] *
'fLançamentos'[Quantidade] - 'fLançamentos'[ Desconto ])
Resultado
COUNTX
Conta o número de linhas que contêm um valor que não esteja em branco, ao avaliar
uma expressão em uma tabela.
Sintaxe
COUNTX (<nome da tabela>, <expressão>)
TOPN
Retorna as N linhas superiores da tabela especificada.
Sintaxe
TOPN (<número de linhas>, <nome da tabela>, <ordem>
Exemplo
Deverá ser calculada a média dos três maiores valores de venda. A função TOPN irá
classificar a coluna VALOR VENDAS por ordem decrescente e retornar apenas as três
primeiras linhas. A função AVERAGEX irá calcular a média.
Resultado
Funções de filtro
As funções de filtro e valor no DAX são algumas das mais complexas e poderosas e
diferem muito das funções do Excel. As funções de pesquisa funcionam usando tabelas e
relações, como um banco de dados. As funções de filtragem permitem que você manipule
o contexto de dados para criar cálculos dinâmicos.
CALCULATE
Avalia e executa uma expressão em um contexto de filtro modificado.
Sintaxe
CALCULATE (<expressão>[, <filtro1> [, <filtro2> [, …]]])
Exemplo
Abaixo foram criadas duas medidas. A primeira medida calcula o faturamento total
obtido na região do Canadá. A segunda medida calcula o faturamento total obtido no
Canadá pela vendedora Linda.
$ CANADA = CALCULATE (
Medidas[TOTAL FATURAMENTO], FILTER (fVendas, fVendas[Regiao] = "CANADA"))
Resultado
VALUES
Retorna uma tabela de coluna única que contém os valores distintos da coluna
especificada. Valores duplicados são removidos e apenas valores exclusivos são
retornados. Um valor BLANK pode ser adicionado.
Observação
Esta função não pode ser usada para retornar valores em uma célula ou coluna em uma
planilha; em vez disso, você pode usá-la como uma função intermediária, aninhada em
uma fórmula, para obter uma lista de valores distintos que podem ser contados ou
usados para filtrar ou somar outros valores.
Sintaxe
VALUES (<nome da coluna>)
Exemplo
Na medida abaixo a função VALUES gera uma coluna com cada produto da tabela
fVendas, sem elementos duplicados. A função COUNTROWS conta a quantidade de
linhas desta tabela.
Resultado
ALL
Retorna todas as linhas de uma tabela ou todos os valores de uma coluna, ignorando
todos os filtros que estiverem aplicados. Essa função é útil para limpar filtros e criar
cálculos em todas as linhas em uma tabela.
Sintaxe
ALL (<nome da tabela ou coluna>)
Exemplo
A medida abaixo calcula o faturamento total e o resultado obtido é repetido para cada
linha da tabela através da função ALL.
Resultado
ALLEXCEPT
Remove todos os filtros de contexto na tabela, exceto filtros aplicados às colunas
especificadas.
Sintaxe
ALLEXCEPT (<nome da tabela>, <nome da coluna>)
Exemplo
Resultado
Perceba que ao selecionar alguns dos produtos, a coluna Total no Ano permanece
exibindo o total do faturamento calculado anteriormente (505 milhões). Porém ao
selecionar um ano, a coluna total do faturamento é recalculada gerando um novo total
que será repetido na coluna Total no Ano.
ALLSELECTED
Remove filtros de contexto de colunas e linhas na consulta atual, mantendo todos os
outros filtros de contexto ou filtros explícitos. Essa função pode ser usada para obter
totais visuais em consultas.
Sintaxe
ALLSELECTED (<nome da tabela>, <nome da coluna>)
Exemplo
FAT SELECT = CALCULATE (
SUMX (fVendas, fVendas[Preço] * fVendas[Unidades]), ALLSELECTED (fVendas[Produto]))
Resultado
HASONEVALUE
Retorna TRUE quando o contexto para Nome da coluna foi filtrado para apenas um
valor distinto. Caso contrário, será FALSE.
Sintaxe
HASONEVALUE (<nome da coluna>)
Exemplo
Resultado
ISFILTERED
Retorna TRUE quando Nome da coluna está sendo filtrado diretamente, caso contrário a
função retornará FALSE.
Sintaxe
ISFILTERED (<nome da coluna>)
Exemplo
Uma nova coluna deverá exibir o Total a pagar apenas quando um dos vendedores for
selecionado. Caso contrário a coluna ficará vazia.
Resultado
EXCEPT
Retorna as linhas de uma tabela que não aparecem em outra tabela.
Sintaxe
EXCEPT (<tabela do lado esquerdo>, <tabela do lado direito>
Exemplo
Resultado
SELECTEDVALUE
Retorna o valor quando o contexto para o nome da coluna foi filtrado para apenas um
valor distinto. Caso contrário, retorna o valor alternativo.
Sintaxe
SELECTEDVALUE (<nome da coluna>[, <valor alternativo>])
Exemplo
OPÇÕES SELECIONADAS = "FILTRO: " & SELECTEDVALUE (fVendas[Regiao]) & " " &
SELECTEDVALUE (fVendas[ANO])
Resultado
SUMMARIZE
Retorna uma tabela de resumo para os totais solicitados sobre um conjunto de grupos.
Sintaxe
SUMMARIZE (<tabela>, <coluna a ser agrupada >, <nome da coluna da
expressão>, <expressão a ser calculada>)
Exemplo
RESUMO REGIÕES = SUMMARIZE (
fVendas,
fVendas[Regiao], fVendas[Produto],
"TOTAL QTD", SUM (fVendas[Unidades]),
"NRO LANCS", COUNT (fVendas[Lançamento]))
Resultado
LOOKUPVALUE
Retorna o valor da linha que atende a todos os critérios especificados pelos critérios de
pesquisa. A função pode aplicar um ou mais critérios de pesquisa.
Sintaxe
LOOKUPVALUE (<coluna a ser retornada >, <coluna de pesquisa >, <valor
a ser pesquisado >)
Exemplo
Esta medida procura o maior total de unidades vendidas na coluna Total Qtd. Ao
encontrar retorna o nome do produto.
TOTALYTD
Avalia o valor do ano até a data da expressão no contexto atual.
Sintaxe
TOTALYTD (<expressão>, <datas>)
Exemplo
YTD = TOTALYTD (Medidas[TOTAL FATURAMENTO], dCalendario[Date])))
Resultado
DATEADD
Retorna uma tabela que contém uma coluna de datas, deslocada para frente ou para trás
no tempo pelo número especificado de intervalos começando nas datas do contexto
atual.
Sintaxe
DATEADD (<datas>, <número de intervalos>, <intervalo>)
Exemplo
MOM = CALCULATE (Medidas[TOTAL FATURAMENTO], DATEADD (dCalendario[Date], -1, MONTH))
Resultados
SAMEPERIODLASTYEAR
Retorna uma tabela que contém uma coluna de datas deslocadas para um ano antes das
datas na coluna dates especificada, no contexto atual.
Sintaxe
SAMEPERIODLASTYEAR (<datas>)
Exemplo
YOY = CALCULATE (Medidas[TOTAL FATURAMENTO], SAMEPERIODLASTYEAR (dCalendario[Date]))
Resultados
PREVIOUSDAY
Retorna uma tabela que contém uma coluna de todas as datas que representam o dia
anterior à primeira data na coluna dates, no contexto atual.
Sintaxe
PREVIOUSDAY (<datas>)
Exemplo
DIA ANTERIOR = CALCULATE (Medidas[TOTAL FATURAMENTO], PREVIOUSDAY
(dCalendario[Date]))
Resultados
FIRSTDATE
Retorna a primeira data no contexto atual para a coluna de datas especificada.
Sintaxe
FIRSTDATE (<datas>)
DATESINPERIOD
Retorna uma tabela que contém uma coluna de datas que começa com uma data de
início especificada e continua até o número e o tipo de intervalo de datas especificados.
Sintaxe
DATESINPERIOD (<datas>, <data inicial>, <número de intervalos>,
<intervalo>)
Exemplo
ACUMULADO MÓVEL (2 MESES) = CALCULATE (Medidas[TOTAL FATURAMENTO], DATESINPERIOD
(dCalendario[Date], FIRSTDATE (dCalendario[Date]), 2, MONTH))
Resultado
STARTOFMONTH
Retorna a primeira data do mês no contexto atual para a coluna de datas especificada.
Sintaxe
STARTOFMONTH (<datas>)
DATESBETWEEN
Retorna uma tabela que contém uma coluna de datas que começa com uma data de
início especificada e continua até uma data de término especificada.
Sintaxe
DATESBETWEEN (<datas>, <data inicial>, <data final >)
Exemplo
ANÁLISE QUINZENAL = CALCULATE (Medidas[TOTAL FATURAMENTO], DATESBETWEEN
(dCalendario[Date], STARTOFMONTH (dCalendario[Date]), STARTOFMONTH
(dCalendario[Date]) + 15))
Resultado