select value
Simula a questão de células igual ao Excel.
Título dinâmico:
SELECTVALUE('nome tab'[coluna] & " de " & SELECTVALUE('nome tab2'[coluna2]
% de representatividade com filtro
DIVIDE(
CALCULATE(
SUM(Ocorrencias[qnt]),
Ocorrencias[Ocorrencias] = "roubo_veiculo"),
CALCULATE(
SUM(Ocorrencias[qnt]),
Ocorrencias[Ocorrencias] in {"roubo_veiculo","furto_veiculos"}))
contar quantas vezes um determinado texto aparece
COUNTAX(
FILTER('nome tab',[nome coluna] = "sim",
[PREENCHECOTA])
CALCULATE(
COUNTROWS(Nome_Tab), NomeTab[nome coluna DataRelatorio] = "22.07.31")
contar quantas vezes um determinado texto aparece sem repetição
CONTAR QUANTAS LINHAS ESTÃO EM BRANCO EM UMA DETERMINADA COLUNA
DISTINCTCOUNT('nomeTab'[coluna])
COUNTBLANK(
'nome tab'[nome coluna])
procurar valores
Neste exemplo, tenho uma tabela com o nível de permissão atrelado ao nome do usuário, e esta medida busca o nome do usuário com a função USERNAME e procura o nível de permissão deste usuário na tabela lista de permissão, retornando assim o nível de acesso.
LOOKUPVALUE(tab_lista_permissao[nivel], tab_lista_permissao[username], USERNAME())
RELATED(Produto[Preço unitário])
unir duas ou mais tabelas
Neste exemplo, quero unir a tabela de Clientes A e Clientes B.
Dentro do Power Query, clique em Modelagem / Nova Tabela ou Ferramentas de tabela / Nova Tabela e digite a função:
UNION('Clientes A', 'Clientes B')
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.
SWITCH(
[MONTH], 1, "Janeiro", 2, "Fevereiro", 3, "Março")
MÉDIA ARITMÉTICA
AVAREGE(Vendas[Qnt])
AVERAGEX(VALUES('dCalendario'[MES]), [SOMA VENDAS])
A função AVERAGEX calcula a média, a função VALUES criará uma tabela virtual apenas com os meses, que simula a soma dos meses dentro de uma medida. Junto com a tabela virtual criada com a VALUES, é possível segmentar apenas a soma de venda dos meses dos respectivos anos. Depois desse cálculo (interno), a média dessa soma é calculada e o resultado correto é mostrado.
valor máximo e mínimo
MAX(Vendas[Qnt])
diferença ENTRE COUNT E COUNTA
COUNT: Faz a contagem de todos os números de uma coluna
COUNTA: Faz a contagem de todos os valores de uma coluna, seja ele texto, número, data, etc.
ativando relacionamentos inativos
A função USERRELATIONSHIP força o contexto de cálculo a usar a relação entre duas colunas. As colunas informadas, devem possuir um relacionamento inativo estabelecido no modelo.
Exemplo: CALCULATE([soma Vendas], USERRELATIONSHIP('dCalendARIO'[DATA], fVendas[Data Faturamento]))
soma acumulada do ano
Medida ou o cálculo a ser realizado + Datas.
Vale ressaltar que para quem não conhece, a expressão YTD é muito utilizada para se referir a métrica do "acumulado".
Y= YEAR
T=TO
D=DATE
Exemplos:
1. TOTALYTD([Soma Vendas], 'dCalendario'[Data])
2. DIVIDE([Soma Vendas YTD], [ Soma Meta YTD], BLANK()) -1
3. TOTALYTD([Soma Vendas], 'dCalendario'[Data], "30/6")
Caso seja necessário determinar que o ano não termina em 31 de dezembro, mas em outro período, basta substituir. No exemplo acima esta 30 de junho, ou seja, o ano fiscal seria de 1 de julho a 1 de junho.
acumulado dos últimos 12 meses
Alem do acumulado por ano, um indicador muito utilizado são os últimos 12 meses. A sintaxe desta função exige 4 argumentos, e como é uma função que retorna uma tabela de datas, deve ser utilizada juntamente com uma função agregadora ou CALCULATE.
DATESINPERIOD(Datas, DataInicial, NumIntervalo, Intervalo)
Datas: Informe a coluna de datas da tabela calendário
DataInicial: Data de início da criação da tabela de datas.
NumIntervalo: QUantos períodos para frnete e para trás devem ser considerados.
Intervalo: Qual será a contagem desses períodos: DIas, meses, trimestres, anos?
Exemplo:
Soma 12 meses: CALCULATE(
[soma vendas],
DATESINPERIOD(
dCalendario[data],
LASTDATE(dCalendario[data]),
-12, MONTH))
COMPARANDO VALORES
Ano anterior: =CALCULATE([Soma Vendas],
SAMPERIODLASTYEAR('dCalendario'[data]))
2 anos ou +: =CALCULATE([Soma Vendas],
DATEADD('dCalendario'[data], -2, YEAR))
Mês anterior: =CALCULATE([Soma Vendas],
DATEADD('dCalendario'[data], -1, MONTH))
RANKING
A posição de determinados itens em uma listagem é um dos indicadores mais utilizados. A sintaxe desta função, possui 5 argumentos, sendo 2 obrigatórios.
RANKX(<tabela>,<expressão>,[<valor>,<ordenar>,<xxx>])
No argumento tabela, é muito importante utilizarmos uma função que irá ignorar o contexto de filtro atual. ALL ou ALLSELECTED
Expressão: medida ou função de agregação que queremos avaliar o rank, exemplo média, contagem...
Ordenar: Classificação DESC ou ASC. Por padrão, quando não é informado, é considerado DESC (do maior para o menor).
RANKX(ALL(dClientes),[Soma Vendas])
análise de pareto 80-20
É uma categorização de elementos de acordo com seu peso. É utilizada para definir os itens mais importantes com mais relevância. Para criar um gráfico de pareto, precisamos primeiro classificar os elementos que serão analisados, do maior para o menor e depois encontrar o percentual acumulado de representatividade sobre o total de cada um dos itens.
Rank Produto = RANKX(ALLSELECTED(dCategoriaProduto),[Soma Vendas])
Categoria | Soma Vendas | Rank
PC 876.357 1
Notebook 218.832 2
Agora utilizaremos o ranking cr4iado acima para a soma acumulada de cada categoria. Com o auxílio da função CALCULATE, calcularemos as vendas de acordo com a tabela de retorno da função TOPN.
Soma acumulada = CALCULATE([Soma Vendas],
TOPN[Rank Produtos],
ALL(dCategoria Produto),
[Soma Vendas], DESC))
% aCUMULADO pRODUTOS = [Soma Acumulada] / CALCULATE([Soma Vendas], ALL(dCategoriaProduto))
calendario
CALENDÁRIO DAX = CALENDARAUTO()
EXTRAIR DIA, MÊS E ANO = DAY('Calendario DAX'[Date])
arredondar
ROUND( , + 0)
extração e tratamento de texto
LEFT(tab[coluna];4)
RIGHT(tab[coluna];4)
MID(tab[coluna];5;3) Coluna, posição inicial, quantidade de caracteres
LEN(tab[coluna]) Número de caracteres
SEARCH("-",tab[coluna])
SUBSTITUTE(tab[coluna];"";"-")
UPPER(tab[coluna])
LOWER(tab[coluna])
DATAS
WEEKDAY: Retorna dia de semana de 1 a 7
WEEKNUM: Retorna a semana do ano de 1 a 52