top of page

inscreva-se

  • YouTube ícone social

DAX - MEDIDAS

Canal no Youtube criado por Amanda Nascimento 

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

bottom of page