Você está na página 1de 357

QUANDO USAR SUM E SUMX NO POWER BI (LINGUAGEM

DAX)
A função de soma (SUM) com certeza é uma das mais utilizadas no Power BI, se não for a mais utilizada. Não só no
Power BI mas no Excel também. Neste artigo trataremos do comportamento das funções SUM e SUMX no Power BI.
Tudo que falarmos aqui se aplica também ao Power Pivot do excel.

Entendemos que não há necessidade de falar muito sobre a função de somar em si. É uma função simples,
provavelmente a primeira que aprendemos devido à grande aplicação que ela tem. Mas se tiver alguma dúvida leia o
nosso artigo: 4 Funções DAX simples mas que você usará em todos seus modelos.

Antes de entrarmos nas explicações das funções SUM e SUMX no Power BI é importante entender alguns detalhes do
comportamento das funções dentro da Linguagem DAX.

Para melhor acompanhar este artigo baixe nosso exemplo em Power BI.

Comportamento dos filtros


Quando se cria uma fórmula em DAX, o resultado dela depende dos filtros que estão aplicados no relatório. Tenha em
mente que DAX não é o mesmo que as fórmulas em Excel.
No Excel é possível criar várias fórmulas em cada célula de um relatório e cada fórmula pode apontar para células
criando resultados diferentes. Cada célula é única. Mas não é assim que funciona na linguagem DAX.

No DAX se cria uma única fórmula, exemplo SUM(Vendas[Total Venda]), utilizando os filtros do relatório se
modifica os resultados retornados desta fórmula.

Os filtros são aqueles criados em qualquer local da área de relatório no Power BI, tanto as segmentações de dados
quanto qualquer elemento clicável nos gráficos e tabelas do relatório. Neste sentido é considerado como filtro também,
influenciando no resultado, aqueles adicionados na função CALCULATE. Esta é a única função que pode alterar o
comportamento dos filtros iniciais em um relatório.

O termo técnico para este comportamento dos filtros em relação ao resultado é “Contexto de Filtro” ou “Filter Context”.
Provavelmente é um termo que você já ouviu nos seus estudos sobre Power BI. Se não ouviu ainda irá ouvir muito aqui
no nosso blog e nossos cursos.

Veja como é o comportamento do filtro inicial no Power BI.


Note que a linha de “Bikes” (1), é um filtro inicial, somando todos os valores de vendas de bicicletas alí. Mas há também
um outro filtro no gráfico, a coluna da cidade (2) filtra também todas as vendas desta cidade. Assim o valor na linha
“Bikes” é a soma desta categoria para a cidade de “São Paulo” no exemplo. Os dois filtros aplicados são filtros iniciais.
Filtros podem vir de colunas, segmentação de dados e também da seção de Filtros na direita da visualização
de Relatório abaixo da seção Visualizações.
Contexto de Linha
O segundo ponto importante a se compreender é a análise linha a linha. Não é toda fórmula DAX que é capaz de calcular
linha a linha. Em algumas áreas do DAX, por exemplo numa coluna calculada, consegue avaliar linha a linha o resultado,
mas em outras áreas não.

Por exemplo, pode-se escrever uma fórmula simples numa coluna calculada, tal como, Vendas[PedidoQtde] *
Vendas[Preço Unit.] que a fórmula irá avaliar uma linha por vez. Mas se fizer esta mesma fórmula como
uma Medida acontecerá um erro.
O termo técnico para este comportamento é “Contexto de Linha” ou “Row Context”. Representa então a análise linha a
linha para a fórmula.

SUM e SUMX no Power BI


Após apresentado alguns conceitos bases, vamos agora falar da razão deste artigo ser escrito. As fórmulas SUM e SUMX
no Power BI.
SUM()
É uma função agregadora, ou seja, adiciona todos os valores em uma coluna. O resultado se dá após aplicados ou não
todos os filtros que influenciam na fórmula. SUM() não considera a existência das linha (não avalia linha a linha). Tudo
que ela faz é agregar todas as linhas dentro de uma única coluna.
SUMX()

É um “iterador”*, ou seja, trabalha na tabela, linha a linha para completar a avaliação. O resultado se dá após aplicados
ou não todos os filtros que influenciam na fórmula. SUMX() leva em conta cada linha da tabela e, portanto, pode
referenciar a interseção de cada linha com qualquer coluna na tabela. É uma fórmula que opera numa única coluna,
mas consegue também operar em múltiplas colunas, pois trabalha linha a linha na tabela.

Em resumo, SUM() trabalha com uma única coluna e não considera as linhas individualmente. SUMX() opera em
múltiplas colunas na tabela e pode avalia linha por linha destas colunas.

As duas fórmulas podem dar o mesmo resultado (pode dar ou podem não dar), mas este resultado vem por caminhos
totalmente diferentes. Geralmente elas chegam nos mesmos resultados por linha de uma tabela ou gráfico, mas
geralmente os resultados são diferentes nos subtotais ou totais das seções de um visual.

* Iterador, iteração, falaremos destes dois termos bastante neste artigo. Significa tratar item a item, ou seja, agrega
um item de cada fez no resultado da função.
Função SUM()

Estrutura da fórmula: SUM (<coluna>)

Exemplo:
1 SUM( Vendas[Total Venda] )

A função SUM() opera em uma coluna única e age para agregar todos os dados desta coluna, levando em conta os filtros
aplicados. Primeiro considera o filtro, depois o resultado.

Função SUMX()

Estrutura da fórmula: SUMX (<tabela>; <expressão>)

Exemplo:
1 SUMX( Vendas; Vendas[PedidoQtde] * Vendas[Preço Unit.] )

O SUMX() itera (agrega item a item), em uma tabela especificada no primeiro parâmetro, uma linha por vez. No segundo
parâmetro a função completa o cálculo. No caso Quantidade x Preço Unitário, levando em conta os filtros aplicados.
Assim como na SUM, primeiro considera o filtro, depois o resultado.

A função adiciona até chegar ao total, linha por linha. É como se fosse uma soma ponderada pelo valor próprio de cada
linha. No exemplo, a linha que tiver maior quantidade terá maior peso no resultado a linha com menos quantidade.

Qual função devo usar, SUM ou SUMX?


Na hora de decidir qual das duas funções utilizar, SUM ou SUMX, dependerá da sua preferência e da estrutura dos seus
dados. Vejam abaixo alguns exemplos:
Exemplo 1: Quantidade e Preço Unitário
Se você tem uma tabela de vendas que contenha uma coluna de “Quantidade” e outra de “Preço Unitário” (como
mostramos acima), então será necessário multiplicar uma coluna pela outra para chegar no resultado do Total de
Vendas. O Resultado não seria bom se fizéssemos a multiplicação da soma da “Quantidade” com a média do “Preço
Unitário”. Fazendo isto traria um resultado indesejado.

No caso da imagem acima, o melhor é utilizar SUMX(). É justamente para estes casos que este tipo de função foi criado
(iteração). Abaixo a fórmula que deve ser usada, no arquivo que disponibilizamos tem esta fórmula.
1 SUMX( Vendas; Vendas[PedidoQtde] * Vendas[Preço Unit.] )

Funções de iteração sempre tem seu primeiro parâmetro uma tabela. Esta é a tabela que será iterada pela função.

Muitos usuários cometem um erro comum neste caso. Ao invés de utilizar a função acima acabam criando uma coluna
calculada para resolver o problema. De fato, o problema do resultado será resolvido, mas acaba criando outro com isso.
Ter uma coluna calculada grava o cálculo linha a linha no arquivo. Mas isto deve ser evitado sempre que possível, pois
aumenta a quantidade de memória utilizada e o tamanho do arquivo desnecessariamente.

Exemplo 2: Valor Total

Se seus dados contém uma coluna com o Valor Total de Vendas por linha, então pode usar a função SUM() para a soma
dos valores.
1 SUM( Vendas[Total Venda] )

Neste caso não há necessidade de iteração. É apenas um cálculo simples que agrega todos os valores num total, sem
necessidade de execução linha a linha. Se quiser poderá usar o SUMX(), conforme abaixo. O resultado será o mesmo.

1 SUMX( Vendas; Vendas[Total Venda] )

Considerando em termos de performance, esta fórmula é idêntica a SUM() em eficiência e uso de memória. Mais sobre
esse ponto no final do artigo.
Exemplo 3: Quando o Total não pode ser somado

Há outro caso em que é necessário usar SUMX(), mas é menos óbvio. Quando se encontra um problema em que o Total
não soma conforme a necessidade ou esperado. Assim é necessário usar um “iterador”, exemplo SUMX, para corrigir
este problema. Observe a tabela abaixo:

Na tabela acima temos 6 clientes com uma média gasta em cada visita. Tem também o número de visitas que tiveram
na loja. Se tentarmos carregar estes dados no Power BI utilizando funções de agregação para determinar uma média
de gastos e um total gastos, na linha de total teremos o valor errado. Veja abaixo:
As medidas utilizadas na tabela acima foram:

Media por Visita Errado = AVERAGE( ClientesUso[Gasto por Visita] )


Total de Visitas = SUM( ClientesUso[Nro Visitas] )
Total Gasto Errado = [Total de Visitas] * Medidas[Media por Visita]

Na “Média por Visita Errado” o resultado da linha total está errado, é uma média simples sem considerar o total de
visitas. O “Total de Visitas” está correto, pois é apenas a soma da coluna. “Total Gasto Errado” está errado também pois
não considera linha a linha.

Para este tipo de estrutura de dados a única forma de calcular corretamente os totais é considerando linha a linha. Veja
abaixo o resultado correto:
Nesta tabela acima utilizamos a função SUMX() para criar o “Total Gasto Correto” primeiro. Somente depois desta
medida criada que calculamos a “Média por Visita Correto” na fórmula final.

Total de Visitas = SUM( ClientesUso[Nro Visitas] )


Media por Visita Correto = DIVIDE( [Total Gasto Correto]; [Total de Visitas]; 0 )
Total Gasto Correto = SUMX( ClientesUso; ClientesUso[Nro Visitas] * ClientesUso[Gasto por
Visita] )

Perceba que para ter na média ponderada simplesmente dividimos o “Total Gasto Correto” pelo “Total de Visitas”.
Impactos na Performance
Fórmulas em geral tem implicação direta na performance do modelo de dados, ou seja, tem fórmulas que usam mais
memória e espaço do que outras. Falaremos então qual das duas funções (SUM e SUMX) tem a melhor eficiência na
performance do modelo.

Podemos até pensar que o SUMX, por ser um “iterador” seria menos eficiente que o SUM. Mas isto não é
necessariamente verdade, o Power BI é otimizado para trabalhar com cenários. O que pode causar ineficiência neste
caso é um DAX mal escrito.

A linguagem DAX tem duas engines de cálculo, a Storage Engine (SE) e a Formula Engine(FE). A mais rápida é a SE, pois
é multidirecional e armazena em cache. A FE é mais lenta porque é unidirecional e não armazena em cache.
Temos que buscar fórmulas que sejam SE sempre que possível. Não é algo que seja fácil de saber se não temos uma
vivência diária com estas fórmulas. Mas felizmente temos um bom material disponível na web, principalmente porque
os experts estão buscando cada vez mais eficiência na utilização das fórmulas no Power BI.

Vamos explicar a seguir melhor em relação ao nosso exemplo.

 SUM() sempre utiliza SE para seus cálculos.


 Para a maioria dos cálculos simples (por exemplo, Vendas[PedidoQtde] * Vendas[Preço Unit.]),
SUMX() utilizará SE.
 Em algumas circunstâncias, SUMX() pode utilizar FE para alguns ou todos os cálculos, principalmente se tiver

comparações complexas na fórmula. Neste caso a performance cai muito.


Não comprometer a performance
Aconselhamos, assim, evitar utilizar a função IF juntamente com SUMX(). Abaixo damos um exemplo de como
substituir a função IF trazendo o mesmo resultado e com isso não comprometendo a performance.

Ao invés de:

1 Total Vendas < 100 NÃO = SUMX( Vendas;


2
3 IF(Vendas[Total Venda] < 100; Vendas[Total Venda]; "" )
4
5 )

Utilize:

1 Total Vendas < 100 SIM = CALCULATE(


2
3 SUMX( Vendas; Vendas[Total Venda] );
4
5 Vendas[Total Venda] < 100
6
7 )

A primeira fórmula (Total Vendas < 100 NÃO) tem a função IF juntamente com a SUMX. Esta função IF força o cálculo
SE passar para uma a forma FE para que seja comparado as linhas individualmente se for maior ou menor que 100,
antes de decidir incluir ou não no cálculo. Pelo fato da função ter que avaliar linha a linha o cálculo fica lento e
ineficiente.

A segunda fórmula (Total Vendas < 100 SIM) primeiramente modifica o filtro inicial, vindo do visual, utilizando
CALCULATE() para colocar um filtro adicional (Vendas[Total Venda] < 100). Este filtro é aplicado por “Storage Engine”
(SE) de forma bem eficiente. Após o CALCULATE modificar o filtro a função SUMX pode então fazer seu trabalho e
somar as linhas restantes, uma a uma, através do SE. Nos nossos testes realizados com as duas fórmulas verificamos
que a primeira fórmula (NÃO) levou até 5 vezes mais para processar.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor
sobre o assunto. Ajude-nos também a espalhar bons conteúdos sobre o Power BI.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!

24/12/2018 /POR MARCELO DE TARCIO


APRENDA DAX
FUNÇÕES DE INTELIGÊNCIA DE TEMPO NO POWER BI
DESKTOP
Para fazer cálculos envolvendo datas no Power BI é necessário utilizar a linguagem DAX. Para isto existem, dentro
desta linguagem, as funções de inteligência de tempo. Elas servem para trazer resultados de ano até o momento (year
to date), ano versus ano (yoy), último dia do mês, última data disponível, etc.
Além de alguns cenários utilizando funções de inteligência de tempo no Power BI você aprenderá também sobre a
opção “marcar como tabela de datas” que foi incorporada no Power BI na atualização de fevereiro de 2018. Entender
o papel desta configuração feita nas tabelas que tem datas.
Baixe o arquivo do Power BI Desktop que oferecemos abaixo com todas as funções que falamos neste artigo. São
exemplos práticos de quase todas as funções de inteligência de tempo disponíveis na linguagem DAX. Além de
conseguir acompanhar o que falamos neste post sobre estas funções você terá também um local de consulta rápida
sobre estas funções no seu PC. Assim poderá relembrar e tirar dúvidas no momento que quiser. Baixar o arquivo aqui.

Utilize o índice abaixo para navegar neste artigo. Por ele vá direto à função que deseja aprender.

Funções de inteligência de tempo em DAX


A linguagem DAX disponibiliza um grande número de funções de inteligência de tempo. Veja todas neste link. Estas
funções podem ser divididas em duas categorias:
 Funções que retornam valores escalares sem necessidade da função CALCULATE;
 Funções que retornam uma tabela, que será usada como um filtro numa fórmula CALCULATE.
Um exemplo do primeiro grupo é a função TOTALYTD. Este grupo, na verdade, apenas simplifica uma fórmula que
utilizaria CALCULATE, trocando por uma função de inteligência de tempo. Exemplo de uma expressão
utilizando TOTALYTD.

1 TOTALYTD (
2 SUM ( Vendas[Total Venda] );
3 CalendarioDAX[Date] )

No segundo grupo, utiliza-se a função CALCULATE em conjunto. De fato, a função acima pode ser obtida também
conforme abaixo, mas utilizando DATESYTD como um filtro.

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 DATESYTD ( CalendarioDAX[Date] )
4)

Na fórmula acima é aplicado um filtro ao campo “CalendarioDAX[Date]”. Este substitui filtros existentes nesta coluna.
Na prática a função DATESYTD por ser substituída pela função FILTER. A fórmula anterior corresponde a mesma
fórmula a seguir.

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 FILTER (
4 ALL ( CalendarioDAX[Date] );
5 CalendarioDAX[Date] <= MAX ( CalendarioDAX[Date] )
6 && YEAR ( CalendarioDAX[Date] ) = YEAR ( MAX ( CalendarioDAX[Date] ) )
7 )
8)

Entenda mais sobre a função FILTER no artigo “5 funções DAX para usar muito no Power BI”.

Observe na figura abaixo que o resultado é o mesmo. Os três contextos utilizados trazem o mesmo valor, porque são
formas diferentes para buscar um mesmo resultado. Em duas utilizamos funções de inteligência de dados temporais,
nos dois grupos que destacamos no início deste tópico.

Passamos agora a falar das funções de inteligência de tempo dividas pelos resultados que retornam.

Funções que retornam uma única data

Como nesta categoria as funções retornam uma única data, podem ser utilizadas como argumentos para outras funções.
Abaixo colocamos alguns exemplos de funções deste grupo. De qualquer forma citamos todas disponíveis no texto.

FIRSTDATE
Retorna a primeira data da coluna de datas utilizadas no contexto atual.

Estrutura da fórmula: FIRSTDATE (<coluna_datas>)

Exemplo:
1 FIRSTDATE( CalendarioDAX[Date] )

LASTDATE

Retorna a última data da coluna de datas utilizadas no contexto atual.

Estrutura da fórmula: LASTDATE (<coluna_datas>)

Exemplo:

1 LASTDATE( CalendarioDAX[Date] )

As duas funções de inteligência de dados temporais acima são úteis em casos que deseje encontrar a primeira ou a
última data em que foi feita uma venda, por exemplo. Dá para especificar qual produto, qual valor e mais, utilizando
juntamente a função CALCULATE e/ou FILTER.
STARTOFMONTH

Retorna a primeira data do mês para uma coluna de datas utilizadas dentro do contexto atual.

Estrutura da fórmula: STARTOFMONTH (<coluna_datas>)

Exemplo:
1 STARTOFMONTH( CalendarioDAX[Date] )

ENDOFMONTH

Retorna a última data do mês para uma coluna de datas utilizadas dentro do contexto atual.

Estrutura da fórmula: ENDOFMONTH (<coluna_datas>)

Exemplo:
1 ENDOFMONTH( CalendarioDAX[Date] )

Além das duas funções acima temos ainda as funções STARTOFQUARTER e ENDOFQUARTER, que, nos mesmos moldes,
são para datas em trimestres. Temos também as funções STARTOFYEAR e ENDOFYEAR que tratam o contexto na visão
de ano.
Ao todo são 10 funções de inteligência de tempo que retornam um único valor de data, restou listar entre estas as
funções FIRSTNOBLANK e LASTNOBLANK, que utilizadas em colunas de datas retorna valores (primeiro ou último) que
não estão em branco.

Abaixo uma imagem dos resultados destas funções. Elas estão no arquivo que você fez o download acima (se não fez,
faça agora pois ele contém vários exemplos das funções de inteligência de tempo em aplicações práticas).
Funções que retornam uma tabela de datas
Dentre às funções de inteligência de tempo há aquelas que retornam tabelas de datas. Estas, normalmente, são
utilizadas como um argumento de filtro na função CALCULATE.

Estas funções, citaremos exemplos de algumas, mas ao todo são oito nesta situação, retornam um resultado a partir de
uma coluna de data especificada antes.

PREVIOUSDAY, PREVIOUSMONTH, PREVIOUSQUARTER e PREVIOUSYEAR


Vamos utilizar a função PREVIOUSDAY como principal exemplo para se basearem. Esta função retorna uma tabela que
contém uma coluna com todas as datas que representam o dia anterior à primeira data da coluna de datas na tabela
Calendário no contexto atual.
Estrutura da fórmula: PREVIOUSDAY (<coluna_datas>)

Exemplo:
1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 PREVIOUSDAY ( CalendarioDAX[Date] )
4)
Neste exemplo a função retornará o valor de vendas do dia anterior em relação à data atual. Para exemplificar, para o
dia 05/08/2018 a função retornará as vendas do dia 04/08/2018. No arquivo disponibilizado temos um exemplo
prático desta função e de todas logo abaixo, para você entender melhor. Não deixe de baixa-lo logo no início deste post.

Além desta função temos também as funções PREVIOUSMONTH, PREVIOUSQUARTER e PREVIOUSYEAR. Estas outras
três funções tem a mesma estrutura e lógica da PREVIOUSDAY, só representam contextos diferentes.
PREVIOUSMONTH
Retorna uma tabela que contém uma coluna com todas as datas que representam o mês anterior à primeira data da
coluna de datas na tabela. Esta função retorna a soma de valores do mês fechado. Ou seja, caso a linha contenha uma
data do mês de agosto retornará a soma das vendas total do mês de julho.

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 PREVIOUSMONTH ( CalendarioDAX[Date] )
4)
PREVIOUSQUARTER
Retorna uma tabela que contém uma coluna com todas as datas que representam o trimestre anterior à primeira data
da coluna de datas na tabela. Esta função retorna a soma de valores do trimestre fechado. Ou seja, caso a linha contenha
uma data do mês de agostoretornará a soma das vendas de todo trimestre anterior, no caso a soma dos
meses abril, maio e junho.

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 PREVIOUSQUARTER ( CalendarioDAX[Date] )
4)
PREVIOUSYEAR
Retorna uma tabela que contém uma coluna com todas as datas que representam o ano anterior à primeira data da
coluna de datas na tabela. Esta função retorna a soma de valores do ano fechado. Ou seja, caso a linha contenha uma
data do mês de agosto/17 retornará a soma das vendas de todo ano anterior, no caso a soma de todos os meses
de 2016.

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 PREVIOUSYEAR ( CalendarioDAX[Date] )
4)

NEXTDAY, NEXTMONTH, NEXTQUARTER e NEXTYEAR

Estas funções de inteligência de tempo tem a mesma lógica das funções citadas acima que começam com PREVIOUS.
Essa palavra é substituída por NEXT, que significa próximo. Assim estas funções retornam uma tabela que contém uma
coluna com todas as datas que representam um dia, um mês, um trimestre ou um ano seguinte à primeira data da
coluna de datas.
Utilizaremos o exemplo da função NEXTDAY para ilustrar, mas as outras seguem a mesma estrutura. No arquivo de
Power BI Desktop disponibilizado deste artigo tem todos as funções exemplificadas. Esta função retorna o resultado
do dia posterior à primeira data da coluna.
Estrutura da fórmula: NEXTDAY (<coluna_datas>)

Exemplo:

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 NEXTDAY ( CalendarioDAX[Date] )
4)

As explicações para as funções NEXTMONTH, NEXTQUARTER e NEXTYEAR são as mesmas de suas correspondentes
PREVIOUS acima. Apenas substitua a palavra anterior por seguinte nas explicações.

DATESMTD, DATESQTD, DATESYTD e SAMEPERIODLASTYEAR


Estas funções de inteligência de tempo, ao invés de calcular um período anterior ou próximo, elas calculam o conjunto
de datas no contexto. Melhor dizendo o resultado será do mês até o dia (DATESMTD), ou do trimestre até o dia
(DATESQTD) ou do ano até o dia (DATESYTD). Todas essas funções executam seus cálculos usando a última data no
contexto atual.
Para ilustrar utilizaremos a função DATESMTD, que retorna uma tabela que contém uma coluna de datas desde o início
do mês até o dia atual no contexto.
Estrutura da fórmula: DATESMTD (<coluna_datas>)

Exemplo:

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 DATESMTD ( CalendarioDAX[Date] )
4)

As funções DATESQTD e DATESYTD seguem a mesma lógica acima, mas retornam o total do trimestre ou ano
respectivamente.
Já a função SAMEPERIODLASTYEAR requer um conjunto contínuo de datas, sem que as datas sejam contínuas esta
função retornará um erro. Retorna uma tabela que contém uma coluna de datas com o atraso de um ano em relação às
datas na coluna atual do contexto.

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 SAMEPERIODLASTYEAR ( CalendarioDAX[Date] )
4)
DATEADD, DATESBETWEEN, DATESINPERIOD e PARALLELPERIOD

Estas últimas quatro funções na categoria de funções que retornam uma tabela de data são um pouco mais complexas,
mas também mais poderosas. Estas funções são utilizadas para deslocar-se do conjunto de datas de forma mais
dinâmica, obedecendo o contexto atual das datas.
DATEADD

Retorna uma tabela que contém uma coluna de datas, adiantadas ou atrasadas no tempo conforme o número
especificado de intervalos das datas no contexto atual. É possível substituir a função SAMEPERIODLASTYEAR que
descrevemos acima pela fórmula abaixo. Este é apenas um dos exemplos da utilização desta função. Ela serve para
adiantar ou atrasar os cálculos para dias, meses, trimestres e o caso do exemplo, anos.

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 DATEADD ( CalendarioDAX[Date]; -1; YEAR )
4)
DATESBETWEEN

Calcula um conjunto de datas entre uma data de início e uma data de término especificas nos argumentos. Esta função,
bem como as próximas duas deslocam algum número de intervalo de tempo do contexto atual. Elas facilitam para
deslocar os intervalos em dias, meses, trimestres e ano. Com elas é possível voltar 4 meses, adiantar um ano, voltar 2
semanas (14 dias), etc. No exemplo abaixo somamos os resultados de vendas nos primeiros 15 dias do mês.
1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 DATESBETWEEN (
4 CalendarioDAX[Date];
5 STARTOFMONTH ( CalendarioDAX[Date] );
6 STARTOFMONTH ( CalendarioDAX[Date] ) + 15
7 )
8)
DATESINPERIOD

Da mesma forma da função acima esta função desloca um número de intervalo de tempo do contexto atual. No exemplo
abaixo fazemos o cálculo somando as vendas de 15 dias antes da data atual do contexto. Desta forma teremos as vendas
-15 dias para cada data que apareça no contexto.
1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 DATESINPERIOD (
4 CalendarioDAX[Date];
5 FIRSTDATE ( CalendarioDAX[Date] );
6 -15;
7 DAY
8 )
9)
PARALLELPERIOD
Esta função retorna uma tabela que contenha uma coluna de datas que representa um período paralelo na coluna de
datas no contexto atual, com as datas deslocadas em vários intervalos no presente ou no passado. A
função PARALLELPERIOD é bem parecida à função DATEADD, exceto pelo fato de que PARALLELPERIOD sempre
retorna períodos completos. A função DATEADD retorna períodos parciais. Por exemplo, se você tiver uma seleção de
datas começando em 05/04/2017 e terminando em 16/04/2017 e quiser deslocar essa seleção um mês à frente, a
função PARALLELPERIOD retornará todas as datas do próximo mês (de 1º de maio a 31 de maio); no entanto,
se DATEADD for usada, o resultado só incluirá datas de 05 a 16 de maio. Na fórmula abaixo, retorna a soma das vendas
de todo o mês seguinte à data no contexto.

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 PARALLELPERIOD ( CalendarioDAX[Date]; 1; MONTH )
4)

Abaixo uma imagem dos resultados de todas as funções deste tópico que disponibilizamos no arquivo com todos os
exemplos das funções de inteligência de tempo em aplicações práticas. Não deixe de baixar o arquivo para um melhor
entendimento do que falamos aqui. Você pode baixar utilizando os links no início ou no fim deste artigo.
Funções que avaliam expressões ao longo de um período de tempo
Este tipo de funções de inteligência de dados temporais avaliam uma expressão durante um período de tempo
específico. São funções para simplificar e deixar suas expressões mais curtas. São todas fórmulas que podem ser
substituídas pela função CALCULATE juntamente com outra função de inteligência de tempo.

TOTALMTD, TOTALQTD e TOTALYTD

Estas três fazem a mesma coisa, mas em período de tempos diferentes.

Como exemplo analisaremos a função TOTALMTD.


Estrutura da fórmula: TOTALMTD (<expressão>; <coluna_datas>)

Exemplo:
1 TOTALMTD (
2 SUM ( Vendas[Total Venda] );
3 CalendarioDAX[Date] )

Esta fórmula traz o mesmo resultado da fórmula abaixo.


1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 DATESMTD ( CalendarioDAX[Date] )
4)
Mas é melhor utilizar a primeira por ser uma fórmula reduzida e com isso utilizamos menos recursos de memória. No
exemplo acima, se colocar num gráfico diário, esta função irá somar as vendas acumulando dia a dia um novo valor. No
arquivo que disponibilizamos você conseguirá ver este exemplo e outros na prática.

As funções TOTALQTD e TOTALYTD tem a mesma estrutura, mas fazem o acúmulo dos resultados por trimestre e por
ano respectivamente. Temos um exemplo da TOTALYTD logo no começo deste artigo.

Dentro desta categoria existem também um grupo de funções que trabalham com balanços de abertura e fechamento.
São funções com um apelo específico para área contábil e financeira, não vamos tratar em detalhes destas funções aqui.
Coloquei abaixo o link direto ao site da Microsoft onde poderá saber os detalhes técnicos destas funções.

OPENINGBALANCEMONTH (<expressão>, <coluna_datas>)


OPENINGBALANCEQUARTER (<expressão>, <coluna_datas>)
OPENINGBALANCEYEAR (<expressão>, <coluna_datas>)
CLOSINGBALANCEMONTH (<expressão>, <coluna_datas>)
CLOSINGBALANCEQUARTER (<expressão>, <coluna_datas>)
CLOSINGBALANCEYEAR (<expressão>, <coluna_datas>)

Apenas explicando um pouco dos conceitos destas funções. Para alguns as explicações vão parecer meio obvias, mas é
importante nivelar todos num mesmo patamar de conhecimento. As funções que começam com OPENING, de abertura,
é baseado na última data do período anterior. Aquelas que começam com CLOSING, de fechamento, tratam a última
data do período atual. O balanço de abertura para qualquer período é o mesmo que o balanço de fechamento do período
anterior.

Há alguma das funções citadas e não detalhadas que queiram um maior detalhamento? Se sim deixe um comentário ao
final neste artigo que daremos mais detalhes da função de inteligência de dados temporais solicitada.

Marcar como tabela de data. Entenda melhor.


Quando se aplica a configuração “Marcar como tabela de data” a uma tabela, o DAX automaticamente inclui uma função
ALL sobre esta tabela em cada fórmula CALCULATEcom um filtro sobre coluna utilizado dentro da expressão. Por
exemplo, se marcar uma tabela de nome “Calendário” como tabela de data utilizando a coluna “Date” para isto, dá para
escrever a seguinte expressão.
1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 DATESYTD ( CalendarioDAX[Date] )
4)

Automaticamente a lógica do DAX irá incluir uma função ALL para a tabela “Calendário”, removendo qualquer filtro
das outras colunas da mesma tabela. Por trás a expressão ficaria assim.
1 CALCULATE (
2 SUM ( Vendas[Total Venda] );
3 DATESYTD ( CalendarioDAX[Date] )
4 ALL ( CalendarioDAX )
5)
Caso esteja utilizando a tabela Calendário com uma coluna de tipo de Data como chave primária para os
relacionamentos, mesmo se não aplicar “Marcar como tabela de data” as funções de inteligência de tempo funcionarão
normalmente. Isto porque é uma coluna de tipo Data no relacionamento.

Caso o relacionamento da tabela Calendário não seja a partir de uma coluna do tipo Data, aí sim será necessário utilizar
a configuração “Marcar como tabela de data” para as funções de inteligência de tempo funcionarem. Ou então pode
incluir manualmente a função ALL nas funções que irá utilizar em conjunto para que funcionem adequadamente.

Conclusão
As funções de inteligência do tempo são um dos grandes trunfos da linguagem DAX. Elas dão uma nova perspectiva no
trabalho com datas dentro do Power BI ou Power Pivot, deixam esta atividade realmente mais inteligente.

Possibilitam comparativos e cálculos que não é possível com fórmulas de excel ou outras ferramentas de mercado.
Deixam o Power BI ainda mais power.
Não deixe de baixar o arquivo do Power BI Desktop com a aplicação prática de todas as funções que falamos neste
artigo. Com este arquivo é possível consultar a qualquer tempo como as funções de inteligência de dados temporais
funcionam e com isso lhe garantir resolver suas dúvidas rapidamente. Aproveite e baixe o arquivo aqui.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender
melhor sobre o assunto. Ajude-nos também a espalhar bons conteúdos sobre o Power BI.
APRENDA DAX
APRENDA A UTILIZAR A FUNÇÃO ALLSELECTED E AS
OUTRAS FUNÇÕES QUE LEVAM ALL NO NOME
Aprenda a utilizar todas a função ALLSELECTED e as outras funções ALL disponíveis na linguagem DAX, com suas
aplicações dentro do Power BI. As 4 funções tratadas neste artigo são ALL, ALLSELECTED, ALLNOBLANKROW,
ALLEXCEPT. É só deslizar para baixo para aprender mais sobre estas funções e tirar aquela dúvida que está te
mantando.

Estas funções são do grupo de funções de Filtro, além destas, há outras funções para filtrar informações que são
interessantes de se aprender. Mas neste tópico trataremos somente das que levam ALL no nome.

Temos um e-book com outras funções. É gratuito e oferecemos a todos que querem aprender mais sobre linguagem
DAX e Power BI. Clique na figura abaixo e baixe seus e-book, totalmente gratuito.

Antes de mais nada baixe o arquivo do Power BI Desktop em que fizemos todas as fórmulas por este link.
Inserindo uma nova medida no Power BI
Caso ainda não saiba como criar uma medida, segue abaixo um pequeno passa a passo, simples. Todas as fórmulas que
utilizaremos aqui seguirá este mesmo padrão.

No Power BI Desktop, conforme a tela abaixo, clique na faixa de opções Modelagem (1) em seguida clique em Nova
Medida (2), será aberta uma linha para você digitar a nova medida que será criada (3). Muito simples, não é?
Função ALL
Explicamos a função ALL no artigo: 5 funções DAX para usar muito no Power BI , clique e veja como esta função é
utilizada geralmente.

Ela retorna todas as linhas de uma tabela, ou todos os valores de uma coluna. Ignora assim qualquer um dos filtros
feitos na visualização. A função ALL é utilizada em casos que o cálculo não deve levar em conta nenhum dos filtros,
precisando apresentar valor cheio. Ou mesmo quando se necessita dividir algum valor que responde ao filtro por um
denominador que não responde.

Ela não pode ser utilizada sozinha e sim como uma função intermediária.

Função ALLSELECTED
Esta função faz com que seu cálculo respeite o contexto dos itens selecionados. Enquanto a função ALL remove todos
os filtros do cálculo a função ALLSELECTED considera os filtros no cálculo, desconsiderando apenas os filtros e
agrupamentos de colunas e linhas.

Vou me explicar melhor com base na figura abaixo:


Este é o exemplo que estamos disponibilizando para acompanhar todas as funções deste artigo. Clique para baixar o
modelo em PBIX.

Veja acima que a tabela soma o Total de Vendas de produtos (Coluna: Total Venda). Nesta tabela temos o percentual
das vendas de cada mês em relação ao ano todo (Coluna: % Vendas ALL), esta coluna foi feita utilizando a função ALL
(2). Temos também o percentual das vendas de cada mês considerando somente os meses selecionados (Coluna: %
Vendas ALLSELECTED), esta coluna foi feita utilizando a função ALLSELECTED (3).
Vejam que selecionamos 4 meses (1) e a fórmula que utilizamos (ALLSELECTED) respondeu a seleção e calculou o
percentual somente em relação a esta seleção. Dividiu cada um dos meses nas linhas pela soma de todos os meses
selecionados. Por isso falamos em contexto.

Estrutura da fórmula: ALLSELECTED (<tabela> ou <coluna>)

Nos parâmetros, podemos usar o nome de uma tabela ou coluna existente, neste caso não pode ser uma expressão.

Esta função retorna um valor que responde ao contexto, mas não considera filtros de coluna e linha, ou seja, retém
todos os filtros de contexto que não sejam filtros de linhas e de colunas. Diferente da função ALL que não considera
filtro algum.

Abaixo está como escrevemos a função que gerou a figura acima no exemplo disponibilizado:
1 Total Vendas ALLSELECTED =
2 CALCULATE ( SUM ( Vendas[Total Venda] ); ALLSELECTED ( Vendas ) )

No exemplo, utilizamos o resultado do % de vendas com a função ALLSELECTED, com um gráfico de cascata (waterfall).
Este é um dos melhores gráficos para apresentar este tipo de resultado. Veja como ficou.
A função ALLSELECTED é complexa, tem diferenças em seu comportamento, neste artigo não entraremos em todas as
variantes de resultados que a função pode trazer, mas futuramente teremos um artigo completo sobre esta função
específica.

Função ALLEXCEPT
Esta função tem quase a mesma lógica do da função ALLSELECTED, mas com efeito contrário. A função ALLEXCEPT
remove do resultado os filtros de contexto, exceto filtros que foram aplicados em colunas específicas no campo coluna
da fórmula.
Estrutura da fórmula: ALLEXCEPT (<tabela>;[<coluna>])

Primeiro determina a tabela que os filtros de contexto não serão considerados, em seguida a coluna ou colunas que
deseje que o filtro de contexto obedeça, ou seja, as colunas que especificar a frente serão consideradas no filtro. Logo
mais abaixo exemplifico melhor.

Não é possível usar expressões de tabela ou coluna dentro da função ALLEXCEPT. É uma função que não pode ser
utilizada sozinha e sim dentro de uma outra função. O valor de retorno será aquele em que a tabela colocada dentro
desta função terá seus filtros removidos, exceto os filtros que estiverem contemplado nas colunas especificadas na
continuação da função ALLEXCEPT.

Abaixo está como escrevemos a função utilizada no exemplo disponibilizado.


1 Total Vendas ALLEXCEPT =
2 CALCULATE (
3 SUM ( Vendas[Total Venda] );
4 ALLEXCEPT ( CalendarioDAX; CalendarioDAX[Date] )
5)

Para um melhor entendimento desta função vamos analisar a figura abaixo.


Vemos os filtros selecionados, de Mês (1) e Categoria (2). A coluna “%Vendas ALL” não responde a nenhum filtro
desses, pois utiliza a função ALL. A coluna “% Vendas ALLSELECTED” responde aos 2 campos de filtros, pois utiliza a
função ALLSELECTED. Já a coluna “% Vendas ALLEXCEPT” (3) responde somente ao filtro Categoria.

O motivo é porque na fórmula que colocamos acima falamos para o Power BI não considerar a tabela Calendário DAX
nos filtros. Isto a fórmula fez, exceto para a coluna “Date”. Caso fosse feito alguma segmentação de dados com a coluna
Date, este seria considerado. Visto que está na função como uma coluna que será exceção ao ALLEXCEPT.

Parece complicado, mas não é.


Abaixo fizemos uma nova função usando ALLEXCEPT, mas colocando o nome do mês para ser considerado no cálculo.
Veja como ficou a fórmula.

1 Total Vendas ALLEXCEPT_B =


2 CALCULATE (
3 SUM ( Vendas[Total Venda] );
4 ALLEXCEPT ( CalendarioDAX; CalendarioDAX[Date]; CalendarioDAX[NomeMês] )
5)

Na tabela estão, lado a lado, o resultado das duas fórmulas ALLEXCEPT para que você compare.
Perceba que estão feitos os mesmos filtros que fizemos antes, mas a tabela mostra os valores absolutos e não em
percentual. Na coluna “Total Vendas ALLEXCEPT” está o total de vendas da Categoria “Acessórios” (filtrada) sem
considerar o filtro de mês. Na Coluna “Total Vendas ALLEXCEPT_B” consta o resultado dessa última fórmula que
fizemos.

Observe que nesta última fórmula colocamos que a coluna “NomeMês” seria considerada no filtro, colocando esta
coluna nos argumentos da função ALLEXCEPT. Assim dizemos a fórmula que esta coluna não deve entrar na remoção
dos filtros. Como o nome do mês é um filtro este é considerado.

Função ALLNOBLANKROW
Esta função retorna, a partir de uma tabela determinada, todas as linhas, exceto as em branco. Ou também todos os
valores diferentes de uma coluna, exceto a linha que está em branco. Desconsidera todos os filtros de contexto
existentes.

Estrutura da fórmula: ALLNOBLANKROW (<tabela> ou <coluna>)

Somente um dos parâmetros é colocado, ou a tabela ou a coluna. Determine qual a tabela ou qual a coluna que os filtros
de contexto serão removidos.

Esta função tem boa utilidade no caso de cruzamento entre tabelas, onde falta alguma informação entre as tabelas.
Por exemplo: Na tabela de Vendas há produtos vendidos pelo vendedor “XYZ”, mas este vendedor foi retirado da tabela
Vendedores devido a desligamento.

Caso queira apresentar todas as vendas, por vendedores e dividir a proporção pelo total de vendas por vendedor, sem
considerar as vendas do vendedor demitido. Esta função pode se aplicar. Assim a função vai desconsiderar as linhas
em branco das vendas que foram feitas pelo vendedor “XYZ” do cálculo.

Ainda não temos um exemplo interessante e que resolva qualquer dúvida no assunto, assim que tivermos publicaremos
aqui. Por enquanto, caso necessite de mais esclarecimentos sobre esta função entrar no site de referência da Microsoft
clicando neste link.

Fique atento para mais artigos sobre o assunto aqui no nosso blog.

As funções de filtro têm papel importantíssimo na montagem de boas estruturas em DAX, elas resolvem muitas
necessidades de comparações entre os totais, sem levar em conta o contexto ou mesmo levando este em conta.
Utilizamos mais elas nestes casos, mas sempre há outras boas utilizações.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor
sobre o assunto.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
APRENDA DAX

AS FUNÇÕES LÓGICAS NO POWER BI. FUNÇÕES


LÓGICAS DAX.
As funções lógicas no Power BI são bem semelhantes às utilizadas no excel. A linguagem DAX (Data Analysis
Expression) é a utilizada para criar funções no Power BI.

Estas funções lógicas no Power BI são utilizadas para checar as possibilidades de uma expressão e retornar
informações sobre um valor baseado numa condição ou conjunto de condições. Como exemplo temos a função IF (SE)
que checa o resultado de uma expressão ou cria resultados condicionais.

Vamos tratar neste artigo mais detalhadamente as principais funções lógicas no Power BI. As que são frequentemente
utilizadas nos modelos de dados. Disponibilizamos também um exemplo prático de cada uma. Assim você consegue
ver na prática como são utilizadas. Baixe este exemplo para facilitar seu aprendizado.

Lista das funções lógicas no Power BI (DAX)


 AND
 FALSE
 IF
 IFERROR
 NOT
 OR
 SWITCH
 TRUE
Referência: MSDN MICROSOFT

Inserindo uma nova medida no Power BI

Caso ainda não saiba como criar uma medida, segue abaixo um pequeno passa a passo, simples. Todas as fórmulas que
utilizaremos aqui seguirá este mesmo padrão.

No Power BI Desktop, conforme a tela abaixo, clique na faixa de opções Modelagem (1) em seguida clique em Nova
Medida (2), será aberta uma linha para você digitar a nova medida que será criada (3). Muito simples, não é?
IF

A função IF verifica se a condição fornecida como argumento foi atendida, caso seja retornará o valor atribuído como
verdadeiro e se não atender retornará o valor atribuído para o falso.

Estrutura da fórmula: IF (<teste lógico>;<valor se verdadeiro>;<valor se falso>)


Termo Definição

teste lógico Qualquer valor ou expressão que possa ser avaliada como VERDADEIRO ou FALSO.

O valor retornado quando o teste lógico é VERDADEIRO. Se ele for omitido, o termo “TRUE”
valor se verdadeiro será retornado.

O valor retornado quando o teste lógico é FALSO. Se ele for omitido, o termo “FALSE” será
valor se falso retornado.

Caso o valor de <valor se verdadeiro> ou <valor se falso> for omitido, será tratado pelo IF como um valor vazio (“”). Se
o valor referenciado na expressão for uma coluna, será retornado um valor que corresponde à linha atual.

Exemplo 1

1 Exemplo de Função IF 1 =
2 IF ( MAX ( Funcionarios[Data Status] ) = BLANK (); "Funcionário Ativo"; "" )

Neste exemplo, caso não tenha nenhuma data na coluna “Data Status”, significa que o funcionário está ativo. Veja no
quadro o resultado.
Exemplo 2
1 Exemplo de Função IF 2 =
2 IF (
3 'Funções'[01-Função IF 1] = BLANK ();
4 "";
5 IF (
6 MAX ( Funcionarios[Status] ) <> "Demissão"
7 && YEAR ( MAX ( Funcionarios[Admissão] ) ) < 2010;
8 "Muito experiente";
9 IF (
10 MAX ( Funcionarios[Status] ) <> "Demissão"
11 && YEAR ( MAX ( Funcionarios[Admissão] ) ) < 2016;
12 "Experiente";
13 "Pouco experiente"
14 )
15 )
16 )

Neste exemplo, utilizamos três funções IF aninhadas para retornar quatro condições diferentes. A primeira é que se o
funcionário não for ativo retornará um valor em branco. Caso seja ativo tem mais outras três condições. Se tiver sido
admitido antes de 2010, entre 2010 e 2015 e por fim a partir de 2016. Atendendo cada uma das condições retornará
um texto diferente.
AND

Esta função verifica se os dois argumentos são verdadeiros, retorna um resultado VERDADEIRO se forem. Caso
contrário retornará FALSO. Haverá assim dois resultados possíveis dependendo da combinação de valores disponíveis
e testadas.

Estrutura da fórmula: AND (<lógica1>;<lógica2>)

<lógica1>,<lógica2>, corresponde aos valores a serem verificados, pode ser utilizado valores ou expressões.

Diferentemente da fórmula utilizada no excel, em DAX esta função aceita apenas dois argumentos. Para múltiplos
argumentos será necessário criar uma série de cálculos combinando funções ou simplificar utilizando o operador &&
(é o mesmo que AND e note que utilizamos na hora de explicar a função IF acima) para unir as funções AND numa
expressão mais simples.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:


1 Exemplo da função AND =
2 IF (
3 AND (
4 MAX ( Funcionarios[Data Status] ) <> BLANK ();
5 YEAR ( MAX ( Funcionarios[Data Status] ) ) = 2017
6 );
7 "Inativos em 2017";
8 ""
9)
Neste exemplo, utilizamos a função juntamente com o IF, utilizada para verificar se o funcionário está inativo e se
entrou como inativo em 2017. São duas condições verificadas e, sendo as duas verdadeiras retornará a mensagem de
“Inativos em 2017”.

Veja o resultado.
OR

Nesta função basta um dos argumentos ser verdadeiro para retornar o resultado como VERDADEIRO. A função
retornará FALSO se os dois argumentos não atendem nenhuma das condições.

Estrutura da fórmula: OR (<lógica1>;<lógica2>)

Serão avaliados os argumentos até que o primeiro VERDADEIRO apareça. O valor será VERDADEIRO se algum dos
argumentos for atingido, caso nenhum deles seja atingido retornará FALSO.

Do mesmo jeito que AND a função OR em DAX aceita apenas dois argumentos. Se precisar executar uma operação OR
em várias expressões, você poderá criar uma série de cálculos ou, melhor ainda, usar o operador OR (||) para unir tudo
em uma expressão mais simples.

No nosso arquivo de exemplos você encontrará o seguinte em relação a esta função.


1 Exemplo da função OR =
2 IF (
3 OR (
4 MAX ( Funcionarios[Status] ) = "Licença Maternidade";
5 MAX ( Funcionarios[Status] ) = "Auxílio Doença"
6 );
7 "Inativo";
8 ""
9)

Veja como ficou o quadro.


Além das funções lógicas no Power BI citadas neste artigo, há diversas outras funções, sejam matemáticas, estatísticas,
dentre outras. Baixe pela figura abaixo nosso e-book contendo outras funções DAX. Com certeza serão muito uteis para
você.

IFERROR

Esta função avalia uma expressão e retorna um valor especificado caso a expressão resulte em um erro; caso não tenha
erro, retorna o valor da própria expressão.

Estrutura da fórmula: IFERROR (<valor>;<valor se erro>)


O trabalho desta função é retornar valores válidos em caso de erro no cálculo, por exemplo, uma divisão por zero
resultará em erro, multiplicar valores por texto resultará em erro e assim por diante.

No caso de <valor> ou <valor se erro> for uma célula vazia, o IFERROR tratará como um valor vazio (“”).

Esta função se baseia na função IF, com as mesmas características mas com menos argumentos. Caso ocorra algum
erro, ao invés de retornar uma mensagem de erro ele retorna o valor especificado.

Segue um exemplo simples para entenderem o funcionamento


1 Exemplo Simples = IFERROR (50/0; 1)

Observe que a divisão por zero dá erro, mas no caso retornará o valor 1 e não a mensagem de erro.

SWITCH

Dentre as funções lógicas no Power BI, esta é função puramente DAX. É de grande ajuda para simplificar o uso do IF. O
que quero explicar aqui é que a função SWITCH evita utilizar um punhado de IFs. Entenderão melhor no exemplo que
damos.

A função avalia uma expressão em relação a uma lista de opções e retorna um desses resultados de acordo com o
contexto.
Estrutura da fórmula: SWITCH (<expressão>; <valor>; <resultado>; <valor1>; <resultado1>; …; <caso
contrário>)
Termo Definição

Qualquer expressão DAX que retorne um único valor escalar, onde a expressão será avaliada
expressão várias vezes (para cada linha/contexto).

valor Um valor constante a ser correspondido com os resultados.

Qualquer expressão escalar a ser avaliada se os resultados coincidirem com o valor


resultado correspondente.

Qualquer expressão escalar a ser avaliada se o resultado não coincidir com nenhum dos
caso contrário argumentos de valor.

Importante que as expressões de <resultado> e a expressão de <caso contrário> serem do mesmo tipo de dados.

Para facilitar o entendimento segue um exemplo simples.


1 Exemplo de Função SWITCH =
2 SWITCH (
3 MAX ( CalendarioDAX[Mês] );
4 1; "Janeiro";
5 2; "Fevereiro";
6 3; "Março";
7 4; "Abril";
8 5; "Maio";
9 6; "Junho";
10 7; "Julho";
11 8; "Agosto";
12 9; "Setembro";
13 10; "Outubro";
14 11; "Novembro";
15 12; "Dezembro";
16 "Mês não encontrado"
17 )

Veja o resultado gerado no arquivo que disponibilizamos para você acompanhar cada função.

Se não existisse a função SWITCH seria necessário utilizar várias funções IF aninhadas, abaixo está como ficaria com o
IF.
1 Usando IF ao INVÉS de SWITCH =
2 IF (
3 MAX ( CalendarioDAX[Mês] ) = 1;
4 "Janeiro";
5 IF (
6 MAX ( CalendarioDAX[Mês] ) = 2;
7 "Fevereiro";
8 IF (
9 MAX ( CalendarioDAX[Mês] ) = 3;
10 "Março";
11 IF (
12 MAX ( CalendarioDAX[Mês] ) = 4;
13 "Abril";
14 IF (
15 MAX ( CalendarioDAX[Mês] ) = 5;
16 "Maio";
17 IF (
18 MAX ( CalendarioDAX[Mês] ) = 6;
19 "Junho";
20 IF (
21 MAX ( CalendarioDAX[Mês] ) = 7;
22 "Julho";
23 IF (
24 MAX ( CalendarioDAX[Mês] ) = 8;
25 "Agosto";
26 IF (
27 MAX ( CalendarioDAX[Mês] ) = 9;
28 "Setembro";
29 IF (
30 MAX ( CalendarioDAX[Mês] ) = 10;
31 "Outubro";
32 IF (
33 MAX ( CalendarioDAX[Mês] ) = 11;
34 "Novembro";
35 IF ( MAX ( CalendarioDAX[Mês] ) = 12; "Dezembro"; "Mês não encontrado" )
36 )
37 )
38 )
39 )
40 )
41 )
42 )
43 )
44 )
45 )
46 )

Dá para ver claramente o quanto a função SWITCH resume e simplifica a fórmula e deixa ela mais enxuta obtendo o
mesmo resultado.

OUTRAS FUNÇÕES LÓGICAS NO POWER BI

Além das que detalhamos acima temos as funções:

Função Descrição

Sintaxe: TRUE()

A fórmula retorna o valor lógico TRUE (VERDADEIRO).


TRUE

FALSE Sintaxe: FALSE()


A fórmula retorna o valor lógico FALSE (FALSO).

Sintaxe: NOT (<lógica>)

Altera o resultado TRUE para FALSE e FALSE para TRUE. Retorna a lógica oposta para estes
valores.
NOT

Com isto falamos de todas as funções lógicas no Power BI disponíveis na linguagem DAX. São funções que serão
bastante utilizadas no dia a dia, são bem simples de serem entendidas e utilizadas.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor
sobre o assunto.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
APRENDA DAX
4 FUNÇÕES DAX SIMPLES MAS QUE VOCÊ USARÁ EM
TUDO
Por serem funções DAX simples, as funções que listamos neste artigo acabam não ganhando muito destaque em
tutoriais na internet. Mas estas funções provavelmente serão utilizadas em quase todos os modelos de dados, tanto em
Power BI quanto em Power Query.

Elas são imprescindíveis e é importante entender melhor o funcionamento destas funções DAX simples e quando é
melhor utilizá-las.

Estas funções fazem parte do grupo de funções estatísticas e matemáticas da linguagem DAX e você pode encontrar
essas e mais funções neste link. É claro que na página da Microsoft não terão explicações tão detalhadas e com exemplo
que disponibilizamos aqui, mas vale como referência.

Quer aprender mais sobre funções DAX? No e-book que oferecemos abaixo falamos mais sobre a linguagem DAX e
Power BI. Clique na figura e baixe seu e-book, totalmente gratuito.

Antes de começarmos com as explicações baixe o arquivo do Power BI Desktop em que fizemos todas as funções
DAX explicadas aqui.
4 FUNÇÕES DAX SIMPLES
Apesar de serem simples são de suma importância na confecção de um bom modelo de dados em Power BI e Power
Query. Serão muito utilizadas, falaremos aqui sobre as funções AVERAGE (Média), MAX (Máximo), MIN (Mínimo) e
SUM (Soma).
Apesar de serem simples são de suma importância na confecção de um bom modelo de dados em Power BI e Power
Query. Serão muito utilizadas, falaremos aqui sobre as funções AVERAGE (Média), MAX (Máximo), MIN (Mínimo)
e SUM (Soma).

Inserindo uma nova medida no Power BI

Caso ainda não saiba como criar uma medida, segue abaixo um pequeno passa a passo, simples. Todas as fórmulas que
utilizaremos aqui seguirá este mesmo padrão.

No Power BI Desktop, conforme a tela abaixo, clique na faixa de opções Modelagem (1) em seguida clique em Nova
Medida (2), será aberta uma linha para você digitar a nova medida que será criada (3). Muito simples, não é?
AVERAGE
Esta é a primeira das funções DAX simples que tratamos no artigo. Pertence ao grupo de funções estatísticas.
Retorna o valor da MÉDIA (aritmética) de todos os números de uma coluna

Estrutura da fórmula: AVERAGE (<coluna>)

Utilize a função AVERAGE em colunas numéricas. Retorna um número decimal como resultado, que é a média
aritmética (conhecida também como média simples) da coluna.

Ao calcular a média, lembre-se da diferença entre uma célula vazia e uma célula contendo o valor 0 (zero). Quando uma
célula contiver 0, ela será adicionada à soma de números e a linha será contada entre o número de linhas usadas como
o divisor. Porém, quando uma célula contiver um espaço em branco, a linha não será contada.

Em caso de células que contenham somente texto a função retornará espaços em branco.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:

1 Média diária de vendas = AVERAGE(Vendas[Valor])

MAX
Pertence ao grupo de funções estatísticas. Esta função retorna o maior valor numérico de uma coluna.

Estrutura da fórmula: MAX (<coluna>)


Retorna um número decimal como resultado. Deve ser utilizada em colunas numéricas. Caso a coluna não contenha
números a função retornará um espaço em branco. Células vazias, valores lógicos e texto são ignorados.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:

1 Maior valor de venda num dia = MAX(Vendas[Valor])

MIN
Pertence ao grupo de funções estatísticas. Ao contrário da função anterior, retorna o menor valor numérico de uma
coluna.

Estrutura da fórmula: MIN (<coluna>)

Retorna um número decimal como resultado. Deve ser utilizada em colunas numéricas. Caso a coluna não contenha
números a função retornará um espaço em branco. Células vazias, valores lógicos e texto são ignorados.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:

1 Menor valor de venda num dia = MIN(Vendas[Valor])


SUM
Pertence ao grupo de funções matemáticas e trigonométricas. Faz a adição de todos os valores de uma coluna.

Estrutura da fórmula: SUM (<coluna>)


Com certeza esta é, das funções DAX simples, a que mais será utilizada.

Retorna um número decimal como resultado. Para linha que não são números retornará espaços em branco.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:


1 Total de vendas = SUM(Vendas[Valor])

Estas foram as 4 funções DAX simples consideradas por nós. São funções essenciais e presentes para todos que usam
a linguagem DAX. Temos mais artigos sobre DAX aqui no site.

No artigo 5 funções DAX para usar muito no Power BI temos mais funções DAX para aprender. E se quiser saber sobre
as funções de contar linhas temos as 4 funções DAX para contar essenciais no Power BI.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor
sobre o assunto.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
APRENDA DAX
4 FUNÇÕES DAX PARA CONTAR ESSENCIAIS NO POWER
BI
As funções DAX para contar são de extrema importância em aplicações que tratam banco de dados, como o Power BI.
São por estas funções que podemos saber quantos registros há para cada critério que queremos desenvolver.

Geralmente cada linha corresponde a um registro, que pode ser uma venda, um resultado, um dia contendo uma soma
de resultados, um produto, uma definição, etc. As funções DAX para contar fazem o papel de contar cada um destes
registros. Com isto conseguimos saber, quantos produtos, quantas vendas, quantos dias, quantas ocorrências, etc…

Trataremos aqui as quatro funções mais utilizadas nos modelos de dados do Power BI. Existem outras, que tratamos
aqui no blog em outros artigos. As funções DAX para contar fazem parte do grupo de funções estatísticas da linguagem
DAX e você pode encontrar todas as outras funções deste grupo no link.

Algumas destas funções e mais você terá no e-book gratuito que oferecemos a todos que querem aprender mais sobre
linguagem DAX e Power BI. Clique na figura abaixo e baixe seu e-book, totalmente gratuito.

Antes de mais nada baixe o arquivo do Power BI Desktop em que fizemos todas as fórmulas por este link.

FUNÇÕES DAX PARA CONTAR


Inserindo uma nova medida no Power BI
Caso ainda não saiba como criar uma medida, segue abaixo um pequeno passa a passo, simples. Todas as fórmulas que
utilizaremos aqui seguirá este mesmo padrão.

No Power BI Desktop, conforme a tela abaixo, clique na faixa de opções Modelagem (1) em seguida clique em Nova
Medida (2), será aberta uma linha para você digitar a nova medida que será criada (3). Muito simples, não é?
Função COUNT

Conta o número de células de uma coluna que contém números. Esta função não conta células vazias ou em branco.

Estrutura da fórmula: COUNT (<coluna>)

Utilize a função COUNT em colunas numéricas, mas uma aplicação interessante é usar em colunas que possuem mais
de um tipo de valor. Ou seja, se uma mesma coluna tem campos de números e textos, essa função contará apenas a
quantidade de células que estão preenchidas com números.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:

Contando números = COUNT(Vendas[Data Compra])

Função COUNTA

Conta o número de células, que não estão vazias, de uma coluna. Esta função conta todos os valores da coluna, exceto
células vazias. Conta células com números, texto, datas, valores lógicos, etc.

Estrutura da fórmula: COUNTA (<coluna>)

Se precisar contar colunas que contenham somente números é melhor usar a função COUNT, dentre as funções DAX
para contar utilize esta quando a coluna conter dados não numéricos.
Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:

Contando valores = COUNTA(Local[Cidade])

Função COUNTROWS

Conta o número de linhas na tabela especificada ou em uma tabela definida por uma expressão.

Estrutura da fórmula: COUNTROWS (<tabela>)

Esta fórmula conta todas as linhas de uma tabela, independentemente se há células ou colunas vazias. Diferentemente
das duas anteriores que tratam a coluna e célula esta trata a tabela como um todo.

A fórmula COUNTROWS é muito útil para tabelas em que cada linha representa um registro único, ou seja, se contarmos
as linhas, teremos exatamente o resultado desejado.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:

Contando linhas = COUNTROWS(Calendario)


Função DISTINCTCOUNT

Esta função conta o número de células diferentes em uma coluna de números.

Estrutura da fórmula: DISTINCTCOUNT (<coluna>)

Das funções DAX para contar esta é extremamente útil para identificar a quantidade de valores únicos. Numa coluna
pode haver o mesmo valor repetindo 5, 10 ou mais vezes, ela contará este valor somente uma vez.

É possível usar colunas que contêm qualquer tipo de dados. Quando a função não localizar nenhuma linha para contar,
ela retornará BLANK; caso contrário, retornará a contagem de valores distintos.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:

Valores distintos = DISTINCTCOUNT(Vendas[Quantidade])

Com isto tratamos das 4 funções DAX para contar que consideramos essenciais a todos aqueles que trabalham com
Power BI ou Power Pivot. Há outras funções DAX para contar disponíveis que são tratadas aqui no site também.

No artigo 5 funções DAX para usar muito no Power BI temos mais sobre as funções DAX, confira, tenho certeza que vai
aprender algo que ainda não sabe.
Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor
sobre o assunto.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
APRENDA DAX
5 FUNÇÕES DAX PARA USAR MUITO NO POWER BI
Em geral as pessoas se assustam quando se fala em fórmulas e funções. Isto vale para qualquer programa que as utilize
(excel, Power BI, etc.). Neste artigo falamos de 5 funções DAX para usar e abusar no Power BI ou Power Pivot. Não são
as top mais utilizadas, mas são funções essenciais para desenvolver um bom modelo de dados.

Abaixo temos um e-book que contém além destas 5 mais outras 10 funções clique abaixo e faça o download deste
arquivo e dê uma turbinada nos seus modelos.

Se você já utiliza o Power BI já percebeu o quanto é tranquilo criar visualizações. Mas também percebeu que somente
isto não é suficiente, pois queremos também ver os dados em um período de tempo específico, com alguns filtros e com
uma informação determinada. Isto seria impossível apenas com os dados puros.

O bom que não precisar ser expert para execuções as principais funções DAX, um conhecimento básico de DAX (Data
Analysis eXpression) já resolve. Assim nosso objetivo aqui é justamente este, lhe dar algumas funções DAX para usar
em quase todos os seus modelos de dados. O legal é que estas funções não são somente para quem está começando,
quem já está na ativa e ainda não utiliza todas elas, vai aproveitar este conteúdo também.

São funções DAX para usar no seu dia a dia.

Ajudarão a tornar seu trabalho mais dinâmico, mais inteligente.


Então, nas linhas abaixo, você aprenderá sobre as funções: FILTER, ALL, RELATED, TOTALYTD e CALCULATE.
Para melhor exemplificar as funções DAX que apresentamos, baixe o arquivo do Power BI Desktop neste link.

Siga os passos de descrevemos em seguida para cada função.

No modelo que você acabou de baixar (se não baixou, aproveite este momento para fazer isto), há 3 tabelas, veja na
figura abaixo como são estas tabelas. Veja as mesmas na visão “Dados”.
Na tela abaixo veja como ficou o relacionamento entre as tabelas na visão “Relacionamentos”.

Criar as 5 funções DAX para usar no Power BI


1. Função FILTER

Esta função é utilizada para retornar um subconjunto de uma tabela ou expressão.

Esta fórmula tem a seguinte estrutura: FILTER (<tabela>, <filtro>)


Para exemplificar vamos dizer que você queira saber quantas compras foram feitas e que somaram mais que R$ 1.500.
Neste exemplo vamos utilizar também a função COUNTROWS, que conta o número de linhas em uma tabela específica
e utilizando junto com FILTER consegue retornar uma contagem mais direcionada.
Na visão Relatórios clique (1) na Tabela Vendas conforme tela acima, em seguida escolha a faixa de
opções Modelagem e clique (2) em Nova Medida. Será aberto uma barra para digitar a medida, apague o que está
escrito e digite a linha abaixo:
Vendas acima de 1500 = COUNTROWS(FILTER(Vendas;Vendas[Valor]>1500))
O primeiro parâmetro “Vendas” identifica uma tabela ou uma expressão que resulta uma tabela. O segundo parâmetro
“Vendas[Valor]>1500” representa uma expressão de falso/verdadeiro que avalia cada linha da tabela encontrando
aquelas que satisfazem a regra.

A função FILTER nunca é usada sozinha, sempre é utilizada em conjunto com uma outra função. No exemplo acima
FILTER serviu para retornar dados dentro de uma condição e em seguida a outra função contou este resultado.

Veja o resultado (foi utilizada a visualização Cartão)

2. Função ALL
Esta função é utilizada para retornar todas as linhas de uma tabela ou valores em uma coluna, ignorando qualquer
filtro que tenha sido aplicado.

Esta fórmula tem a seguinte estrutura: ALL (<tabela> ou <coluna>)

Na imagem abaixo note que uma das cidades está desmarcada no filtro, com isto o resultado não está considerando
esta cidade.
Queremos manter os filtros, mas em um dos cartões não queremos que os filtros tenham nenhuma influência, então a
função para isso é ALL. Vamos criar uma nova medida e digitar a linha abaixo.

Todas Vendas Puro = COUNTROWS(ALL(Vendas))


Crie um Cartão novo com esta nova medida e verá que o resultado não leva em conta nenhum filtro feito.
Assim como a função FILTER, esta função não pode ser usada sozinha, sempre estará com outra função em conjunto.
No caso utilizamos também a função COUNTROWS para contar todas as linhas sem exceção.

Essa função pode ser utilizada tanto numa tabela quanto numa coluna, limpando qualquer filtro colocado nas
visualizações.

3. Função RELATED

A função RELATED retorna um valor relacionado de outra tabela.

Esta fórmula tem a seguinte estrutura: RELATED (<coluna>)

Agora queremos filtrar as vendas feitas em São Paulo, mas o nome da cidade está numa tabela diferente, pois na tabela
de vendas tem somente o código da cidade, mas como há um relacionamento entre as tabelas, podemos utilizar esta
função.

Para contar a quantidade de vendas feitas em São Paulo, buscando esta informação de outra tabela, vamos utilizar a
linha abaixo, criando uma nova medida.

Qtde Vendas SP =
COUNTROWS(FILTER(ALL(Vendas);RELATED(Local[Cidade])=”São Paulo”))
Abaixo o resultado, veja que mantemos o filtro.
Utilizamos as 3 funções aprendidas até o momento nesta fórmula, além de COUNTROWS, para fazer a contagem das
linhas que determinam o número de vendas. A função ALL utilizada fará com que a fórmula não considere nenhum dos
filtros aplicados. A função RELATED, neste caso, serviu para apurar mais o filtro e buscar somente informações da
cidade de São Paulo, utilizada em conjunto com a função FILTER.

Colocamos aqui as funções DAX para usar todos os exemplos apresentados de uma vez só.

4. Funções TOTALYTD / TOTALQTD / TOTALMTD

Estas funções são de inteligência de tempo, este tipo de funções são uma das grandes vantagens da Linguagem DAX.
Através delas, como o próprio nome diz, se consegue mais inteligência na análise de dados que envolvem tempo.
Com estas funções é possível manipular dados de período de tempo, tais como, dias, meses, trimestres e anos. Com elas
se cria comparativos entre os períodos. No exemplo vamos utilizar a função TOTALYTD.

Esta fórmula tem a seguinte estrutura: TOTALYTD (<expressão>;<datas>;<filtro>;<data fim ano>)

Vamos então dizer que se queira ver o total de vendas do ano até o momento. Esta função dará este resultado
facilmente. Digite a linha abaixo criando uma Nova Medida (no arquivo está na aba “TOTALYTD”).

Total Vendas Ano = TOTALYTD(SUM(Vendas[Valor]);Calendario[Datas])

O primeiro parâmetro “Vendas[Valor]” identifica a coluna que será agregada. Pode ser uma expressão que traga valores
escalados ou únicos. Neste caso utilizamos junto ao primeiro parâmetro uma expressão com a função SUM que tem o
papel de somar todos os valores da coluna determinada.
O segundo parâmetro “Calendario[Datas]” é onde contém todas as datas possíveis para o relatório. A grande vantagem
de funções de inteligência de tempo é eliminar a necessidade de utilização de fórmulas complexas para se chegar no
mesmo resultado. Viu como foi simples?

No arquivo de exemplo disponibilizado mude as datas de início de fim no filtro e veja que os valores mudam conforme
o período que deseja visualizar.

5. Função CALCULATE

Esta função avalia uma expressão em um contexto que pode ser mudado por filtros específicos. Das 5 funções DAX para
usar apresentadas aqui, esta provavelmente será uma das que você mais utilizará.

Esta fórmula tem a seguinte estrutura: CALCULATE(<expressão>;<filtro1>;<filtro2>;…)

Para este exemplo vamos chegar no resultado do total de valor vendido para todas as cidades. Dá para chegar no
resultado utilizando várias expressões fragmentadas, criando uma fórmula longa e trabalhosa. Mas usando
CALCULATE isto é feito de forma limpa e rápida. Veja a linha abaixo.

Vendas Todas Cidades =


CALCULATE(SUM(Vendas[Valor]);ALL(Local[Cidade]))
O primeiro parâmetro “SUM(Vendas[Valor])” traz a coluna que terá seus valores agregados. O segundo parâmetro
“ALL(Local[Cidade])”, como utiliza a função ALL desconsidera qualquer filtro feito e ao mesmo tempo faz com que o
cálculo seja aplicado em relação às cidades. Veja na figura que mesmo com duas cidades não selecionadas a soma das
Vendas é total.

A função CALCULATE é uma das mais úteis e poderosas funções DAX, é como se fosse um “SE” superpoderoso que junta
vários SES em uma única expressão.

Esta função tem algumas regras, veja:

 Os parâmetros de filtros não podem se referenciar à Medidas;


 As expressões não podem usar funções que procuram ou retornam tabelas inteiras;
 São funções DAX bastante úteis no Power BI e em qualquer aplicação que utilize esta linguagem. Elas ajudarão
muito a melhorar suas análises e apresentações e lhe darão eficiência na hora de montar excelentes modelos.
Consulte mais funções DAX para usar na biblioteca de referência da Microsoft.

FUNÇÕES DAX PARA CONTAR


Inserindo uma nova medida no Power BI
Caso ainda não saiba como criar uma medida, segue abaixo um pequeno passa a passo, simples. Todas as fórmulas que
utilizaremos aqui seguirá este mesmo padrão.

No Power BI Desktop, conforme a tela abaixo, clique na faixa de opções Modelagem (1) em seguida clique em Nova Medida (2),
será aberta uma linha para você digitar a nova medida que será criada (3). Muito simples, não é?
Função COUNT
Conta o número de células de uma coluna que contém números. Esta função não conta células vazias ou em branco.

Estrutura da fórmula: COUNT (<coluna>)


Utilize a função COUNT em colunas numéricas, mas uma aplicação interessante é usar em colunas que possuem mais de um tipo
de valor. Ou seja, se uma mesma coluna tem campos de números e textos, essa função contará apenas a quantidade de células
que estão preenchidas com números.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:

Contando números = COUNT(Vendas[Data Compra])


Função COUNTA
Conta o número de células, que não estão vazias, de uma coluna. Esta função conta todos os valores da coluna, exceto células
vazias. Conta células com números, texto, datas, valores lógicos, etc.

Estrutura da fórmula: COUNTA (<coluna>)

Se precisar contar colunas que contenham somente números é melhor usar a função COUNT, dentre as funções DAX para contar
utilize esta quando a coluna conter dados não numéricos.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:

Contando valores = COUNTA(Local[Cidade])

Função COUNTROWS
Conta o número de linhas na tabela especificada ou em uma tabela definida por uma expressão.

Estrutura da fórmula: COUNTROWS (<tabela>)

Esta fórmula conta todas as linhas de uma tabela, independentemente se há células ou colunas vazias. Diferentemente das duas
anteriores que tratam a coluna e célula esta trata a tabela como um todo.

A fórmula COUNTROWS é muito útil para tabelas em que cada linha representa um registro único, ou seja, se contarmos as linhas,
teremos exatamente o resultado desejado.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:


Contando linhas = COUNTROWS(Calendario)

Função DISTINCTCOUNT
Esta função conta o número de células diferentes em uma coluna de números.

Estrutura da fórmula: DISTINCTCOUNT (<coluna>)

Das funções DAX para contar esta é extremamente útil para identificar a quantidade de valores únicos. Numa coluna pode haver o
mesmo valor repetindo 5, 10 ou mais vezes, ela contará este valor somente uma vez.

É possível usar colunas que contêm qualquer tipo de dados. Quando a função não localizar nenhuma linha para contar, ela retornará
BLANK; caso contrário, retornará a contagem de valores distintos.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:

Valores distintos = DISTINCTCOUNT(Vendas[Quantidade])

Com isto tratamos das 4 funções DAX para contar que consideramos essenciais a todos aqueles que trabalham com Power BI ou
Power Pivot. Há outras funções DAX para contar disponíveis que são tratadas aqui no site também.

No artigo 5 funções DAX para usar muito no Power BI temos mais sobre as funções DAX, confira, tenho certeza que vai aprender
algo que ainda não sabe.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o
assunto.
Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.
APRENDA A UTILIZAR A FUNÇÃO ALLSELECTED E AS
OUTRAS FUNÇÕES QUE LEVAM ALL NO NOME
Aprenda a utilizar todas a função ALLSELECTED e as outras funções ALL disponíveis na linguagem DAX, com suas aplicações
dentro do Power BI. As 4 funções tratadas neste artigo são ALL, ALLSELECTED, ALLNOBLANKROW, ALLEXCEPT. É só deslizar
para baixo para aprender mais sobre estas funções e tirar aquela dúvida que está te mantando.

Estas funções são do grupo de funções de Filtro, além destas, há outras funções para filtrar informações que são interessantes de
se aprender. Mas neste tópico trataremos somente das que levam ALL no nome.

Temos um e-book com outras funções. É gratuito e oferecemos a todos que querem aprender mais sobre linguagem DAX e Power
BI. Clique na figura abaixo e baixe seus e-book, totalmente gratuito.

Antes de mais nada baixe o arquivo do Power BI Desktop em que fizemos todas as fórmulas por este link.

Inserindo uma nova medida no Power BI


Caso ainda não saiba como criar uma medida, segue abaixo um pequeno passa a passo, simples. Todas as fórmulas que
utilizaremos aqui seguirá este mesmo padrão.

No Power BI Desktop, conforme a tela abaixo, clique na faixa de opções Modelagem (1) em seguida clique em Nova Medida (2),
será aberta uma linha para você digitar a nova medida que será criada (3). Muito simples, não é?
Função ALL
Explicamos a função ALL no artigo: 5 funções DAX para usar muito no Power BI , clique e veja como esta função é utilizada
geralmente.

Ela retorna todas as linhas de uma tabela, ou todos os valores de uma coluna. Ignora assim qualquer um dos filtros feitos na
visualização. A função ALL é utilizada em casos que o cálculo não deve levar em conta nenhum dos filtros, precisando apresentar
valor cheio. Ou mesmo quando se necessita dividir algum valor que responde ao filtro por um denominador que não responde.
Ela não pode ser utilizada sozinha e sim como uma função intermediária.

Função ALLSELECTED
Esta função faz com que seu cálculo respeite o contexto dos itens selecionados. Enquanto a função ALL remove todos os filtros do
cálculo a função ALLSELECTED considera os filtros no cálculo, desconsiderando apenas os filtros e agrupamentos de colunas e
linhas.

Vou me explicar melhor com base na figura abaixo:

Este é o exemplo que estamos disponibilizando para acompanhar todas as funções deste artigo. Clique para baixar o modelo em
PBIX.
Veja acima que a tabela soma o Total de Vendas de produtos (Coluna: Total Venda). Nesta tabela temos o percentual das vendas
de cada mês em relação ao ano todo (Coluna: % Vendas ALL), esta coluna foi feita utilizando a função ALL (2). Temos também o
percentual das vendas de cada mês considerando somente os meses selecionados (Coluna: % Vendas ALLSELECTED), esta
coluna foi feita utilizando a função ALLSELECTED (3).

Vejam que selecionamos 4 meses (1) e a fórmula que utilizamos (ALLSELECTED) respondeu a seleção e calculou o percentual
somente em relação a esta seleção. Dividiu cada um dos meses nas linhas pela soma de todos os meses selecionados. Por isso
falamos em contexto.

Estrutura da fórmula: ALLSELECTED (<tabela> ou <coluna>)

Nos parâmetros, podemos usar o nome de uma tabela ou coluna existente, neste caso não pode ser uma expressão.

Esta função retorna um valor que responde ao contexto, mas não considera filtros de coluna e linha, ou seja, retém todos os filtros
de contexto que não sejam filtros de linhas e de colunas. Diferente da função ALL que não considera filtro algum.

Abaixo está como escrevemos a função que gerou a figura acima no exemplo disponibilizado:

1 Total Vendas ALLSELECTED =

2 CALCULATE ( SUM ( Vendas[Total Venda] ); ALLSELECTED ( Vendas ) )

No exemplo, utilizamos o resultado do % de vendas com a função ALLSELECTED, com um gráfico de cascata (waterfall). Este é
um dos melhores gráficos para apresentar este tipo de resultado. Veja como ficou.
A função ALLSELECTED é complexa, tem diferenças em seu comportamento, neste artigo não entraremos em todas as variantes
de resultados que a função pode trazer, mas futuramente teremos um artigo completo sobre esta função específica.

Função ALLEXCEPT
Esta função tem quase a mesma lógica do da função ALLSELECTED, mas com efeito contrário. A função ALLEXCEPT remove do
resultado os filtros de contexto, exceto filtros que foram aplicados em colunas específicas no campo coluna da fórmula.

Estrutura da fórmula: ALLEXCEPT (<tabela>;[<coluna>])


Primeiro determina a tabela que os filtros de contexto não serão considerados, em seguida a coluna ou colunas que deseje que o
filtro de contexto obedeça, ou seja, as colunas que especificar a frente serão consideradas no filtro. Logo mais abaixo exemplifico
melhor.

Não é possível usar expressões de tabela ou coluna dentro da função ALLEXCEPT. É uma função que não pode ser utilizada
sozinha e sim dentro de uma outra função. O valor de retorno será aquele em que a tabela colocada dentro desta função terá seus
filtros removidos, exceto os filtros que estiverem contemplado nas colunas especificadas na continuação da função ALLEXCEPT.

Abaixo está como escrevemos a função utilizada no exemplo disponibilizado.

1 Total Vendas ALLEXCEPT =

2 CALCULATE (

3 SUM ( Vendas[Total Venda] );

4 ALLEXCEPT ( CalendarioDAX; CalendarioDAX[Date] )

5)

Para um melhor entendimento desta função vamos analisar a figura abaixo.


Vemos os filtros selecionados, de Mês (1) e Categoria (2). A coluna “%Vendas ALL” não responde a nenhum filtro desses, pois
utiliza a função ALL. A coluna “% Vendas ALLSELECTED” responde aos 2 campos de filtros, pois utiliza a função ALLSELECTED.
Já a coluna “% Vendas ALLEXCEPT” (3) responde somente ao filtro Categoria.

O motivo é porque na fórmula que colocamos acima falamos para o Power BI não considerar a tabela Calendário DAX nos filtros.
Isto a fórmula fez, exceto para a coluna “Date”. Caso fosse feito alguma segmentação de dados com a coluna Date, este seria
considerado. Visto que está na função como uma coluna que será exceção ao ALLEXCEPT.

Parece complicado, mas não é.

Abaixo fizemos uma nova função usando ALLEXCEPT, mas colocando o nome do mês para ser considerado no cálculo. Veja
como ficou a fórmula.
1 Total Vendas ALLEXCEPT_B =

2 CALCULATE (

3 SUM ( Vendas[Total Venda] );

4 ALLEXCEPT ( CalendarioDAX; CalendarioDAX[Date]; CalendarioDAX[NomeMês] )

5)

Na tabela estão, lado a lado, o resultado das duas fórmulas ALLEXCEPT para que você compare.

Perceba que estão feitos os mesmos filtros que fizemos antes, mas a tabela mostra os valores absolutos e não em percentual. Na
coluna “Total Vendas ALLEXCEPT” está o total de vendas da Categoria “Acessórios” (filtrada) sem considerar o filtro de mês. Na
Coluna “Total Vendas ALLEXCEPT_B” consta o resultado dessa última fórmula que fizemos.
Observe que nesta última fórmula colocamos que a coluna “NomeMês” seria considerada no filtro, colocando esta coluna nos
argumentos da função ALLEXCEPT. Assim dizemos a fórmula que esta coluna não deve entrar na remoção dos filtros. Como o
nome do mês é um filtro este é considerado.

Função ALLNOBLANKROW
Esta função retorna, a partir de uma tabela determinada, todas as linhas, exceto as em branco. Ou também todos os valores
diferentes de uma coluna, exceto a linha que está em branco. Desconsidera todos os filtros de contexto existentes.

Estrutura da fórmula: ALLNOBLANKROW (<tabela> ou <coluna>)


Somente um dos parâmetros é colocado, ou a tabela ou a coluna. Determine qual a tabela ou qual a coluna que os filtros de
contexto serão removidos.

Esta função tem boa utilidade no caso de cruzamento entre tabelas, onde falta alguma informação entre as tabelas.

Por exemplo: Na tabela de Vendas há produtos vendidos pelo vendedor “XYZ”, mas este vendedor foi retirado da tabela
Vendedores devido a desligamento.

Caso queira apresentar todas as vendas, por vendedores e dividir a proporção pelo total de vendas por vendedor, sem considerar
as vendas do vendedor demitido. Esta função pode se aplicar. Assim a função vai desconsiderar as linhas em branco das vendas
que foram feitas pelo vendedor “XYZ” do cálculo.

Ainda não temos um exemplo interessante e que resolva qualquer dúvida no assunto, assim que tivermos publicaremos aqui. Por
enquanto, caso necessite de mais esclarecimentos sobre esta função entrar no site de referência da Microsoft clicando neste link.
COMO CRIAR COLUNA CONDICIONAL NO POWER BI COM
POWER QUERY
Você vai descobrir que é possível fazer praticamente tudo utilizando esta forma de adicionar colunas. Leia este artigo e aprenda a
criar coluna condicional no Power BI através do Editor de Consultas. Este artigo também serve para quem quer fazer o mesmo no
excel através do Power Query.

Se quer saber mais sobre o Power Query e a Linguagem M (a linguagem do Power Query) acesse este artigo: A LINGUAGEM DA
POWER QUERY NO POWER BI.
Em muitos casos será necessário colocar expressões condicionais no seu modelo. A função IF, que faz isso na linguagem DAX, é
uma função que considera linha a linha. Dependendo do tamanho do seu modelo, isso pode ser um problema. Pode causar muita
utilização de memória e com isso deixar o processamento do relatório lento. Nestes casos é melhor fazer uma coluna condicional
no Power BI usando o Power Query.

A opção de adicionar coluna condicional à primeira vista pode parecer um pouco limitada, mas mostraremos abaixo que é
perfeitamente utilizável em cenários complexos também. Será útil em vários casos.

Para seguir todas as etapas e criar coluna condicional no Power BI com todas as possibilidades, faça o download da base que
utilizamos como exemplo. Com isso você pode seguir as demonstrações abaixo da mesma forma como apresentamos a seguir.

Adicionando coluna condicional com Power Query


Na imagem abaixo temos a coluna com o número de filhos (Nro_Filhos). O que queremos neste primeiro exemplo é classificar as
famílias, ou seja, dizer o tamanho da família conforme a quantidade de filhos. Vamos classificar como “Família Pequena” de 0 a 1
filho, como “Família Média” de 2 a 3 filhos e “Família Grande” acima de 3 filhos.
Importe esta tabela para o Power BI ou Power Query do Excel através do Obter Dados. Seguiremos a partir de agora pelo Power
BI, mas o processo no Power Query do excel é o mesmo.
Após os dados extraídos da base que disponibilizamos entre no Editor de Consultas. Então vá até a faixa de opções Adicionar
Coluna e depois Coluna Condicional.

Após clicar em coluna condicional aparecerá a tela abaixo.


Nesta tela, inicialmente, terá apenas uma linha para a regra, então clique em Adicionar Regra. No campo “Nome da nova coluna”
coloque o nome para esta coluna. Nas linhas de regras escolha a coluna em “Nome da Coluna”, no caso será a coluna
“Nro_Filhos”. Defina o restante das regras, Operador, Valor, Saída. Por fim o “Caso Contrário”, tudo conforme feito na imagem
acima. Terminando tudo, clique em OK.

Vemos na criação da coluna condicional (figura acima) a seguinte lógica. Se “Nro_Filhos” for menor ou igual a 1 então “Pequena”.
Senão se “Nro_Filhos” for menor ou igual a 1 então “Média”, caso contrário (se não atender nenhuma das regras) “Grande”.
Na hora de definir as regras e inserir os parâmetros enquanto cria a coluna condicional no Power BI, é possível fazer algumas
escolhas. Além de Adicionar Regraconforme falado acima pode-se também escolher entre valores estáticos (Digite o
valor), valores de uma coluna (Selecionar uma coluna) ou parâmetrospreviamente definidos. Veja isso na figura abaixo.

É possível também excluir ou mudar a ordem das condições para cima ou para baixo. Veja onde na figura abaixo.
Mas como adicionar os operadores AND e OR?
Vimos até agora que criar uma coluna condicional com Power Query é bem simples. Mas você deve estar se perguntando como
incluir as lógicas do AND ou OR nas condicionais? Muitas vezes a condições devem levar em conta mais de uma coluna ou mais e
de uma situação. Nesses casos é necessário utilizar os operadores lógicos AND e OR.

No processo de criar uma coluna condicional no Power BI (excel também), temos três formas para considerar estes operadores.

Para demonstrar estas três formas vamos criar uma condicional que retorne um ”Título” baseado nas colunas “Estado Civil” e
“Gênero”. Já existe esta coluna “Título”, mas está errada e faltando informações. No quadro abaixo está a lógica que iremos
implementar.

Na base de dados não há o gênero “Outro”, mas vamos utilizá-lo na lógica. Com isso, se você precisar de algo neste sentido já
está contemplado na explicação.

1ª Forma: Ordem das Condições


A ordem das condições tem impacto no resultado. Tenha isso em mente. É por isso que há a possibilidade de mover as condições
para cima ou para baixo na lista.

Observe que numa operação condicional há três partes:

Se (Lógica) é verdadeiro, então (faça isso) caso contrário (faça aquilo)


Então pense o seguinte: a execução somente vai para a próxima condição, SOMENTE SE não atender a condição anterior.
Seguindo esta forma de pensar, abaixo está a solução para a primeira forma.

A primeira e segunda condições são bem simples, apenas precisam levar em conta a coluna “Gênero”, pois não há necessidade
de checar nada na coluna “Estado Civil” para chegar na conclusão. O grande truque está na terceira condição. Nesta há
necessidade de checar o “Estado Civil”. Mas somente chegará nesta terceira regra se as duas primeiras não forem verdadeiras.
Isso implica que somente chegará lá se o Gênero não for masculino ou outro.

A terceira condição será acionada somente se for feminino. Nesse momento é que precisará checar a coluna “Estado Civil”, se
solteiro será Srta., caso contrário Sra.

Sabemos então como funciona o Se, o Senão se e o Caso contrário. Entendemos também que colocar as condições na ordem
correta interferirá no resultado da condicional. Praticamente dá para usar esta forma em todos os casos. Basta mudar a forma de
pensar, colocar as condições numa ordem lógica considerando o alcance de cada regra.

2ª Forma: Concatenando as colunas


Esta é uma forma mais simples para criar uma coluna condicional no Power BI considerando mais argumentos. Provavelmente é a
mais usada neste tipo de caso. Nesta situação criamos uma coluna mesclando as colunas “Gênero” e “Estado Civil”. Abaixo o
procedimento para adicionar coluna mesclando as duas colunas.
Assim utiliza esta nova coluna para definir as condições conforme abaixo.
Nesta forma colocamos um passo a mais nas etapas do Power Query, que é a criação de uma nova coluna mesclada. Preferimos
mais a primeira forma por utilizar mais a visão lógica e não ter que colocar uma etapa a mais. Mas por ser mais fácil pode ser a
preferência da maioria.

3ª Forma: Utilizando a Linguagem M


Se você já tem mais familiaridade com o Power Query talvez já entenda um pouco mais das funções e fórmulas utilizando a
Linguagem M. Essa é a linguagem do Power Query. As possibilidades utilizando esta forma de fazer serão bem maiores.

Para utilizar os operadores AND e OR com M basta clicar em Coluna Personalizada, na faixa de opções Adicionar Coluna. Feito
isso escreva as linhas abaixo e teremos os mesmos resultados que as 2 formas anteriores, mas agora numa pegada de
desenvolvedor e utilizando códigos.
Veja que utilizamos AND no exemplo, mas é possível utilizar o OR também. A Linguagem M é sensível a letras maiúsculas e
minúsculas. Assim o AND ou OR devem ser escritos em minúsculos.

Pronto para criar coluna condicional no Power BI?


Criar coluna condicional no Power BI é uma ótima maneira implementar uma lógica linha a linha, mas sem o peso todo que uma
coluna calculada ou uma medida que utiliza IF traz para o modelo.

Pela interface gráfica do Power Query dá para implementar praticamente todas as lógicas possíveis. Em algumas lógicas você terá
que alterar a ordem de pensamento. Mas é só tentar pensar de uma forma diferente organizando a ordem das regras para chegar
no resultado. Você pode também criar as lógicas utilizando a Linguagem M. Fica conforme for mais simples ou melhor para você.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o
assunto. Ajude-nos também a espalhar bons conteúdos sobre o Power BI.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!

QUANDO USAR SUM E SUMX NO POWER BI (LINGUAGEM


DAX)
A função de soma (SUM) com certeza é uma das mais utilizadas no Power BI, se não for a mais utilizada. Não só no Power BI mas
no Excel também. Neste artigo trataremos do comportamento das funções SUM e SUMX no Power BI. Tudo que falarmos aqui se
aplica também ao Power Pivot do excel.

Entendemos que não há necessidade de falar muito sobre a função de somar em si. É uma função simples, provavelmente a
primeira que aprendemos devido à grande aplicação que ela tem. Mas se tiver alguma dúvida leia o nosso artigo: 4 Funções DAX
simples mas que você usará em todos seus modelos.

Antes de entrarmos nas explicações das funções SUM e SUMX no Power BI é importante entender alguns detalhes do
comportamento das funções dentro da Linguagem DAX.

Para melhor acompanhar este artigo baixe nosso exemplo em Power BI.
Comportamento dos filtros
Quando se cria uma fórmula em DAX, o resultado dela depende dos filtros que estão aplicados no relatório. Tenha em mente que
DAX não é o mesmo que as fórmulas em Excel.

No Excel é possível criar várias fórmulas em cada célula de um relatório e cada fórmula pode apontar para células criando
resultados diferentes. Cada célula é única. Mas não é assim que funciona na linguagem DAX.

No DAX se cria uma única fórmula, exemplo SUM(Vendas[Total Venda]), utilizando os filtros do relatório se modifica os
resultados retornados desta fórmula.

Os filtros são aqueles criados em qualquer local da área de relatório no Power BI, tanto as segmentações de dados quanto
qualquer elemento clicável nos gráficos e tabelas do relatório. Neste sentido é considerado como filtro também, influenciando no
resultado, aqueles adicionados na função CALCULATE. Esta é a única função que pode alterar o comportamento dos filtros iniciais
em um relatório.

O termo técnico para este comportamento dos filtros em relação ao resultado é “Contexto de Filtro” ou “Filter Context”.
Provavelmente é um termo que você já ouviu nos seus estudos sobre Power BI. Se não ouviu ainda irá ouvir muito aqui no nosso
blog e nossos cursos.
Veja como é o comportamento do filtro inicial no Power BI.
Note que a linha de “Bikes” (1), é um filtro inicial, somando todos os valores de vendas de bicicletas alí. Mas há também um outro
filtro no gráfico, a coluna da cidade (2) filtra também todas as vendas desta cidade. Assim o valor na linha “Bikes” é a soma desta
categoria para a cidade de “São Paulo” no exemplo. Os dois filtros aplicados são filtros iniciais.
Filtros podem vir de colunas, segmentação de dados e também da seção de Filtros na direita da visualização de Relatório abaixo
da seção Visualizações.

Contexto de Linha
O segundo ponto importante a se compreender é a análise linha a linha. Não é toda fórmula DAX que é capaz de calcular linha a
linha. Em algumas áreas do DAX, por exemplo numa coluna calculada, consegue avaliar linha a linha o resultado, mas em outras
áreas não.

Por exemplo, pode-se escrever uma fórmula simples numa coluna calculada, tal como, Vendas[PedidoQtde] *
Vendas[Preço Unit.] que a fórmula irá avaliar uma linha por vez. Mas se fizer esta mesma fórmula como
uma Medida acontecerá um erro.
O termo técnico para este comportamento é “Contexto de Linha” ou “Row Context”. Representa então a análise linha a linha para a
fórmula.

SUM e SUMX no Power BI


Após apresentado alguns conceitos bases, vamos agora falar da razão deste artigo ser escrito. As fórmulas SUM e SUMX no
Power BI.

SUM()
É uma função agregadora, ou seja, adiciona todos os valores em uma coluna. O resultado se dá após aplicados ou não todos os
filtros que influenciam na fórmula. SUM() não considera a existência das linha (não avalia linha a linha). Tudo que ela faz é agregar
todas as linhas dentro de uma única coluna.

SUMX()
É um “iterador”*, ou seja, trabalha na tabela, linha a linha para completar a avaliação. O resultado se dá após aplicados ou não
todos os filtros que influenciam na fórmula. SUMX() leva em conta cada linha da tabela e, portanto, pode referenciar a interseção
de cada linha com qualquer coluna na tabela. É uma fórmula que opera numa única coluna, mas consegue também operar em
múltiplas colunas, pois trabalha linha a linha na tabela.
Em resumo, SUM() trabalha com uma única coluna e não considera as linhas individualmente. SUMX() opera em múltiplas colunas
na tabela e pode avalia linha por linha destas colunas.

As duas fórmulas podem dar o mesmo resultado (pode dar ou podem não dar), mas este resultado vem por caminhos totalmente
diferentes. Geralmente elas chegam nos mesmos resultados por linha de uma tabela ou gráfico, mas geralmente os resultados são
diferentes nos subtotais ou totais das seções de um visual.

* Iterador, iteração, falaremos destes dois termos bastante neste artigo. Significa tratar item a item, ou seja, agrega um item de
cada fez no resultado da função.

Função SUM()

Estrutura da fórmula: SUM (<coluna>)


Exemplo:

1 SUM( Vendas[Total Venda] )

A função SUM() opera em uma coluna única e age para agregar todos os dados desta coluna, levando em conta os filtros
aplicados. Primeiro considera o filtro, depois o resultado.

Função SUMX()
Estrutura da fórmula: SUMX (<tabela>; <expressão>)
Exemplo:

1 SUMX( Vendas; Vendas[PedidoQtde] * Vendas[Preço Unit.] )

O SUMX() itera (agrega item a item), em uma tabela especificada no primeiro parâmetro, uma linha por vez. No segundo
parâmetro a função completa o cálculo. No caso Quantidade x Preço Unitário, levando em conta os filtros aplicados. Assim como
na SUM, primeiro considera o filtro, depois o resultado.

A função adiciona até chegar ao total, linha por linha. É como se fosse uma soma ponderada pelo valor próprio de cada linha. No
exemplo, a linha que tiver maior quantidade terá maior peso no resultado a linha com menos quantidade.

Qual função devo usar, SUM ou SUMX?


Na hora de decidir qual das duas funções utilizar, SUM ou SUMX, dependerá da sua preferência e da estrutura dos seus dados.
Vejam abaixo alguns exemplos:

Exemplo 1: Quantidade e Preço Unitário


Se você tem uma tabela de vendas que contenha uma coluna de “Quantidade” e outra de “Preço Unitário” (como mostramos
acima), então será necessário multiplicar uma coluna pela outra para chegar no resultado do Total de Vendas. O Resultado não
seria bom se fizéssemos a multiplicação da soma da “Quantidade” com a média do “Preço Unitário”. Fazendo isto traria um
resultado indesejado.

No caso da imagem acima, o melhor é utilizar SUMX(). É justamente para estes casos que este tipo de função foi criado (iteração).
Abaixo a fórmula que deve ser usada, no arquivo que disponibilizamos tem esta fórmula.

1 SUMX( Vendas; Vendas[PedidoQtde] * Vendas[Preço Unit.] )

Funções de iteração sempre tem seu primeiro parâmetro uma tabela. Esta é a tabela que será iterada pela função.

Muitos usuários cometem um erro comum neste caso. Ao invés de utilizar a função acima acabam criando uma coluna calculada
para resolver o problema. De fato, o problema do resultado será resolvido, mas acaba criando outro com isso. Ter uma coluna
calculada grava o cálculo linha a linha no arquivo. Mas isto deve ser evitado sempre que possível, pois aumenta a quantidade de
memória utilizada e o tamanho do arquivo desnecessariamente.

Exemplo 2: Valor Total


Se seus dados contém uma coluna com o Valor Total de Vendas por linha, então pode usar a função SUM() para a soma dos
valores.

1 SUM( Vendas[Total Venda] )

Neste caso não há necessidade de iteração. É apenas um cálculo simples que agrega todos os valores num total, sem
necessidade de execução linha a linha. Se quiser poderá usar o SUMX(), conforme abaixo. O resultado será o mesmo.

1 SUMX( Vendas; Vendas[Total Venda] )

Considerando em termos de performance, esta fórmula é idêntica a SUM() em eficiência e uso de memória. Mais sobre esse ponto
no final do artigo.

Exemplo 3: Quando o Total não pode ser somado


Há outro caso em que é necessário usar SUMX(), mas é menos óbvio. Quando se encontra um problema em que o Total não
soma conforme a necessidade ou esperado. Assim é necessário usar um “iterador”, exemplo SUMX, para corrigir este problema.
Observe a tabela abaixo:

Na tabela acima temos 6 clientes com uma média gasta em cada visita. Tem também o número de visitas que tiveram na loja. Se
tentarmos carregar estes dados no Power BI utilizando funções de agregação para determinar uma média de gastos e um total
gastos, na linha de total teremos o valor errado. Veja abaixo:
As medidas utilizadas na tabela acima foram:

Media por Visita Errado = AVERAGE( ClientesUso[Gasto por Visita] )


Total de Visitas = SUM( ClientesUso[Nro Visitas] )
Total Gasto Errado = [Total de Visitas] * Medidas[Media por Visita]

Na “Média por Visita Errado” o resultado da linha total está errado, é uma média simples sem considerar o total de visitas. O “Total
de Visitas” está correto, pois é apenas a soma da coluna. “Total Gasto Errado” está errado também pois não considera linha a
linha.

Para este tipo de estrutura de dados a única forma de calcular corretamente os totais é considerando linha a linha. Veja abaixo o
resultado correto:

Nesta tabela acima utilizamos a função SUMX() para criar o “Total Gasto Correto” primeiro. Somente depois desta medida criada
que calculamos a “Média por Visita Correto” na fórmula final.

Total de Visitas = SUM( ClientesUso[Nro Visitas] )


Media por Visita Correto = DIVIDE( [Total Gasto Correto]; [Total de Visitas]; 0 )
Total Gasto Correto = SUMX( ClientesUso; ClientesUso[Nro Visitas] * ClientesUso[Gasto por Visita] )

Perceba que para ter na média ponderada simplesmente dividimos o “Total Gasto Correto” pelo “Total de Visitas”.

Impactos na Performance
Fórmulas em geral tem implicação direta na performance do modelo de dados, ou seja, tem fórmulas que usam mais memória e
espaço do que outras. Falaremos então qual das duas funções (SUM e SUMX) tem a melhor eficiência na performance do modelo.

Podemos até pensar que o SUMX, por ser um “iterador” seria menos eficiente que o SUM. Mas isto não é necessariamente
verdade, o Power BI é otimizado para trabalhar com cenários. O que pode causar ineficiência neste caso é um DAX mal escrito.

A linguagem DAX tem duas engines de cálculo, a Storage Engine (SE) e a Formula Engine (FE). A mais rápida é a SE, pois é
multidirecional e armazena em cache. A FE é mais lenta porque é unidirecional e não armazena em cache.
Temos que buscar fórmulas que sejam SE sempre que possível. Não é algo que seja fácil de saber se não temos uma vivência
diária com estas fórmulas. Mas felizmente temos um bom material disponível na web, principalmente porque os experts estão
buscando cada vez mais eficiência na utilização das fórmulas no Power BI.

Vamos explicar a seguir melhor em relação ao nosso exemplo.


 SUM() sempre utiliza SE para seus cálculos.
 Para a maioria dos cálculos simples (por exemplo, Vendas[PedidoQtde] * Vendas[Preço Unit.]), SUMX() utilizará SE.
 Em algumas circunstâncias, SUMX() pode utilizar FE para alguns ou todos os cálculos, principalmente se tiver comparações complexas
na fórmula. Neste caso a performance cai muito.
Não comprometer a performance
Aconselhamos, assim, evitar utilizar a função IF juntamente com SUMX(). Abaixo damos um exemplo de como substituir a função
IF trazendo o mesmo resultado e com isso não comprometendo a performance.
Ao invés de:

1 Total Vendas < 100 NÃO = SUMX( Vendas;

3 IF(Vendas[Total Venda] < 100; Vendas[Total Venda]; "" )

5 )

Utilize:

1 Total Vendas < 100 SIM = CALCULATE(

3 SUMX( Vendas; Vendas[Total Venda] );

5 Vendas[Total Venda] < 100

7 )

A primeira fórmula (Total Vendas < 100 NÃO) tem a função IF juntamente com a SUMX. Esta função IF força o cálculo SE passar
para uma a forma FE para que seja comparado as linhas individualmente se for maior ou menor que 100, antes de decidir incluir
ou não no cálculo. Pelo fato da função ter que avaliar linha a linha o cálculo fica lento e ineficiente.
A segunda fórmula (Total Vendas < 100 SIM) primeiramente modifica o filtro inicial, vindo do visual, utilizando CALCULATE() para
colocar um filtro adicional (Vendas[Total Venda] < 100). Este filtro é aplicado por “Storage Engine” (SE) de forma bem eficiente.
Após o CALCULATE modificar o filtro a função SUMX pode então fazer seu trabalho e somar as linhas restantes, uma a uma,
através do SE. Nos nossos testes realizados com as duas fórmulas verificamos que a primeira fórmula (NÃO) levou até 5 vezes
mais para processar.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o
assunto. Ajude-nos também a espalhar bons conteúdos sobre o Power BI.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
Compartilhe

FUNÇÕES DE INTELIGÊNCIA DE TEMPO NO POWER BI


DESKTOP
Para fazer cálculos envolvendo datas no Power BI é necessário utilizar a linguagem DAX. Para isto existem, dentro desta
linguagem, as funções de inteligência de tempo. Elas servem para trazer resultados de ano até o momento (year to date), ano
versus ano (yoy), último dia do mês, última data disponível, etc.
Além de alguns cenários utilizando funções de inteligência de tempo no Power BI você aprenderá também sobre a opção “marcar
como tabela de datas” que foi incorporada no Power BI na atualização de fevereiro de 2018. Entender o papel desta configuração
feita nas tabelas que tem datas.
Baixe o arquivo do Power BI Desktop que oferecemos abaixo com todas as funções que falamos neste artigo. São exemplos
práticos de quase todas as funções de inteligência de tempo disponíveis na linguagem DAX. Além de conseguir acompanhar o que
falamos neste post sobre estas funções você terá também um local de consulta rápida sobre estas funções no seu PC. Assim
poderá relembrar e tirar dúvidas no momento que quiser. Baixar o arquivo aqui.

Utilize o índice abaixo para navegar neste artigo. Por ele vá direto à função que deseja aprender.
Funções de inteligência de tempo em DAX
A linguagem DAX disponibiliza um grande número de funções de inteligência de tempo. Veja todas neste link. Estas funções
podem ser divididas em duas categorias:
 Funções que retornam valores escalares sem necessidade da função CALCULATE;
 Funções que retornam uma tabela, que será usada como um filtro numa fórmula CALCULATE.
Um exemplo do primeiro grupo é a função TOTALYTD. Este grupo, na verdade, apenas simplifica uma fórmula que
utilizaria CALCULATE, trocando por uma função de inteligência de tempo. Exemplo de uma expressão utilizando TOTALYTD.

1 TOTALYTD (

2 SUM ( Vendas[Total Venda] );

3 CalendarioDAX[Date] )

No segundo grupo, utiliza-se a função CALCULATE em conjunto. De fato, a função acima pode ser obtida também conforme abaixo,
mas utilizando DATESYTDcomo um filtro.

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 DATESYTD ( CalendarioDAX[Date] )

4)

Na fórmula acima é aplicado um filtro ao campo “CalendarioDAX[Date]”. Este substitui filtros existentes nesta coluna. Na prática a
função DATESYTD por ser substituída pela função FILTER. A fórmula anterior corresponde a mesma fórmula a seguir.

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );

3 FILTER (

4 ALL ( CalendarioDAX[Date] );

5 CalendarioDAX[Date] <= MAX ( CalendarioDAX[Date] )

6 && YEAR ( CalendarioDAX[Date] ) = YEAR ( MAX ( CalendarioDAX[Date] ) )

7 )

8)

Entenda mais sobre a função FILTER no artigo “5 funções DAX para usar muito no Power BI”.
Observe na figura abaixo que o resultado é o mesmo. Os três contextos utilizados trazem o mesmo valor, porque são formas
diferentes para buscar um mesmo resultado. Em duas utilizamos funções de inteligência de dados temporais, nos dois grupos que
destacamos no início deste tópico.

Passamos agora a falar das funções de inteligência de tempo dividas pelos resultados que retornam.

Funções que retornam uma única data


Como nesta categoria as funções retornam uma única data, podem ser utilizadas como argumentos para outras funções. Abaixo
colocamos alguns exemplos de funções deste grupo. De qualquer forma citamos todas disponíveis no texto.

FIRSTDATE
Retorna a primeira data da coluna de datas utilizadas no contexto atual.

Estrutura da fórmula: FIRSTDATE (<coluna_datas>)


Exemplo:

1 FIRSTDATE( CalendarioDAX[Date] )

LASTDATE
Retorna a última data da coluna de datas utilizadas no contexto atual.

Estrutura da fórmula: LASTDATE (<coluna_datas>)


Exemplo:

1 LASTDATE( CalendarioDAX[Date] )

As duas funções de inteligência de dados temporais acima são úteis em casos que deseje encontrar a primeira ou a última data
em que foi feita uma venda, por exemplo. Dá para especificar qual produto, qual valor e mais, utilizando juntamente a
função CALCULATE e/ou FILTER.
STARTOFMONTH
Retorna a primeira data do mês para uma coluna de datas utilizadas dentro do contexto atual.

Estrutura da fórmula: STARTOFMONTH (<coluna_datas>)


Exemplo:

1 STARTOFMONTH( CalendarioDAX[Date] )

ENDOFMONTH
Retorna a última data do mês para uma coluna de datas utilizadas dentro do contexto atual.

Estrutura da fórmula: ENDOFMONTH (<coluna_datas>)


Exemplo:

1 ENDOFMONTH( CalendarioDAX[Date] )

Além das duas funções acima temos ainda as funções STARTOFQUARTER e ENDOFQUARTER, que, nos mesmos moldes, são para
datas em trimestres. Temos também as funções STARTOFYEAR e ENDOFYEAR que tratam o contexto na visão de ano.
Ao todo são 10 funções de inteligência de tempo que retornam um único valor de data, restou listar entre estas as
funções FIRSTNOBLANK e LASTNOBLANK, que utilizadas em colunas de datas retorna valores (primeiro ou último) que não estão
em branco.
Abaixo uma imagem dos resultados destas funções. Elas estão no arquivo que você fez o download acima (se não fez, faça agora
pois ele contém vários exemplos das funções de inteligência de tempo em aplicações práticas).
Funções que retornam uma tabela de datas
Dentre às funções de inteligência de tempo há aquelas que retornam tabelas de datas. Estas, normalmente, são utilizadas como
um argumento de filtro na função CALCULATE.

Estas funções, citaremos exemplos de algumas, mas ao todo são oito nesta situação, retornam um resultado a partir de uma
coluna de data especificada antes.

PREVIOUSDAY, PREVIOUSMONTH, PREVIOUSQUARTER e PREVIOUSYEAR


Vamos utilizar a função PREVIOUSDAY como principal exemplo para se basearem. Esta função retorna uma tabela que contém uma
coluna com todas as datas que representam o dia anterior à primeira data da coluna de datas na tabela Calendário no contexto
atual.
Estrutura da fórmula: PREVIOUSDAY (<coluna_datas>)

Exemplo:

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 PREVIOUSDAY ( CalendarioDAX[Date] )

4)

Neste exemplo a função retornará o valor de vendas do dia anterior em relação à data atual. Para exemplificar, para o dia
05/08/2018 a função retornará as vendas do dia 04/08/2018. No arquivo disponibilizado temos um exemplo prático desta função e
de todas logo abaixo, para você entender melhor. Não deixe de baixa-lo logo no início deste post.
Além desta função temos também as funções PREVIOUSMONTH, PREVIOUSQUARTER e PREVIOUSYEAR. Estas outras três funções
tem a mesma estrutura e lógica da PREVIOUSDAY, só representam contextos diferentes.
PREVIOUSMONTH
Retorna uma tabela que contém uma coluna com todas as datas que representam o mês anterior à primeira data da coluna de
datas na tabela. Esta função retorna a soma de valores do mês fechado. Ou seja, caso a linha contenha uma data do mês
de agosto retornará a soma das vendas total do mês de julho.

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 PREVIOUSMONTH ( CalendarioDAX[Date] )

4)

PREVIOUSQUARTER
Retorna uma tabela que contém uma coluna com todas as datas que representam o trimestre anterior à primeira data da coluna de
datas na tabela. Esta função retorna a soma de valores do trimestre fechado. Ou seja, caso a linha contenha uma data do mês
de agosto retornará a soma das vendas de todo trimestre anterior, no caso a soma dos meses abril, maio e junho.

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 PREVIOUSQUARTER ( CalendarioDAX[Date] )

4)

PREVIOUSYEAR
Retorna uma tabela que contém uma coluna com todas as datas que representam o ano anterior à primeira data da coluna de
datas na tabela. Esta função retorna a soma de valores do ano fechado. Ou seja, caso a linha contenha uma data do mês
de agosto/17 retornará a soma das vendas de todo ano anterior, no caso a soma de todos os meses de 2016.
1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 PREVIOUSYEAR ( CalendarioDAX[Date] )

4)

NEXTDAY, NEXTMONTH, NEXTQUARTER e NEXTYEAR


Estas funções de inteligência de tempo tem a mesma lógica das funções citadas acima que começam com PREVIOUS. Essa
palavra é substituída por NEXT, que significa próximo. Assim estas funções retornam uma tabela que contém uma coluna com
todas as datas que representam um dia, um mês, um trimestre ou um ano seguinte à primeira data da coluna de datas.

Utilizaremos o exemplo da função NEXTDAY para ilustrar, mas as outras seguem a mesma estrutura. No arquivo de Power BI
Desktop disponibilizado deste artigo tem todos as funções exemplificadas. Esta função retorna o resultado do dia posterior à
primeira data da coluna.
Estrutura da fórmula: NEXTDAY (<coluna_datas>)
Exemplo:

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 NEXTDAY ( CalendarioDAX[Date] )

4)
As explicações para as funções NEXTMONTH, NEXTQUARTER e NEXTYEAR são as mesmas de suas correspondentes PREVIOUS
acima. Apenas substitua a palavra anterior por seguinte nas explicações.

DATESMTD, DATESQTD, DATESYTD e SAMEPERIODLASTYEAR


Estas funções de inteligência de tempo, ao invés de calcular um período anterior ou próximo, elas calculam o conjunto de datas no
contexto. Melhor dizendo o resultado será do mês até o dia (DATESMTD), ou do trimestre até o dia (DATESQTD) ou do ano até o dia
(DATESYTD). Todas essas funções executam seus cálculos usando a última data no contexto atual.
Para ilustrar utilizaremos a função DATESMTD, que retorna uma tabela que contém uma coluna de datas desde o início do mês até
o dia atual no contexto.
Estrutura da fórmula: DATESMTD (<coluna_datas>)
Exemplo:

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 DATESMTD ( CalendarioDAX[Date] )

4)

As funções DATESQTD e DATESYTD seguem a mesma lógica acima, mas retornam o total do trimestre ou ano respectivamente.
Já a função SAMEPERIODLASTYEAR requer um conjunto contínuo de datas, sem que as datas sejam contínuas esta função
retornará um erro. Retorna uma tabela que contém uma coluna de datas com o atraso de um ano em relação às datas na coluna
atual do contexto.

1 CALCULATE (
2 SUM ( Vendas[Total Venda] );

3 SAMEPERIODLASTYEAR ( CalendarioDAX[Date] )

4)

DATEADD, DATESBETWEEN, DATESINPERIOD e PARALLELPERIOD


Estas últimas quatro funções na categoria de funções que retornam uma tabela de data são um pouco mais complexas, mas
também mais poderosas. Estas funções são utilizadas para deslocar-se do conjunto de datas de forma mais dinâmica,
obedecendo o contexto atual das datas.

DATEADD
Retorna uma tabela que contém uma coluna de datas, adiantadas ou atrasadas no tempo conforme o número especificado de
intervalos das datas no contexto atual. É possível substituir a função SAMEPERIODLASTYEAR que descrevemos acima pela
fórmula abaixo. Este é apenas um dos exemplos da utilização desta função. Ela serve para adiantar ou atrasar os cálculos para
dias, meses, trimestres e o caso do exemplo, anos.

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 DATEADD ( CalendarioDAX[Date]; -1; YEAR )

4)

DATESBETWEEN
Calcula um conjunto de datas entre uma data de início e uma data de término especificas nos argumentos. Esta função, bem como
as próximas duas deslocam algum número de intervalo de tempo do contexto atual. Elas facilitam para deslocar os intervalos em
dias, meses, trimestres e ano. Com elas é possível voltar 4 meses, adiantar um ano, voltar 2 semanas (14 dias), etc. No exemplo
abaixo somamos os resultados de vendas nos primeiros 15 dias do mês.

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 DATESBETWEEN (

4 CalendarioDAX[Date];

5 STARTOFMONTH ( CalendarioDAX[Date] );

6 STARTOFMONTH ( CalendarioDAX[Date] ) + 15

7 )

8)

DATESINPERIOD
Da mesma forma da função acima esta função desloca um número de intervalo de tempo do contexto atual. No exemplo abaixo
fazemos o cálculo somando as vendas de 15 dias antes da data atual do contexto. Desta forma teremos as vendas -15 dias para
cada data que apareça no contexto.

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 DATESINPERIOD (
4 CalendarioDAX[Date];

5 FIRSTDATE ( CalendarioDAX[Date] );

6 -15;

7 DAY

8 )

9)

PARALLELPERIOD
Esta função retorna uma tabela que contenha uma coluna de datas que representa um período paralelo na coluna de datas no
contexto atual, com as datas deslocadas em vários intervalos no presente ou no passado. A função PARALLELPERIOD é bem
parecida à função DATEADD, exceto pelo fato de que PARALLELPERIOD sempre retorna períodos completos. A
função DATEADD retorna períodos parciais. Por exemplo, se você tiver uma seleção de datas começando em 05/04/2017 e
terminando em 16/04/2017 e quiser deslocar essa seleção um mês à frente, a função PARALLELPERIOD retornará todas as datas
do próximo mês (de 1º de maio a 31 de maio); no entanto, se DATEADD for usada, o resultado só incluirá datas de 05 a 16 de maio.
Na fórmula abaixo, retorna a soma das vendas de todo o mês seguinte à data no contexto.

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 PARALLELPERIOD ( CalendarioDAX[Date]; 1; MONTH )

4)

Abaixo uma imagem dos resultados de todas as funções deste tópico que disponibilizamos no arquivo com todos os exemplos das
funções de inteligência de tempo em aplicações práticas. Não deixe de baixar o arquivo para um melhor entendimento do que
falamos aqui. Você pode baixar utilizando os links no início ou no fim deste artigo.
Funções que avaliam expressões ao longo de um período de tempo
Este tipo de funções de inteligência de dados temporais avaliam uma expressão durante um período de tempo específico. São
funções para simplificar e deixar suas expressões mais curtas. São todas fórmulas que podem ser substituídas pela
função CALCULATE juntamente com outra função de inteligência de tempo.

TOTALMTD, TOTALQTD e TOTALYTD


Estas três fazem a mesma coisa, mas em período de tempos diferentes.

Como exemplo analisaremos a função TOTALMTD.


Estrutura da fórmula: TOTALMTD (<expressão>; <coluna_datas>)

Exemplo:

1 TOTALMTD (

2 SUM ( Vendas[Total Venda] );

3 CalendarioDAX[Date] )

Esta fórmula traz o mesmo resultado da fórmula abaixo.

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );


3 DATESMTD ( CalendarioDAX[Date] )

4)

Mas é melhor utilizar a primeira por ser uma fórmula reduzida e com isso utilizamos menos recursos de memória. No exemplo
acima, se colocar num gráfico diário, esta função irá somar as vendas acumulando dia a dia um novo valor. No arquivo que
disponibilizamos você conseguirá ver este exemplo e outros na prática.

As funções TOTALQTD e TOTALYTD tem a mesma estrutura, mas fazem o acúmulo dos resultados por trimestre e por ano
respectivamente. Temos um exemplo da TOTALYTD logo no começo deste artigo.
Dentro desta categoria existem também um grupo de funções que trabalham com balanços de abertura e fechamento. São
funções com um apelo específico para área contábil e financeira, não vamos tratar em detalhes destas funções aqui. Coloquei
abaixo o link direto ao site da Microsoft onde poderá saber os detalhes técnicos destas funções.

OPENINGBALANCEMONTH (<expressão>, <coluna_datas>)


OPENINGBALANCEQUARTER (<expressão>, <coluna_datas>)
OPENINGBALANCEYEAR (<expressão>, <coluna_datas>)
CLOSINGBALANCEMONTH (<expressão>, <coluna_datas>)
CLOSINGBALANCEQUARTER (<expressão>, <coluna_datas>)
CLOSINGBALANCEYEAR (<expressão>, <coluna_datas>)

Apenas explicando um pouco dos conceitos destas funções. Para alguns as explicações vão parecer meio obvias, mas é
importante nivelar todos num mesmo patamar de conhecimento. As funções que começam com OPENING, de abertura, é baseado
na última data do período anterior. Aquelas que começam com CLOSING, de fechamento, tratam a última data do período atual. O
balanço de abertura para qualquer período é o mesmo que o balanço de fechamento do período anterior.

Há alguma das funções citadas e não detalhadas que queiram um maior detalhamento? Se sim deixe um comentário ao final neste
artigo que daremos mais detalhes da função de inteligência de dados temporais solicitada.

Fonte: Office-Microsoft
Marcar como tabela de data. Entenda melhor.
Quando se aplica a configuração “Marcar como tabela de data” a uma tabela, o DAX automaticamente inclui uma função ALL
sobre esta tabela em cada fórmula CALCULATE com um filtro sobre coluna utilizado dentro da expressão. Por exemplo, se marcar
uma tabela de nome “Calendário” como tabela de data utilizando a coluna “Date” para isto, dá para escrever a seguinte expressão.

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 DATESYTD ( CalendarioDAX[Date] )

4)

Automaticamente a lógica do DAX irá incluir uma função ALL para a tabela “Calendário”, removendo qualquer filtro das outras
colunas da mesma tabela. Por trás a expressão ficaria assim.

1 CALCULATE (

2 SUM ( Vendas[Total Venda] );

3 DATESYTD ( CalendarioDAX[Date] )

4 ALL ( CalendarioDAX )

5)

Caso esteja utilizando a tabela Calendário com uma coluna de tipo de Data como chave primária para os relacionamentos, mesmo
se não aplicar “Marcar como tabela de data” as funções de inteligência de tempo funcionarão normalmente. Isto porque é uma
coluna de tipo Data no relacionamento.
Caso o relacionamento da tabela Calendário não seja a partir de uma coluna do tipo Data, aí sim será necessário utilizar a
configuração “Marcar como tabela de data” para as funções de inteligência de tempo funcionarem. Ou então pode incluir
manualmente a função ALL nas funções que irá utilizar em conjunto para que funcionem adequadamente.

Conclusão
As funções de inteligência do tempo são um dos grandes trunfos da linguagem DAX. Elas dão uma nova perspectiva no trabalho
com datas dentro do Power BI ou Power Pivot, deixam esta atividade realmente mais inteligente.

Possibilitam comparativos e cálculos que não é possível com fórmulas de excel ou outras ferramentas de mercado. Deixam o
Power BI ainda mais power.
Não deixe de baixar o arquivo do Power BI Desktop com a aplicação prática de todas as funções que falamos neste artigo. Com
este arquivo é possível consultar a qualquer tempo como as funções de inteligência de dados temporais funcionam e com isso lhe
garantir resolver suas dúvidas rapidamente. Aproveite e baixe o arquivo aqui.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o
assunto. Ajude-nos também a espalhar bons conteúdos sobre o Power BI.
Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
Compartilhe
9 DICAS SMART PARA TRABALHAR COM MAPAS NO
POWER BI
Mostrar dados num mapa é uma forma bem interessante de manipular informações. Fazer visuais com mapas no Power BI não é
complicado, é até simples. Temos também mais esta forma de agregar valor às suas apresentações e deixar os dados ainda mais
legais de se ver e acompanhar.

Trabalhar com mapas no Power BI agrega números à visualização do espaço, ajudando a trazer insights para os dados.
Com o Power BI você pode facilmente obter, tratar, cruzar e visualizar os dados em um mapa. Não terá o mesmo nível de acesso
à informação que um profissional que lida com sistemas de informações geográficas, mas terá acesso à várias formas trabalhar
com mapas que irão funcionar bem de uma maneira geral.

Mas nem sempre o mapa é a melhor representação de seus dados, mesmo que tenha informações de localização para eles.
Também considere que há alguns mapas melhores que outros dependendo da situação. Testar os diferentes visuais de mapas é
uma forma de descobrir.

Temos um e-book bastante extensivo que fala sobre como trabalhar com mapas no Power BI. São mais de 30 páginas abrangendo
quase todas as opções de visuais de mapas disponíveis nesta ferramenta que tanto gostamos.

Clique abaixo e baixe este e-book, totalmente gratuito, que irá lhe ajudar a entender bastante este tema.

Neste artigo lhe daremos dicas importantes para trabalhar de forma produtiva, inteligente e correta com mapas no Power BI.

Nossas 9 dicas SMART para usar os mapas no Power BI.


»»» Faça a limpeza da sua tabela e mantenha nela somente os dados que ajude com as localizações exatas nos seus visuais.
»»» Para ter localizações mais precisas utilize os pontos de latitude e longitude.
»»» A codificação geográfica feita pelo Power BI não dá 100% de garantia de acuracidade. Há nomes ambíguos ou sem a devida
identificação pelo sistema. Para melhorar a acuracidade categorize o campo utilizando a “Categoria de Dados” para tal.
»»» Seja o mais detalhado possível na definição dos nomes de locais. Isto lhe trará mais acuracidade nas localizações do seu
mapa. É melhor colocar o nome completo da localização, cidade, estado, país, região.
»»» CEPs são uma boa forma de colocar as localizações mais acuradas nos mapas do Power BI também. Considere utilizá-los e
não esqueça de categorizar.
»»» Evite utilizar cores de dados que se confundam com o fundo e dificultem a visualização.
»»» Busque que os dados sejam os mais distintos possíveis. Se disponível, utilize fundo nas escalas em cinza ou escuro, que
permitirão maior variedade de cores nos dados.
»»» Teste o melhor modelo de mapa para apresentar seus dados, entenda como funciona cada modelo baixando nosso ebook.
»»» Nem sempre o mapa é o melhor visual para seus dados, teste seus dados em outros tipos de visualizações, tais como
gráficos de barras, linhas, pizza, etc.
O Power BI oferece muitas formas diferentes de visualizar os dados geoespaciais. Há uma variedade de mapas e até mesmo não
optar por nenhum deles. Lembre-se que seu objetivo é proporcionar à sua audiência um bom entendimento do que se está
apresentando e a partir daí que eles possam formar uma opinião relevante daqueles dados.

Busque ser o mais objetivo e claro possível ao seu público.


Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o
assunto. Ajude-nos também a espalhar bons conteúdos sobre o Power BI.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
Compartilhe
COMO CRIAR GRUPOS NO POWER BI (GRUPOS E
COMPARTIMENTOS)
Criar grupos no Power BI é uma forma de melhor dividir e visualizar dados num modelo. Assim pode-se refinar a visualização
criando faixa de valores ou grupo de categorias. Isto serve para dar mais subsídios a análises de relatórios, ter outras formas de
avaliar os dados disponíveis, fazer comparações com outras dimensões, verificar tendências em diferentes janelas e visões e
muito mais.

No ato de criar grupos no Power BI você pode, por exemplo, colocar duas ou mais categorias em uma maior. Pode agrupar faixas
de datas ou de valores, etc.

Há várias formas de criar grupos no Power BI. Nos exemplos abaixo buscamos mostrar estas possibilidades e como é simples
fazer. Você também entenderá como editar e modificar os grupos criados.

Baixe o arquivo de exemplo que utilizaremos em todo este post por este link. Acompanhe passo a passo nossas explicações por
lá.

Como criar grupos no Power BI – Por Datas


Vamos começar criando grupos para visualizações de agrupamentos de datas.
Abra o modelo que disponibilizamos, clique na visualização Dados (1), em seguida selecione a tabela “Calendário DAX” (2),
marque a coluna “NomeDiaSemana” (3)e clique no botão Novo Grupo (4) na faixa de opções Modelagem. Se preferir clique com o
botão direito sobre a coluna “NomeDiaSemana” e clique em Novo Grupono menu suspenso que irá aparecer.
Se não sabe ainda como criar uma tabela de calendário no Power BI recomendo a leitura do artigo: Aprenda 2 maneiras de criar
uma tabela Calendário no Power BI.
Na tela seguinte, dentro do quadro Valores não agrupados (1) selecione os dias da semana (Seg à Sex) utilizando a tecla Ctrl para
fazer a seleção de tudo. Clique em Grupo (2).

Renomeie o grupo criado para “Dias Úteis” (1). Voltando ao quadro de Valores não agrupados selecione o restante “sáb e dom” (2),
clique em Grupo (3) novamente e renomeie este último grupo criado para “FDS”.
Em Nome (1) você pode atribuir o nome que desejar para este agrupamento, neste exemplo não faremos nenhuma modificação,
mas isso fica a seu critério. Clique em OK (2) para finalizar.
Como resultado será criado uma nova coluna (1) com o agrupamento e a partir dela é possível criar visualizações e novas
análises. Veja que a coluna aparece na lista de campos também (2).
Grupo com várias Datas – Compartimentos.
É possível criar também o agrupamento pela Data, vamos fazer um exemplo, já diretamente no Relatório.
Clique com o botão direito sobre “Date” em CAMPOS dentro da tabela “Calendário DAX” (1), em seguida clique em Novo Grupo (2).
Criaremos aqui uma faixa de agrupamento das datas por semestre. Estas faixas são chamadas de “compartimentos” no Power
BI. Para isto faça os seguintes passos na tela que se abre a seguir.
Em Nome (1) mude para “Grupo de Datas”. Em Tamanho do compartimento (2) coloque 6 meses e finalmente clique em OK.

Com isto criamos mais um agrupamento e na imagem abaixo vemos com podemos utilizar tais grupos para melhorar nossas
opções de visões e análises.
Veja que foi criado o novo grupo “Grupo de Datas” (1). No gráfico da esquerda (2) estão todas as datas com vendas somadas
diariamente, fica até difícil identificar devido a quantidade de colunas. Já no gráfico da direita (3) as vendas estão agrupadas por
semestre. Neste caso muito mais fácil de visualizar e para uma análise semestral facilita bastante.
Os agrupamentos de datas podem ser por Anos, Meses, Quinzenal, Semanal, Dia, Hora. Voce faz da maneira que melhor lhe
ajudar. Caso queira alterar as configurações do grupo, clique com o botão direito sobre o nome do grupo “Grupo de Datas” na lista
de campos e clique em Editar Grupo. Assim consegue mudar de 6 meses para 3 meses por exemplo, ou 1 ano, ou qualquer outra
opção disponível.

Criar grupos no Power BI – Por Categoria


Caso queira juntar produtos, indicadores ou qualquer outro item que esteja num relatório, de forma a obter resultados agrupados o
processo é bem parecido com o que já explicamos até o momento.

Desta vez criaremos o grupo diretamente pelo gráfico.

Selecione as colunas que deseja estarem no grupo (1). Para selecionar várias colunas aperte a tecla Ctrl. Clique com o botão
direito após a seleção e em seguida clique em Grupo (2).
Será gerado um grupo com os itens selecionados e os que não foram ganham o nome de “Outro”. Agora faremos alguns ajustes
para deixar os dados mais úteis.

Clique com o botão direito sobre o nome do grupo criado (1) e depois clique em Editar Grupo (2).

APRENDA A UTILIZAR A FUNÇÃO ALLSELECTED E AS


OUTRAS FUNÇÕES QUE LEVAM ALL NO NOME
Aprenda a utilizar todas a função ALLSELECTED e as outras funções ALL disponíveis na linguagem DAX, com suas aplicações
dentro do Power BI. As 4 funções tratadas neste artigo são ALL, ALLSELECTED, ALLNOBLANKROW, ALLEXCEPT. É só deslizar
para baixo para aprender mais sobre estas funções e tirar aquela dúvida que está te mantando.

Estas funções são do grupo de funções de Filtro, além destas, há outras funções para filtrar informações que são interessantes de
se aprender. Mas neste tópico trataremos somente das que levam ALL no nome.

Temos um e-book com outras funções. É gratuito e oferecemos a todos que querem aprender mais sobre linguagem DAX e Power
BI. Clique na figura abaixo e baixe seus e-book, totalmente gratuito.

Antes de mais nada baixe o arquivo do Power BI Desktop em que fizemos todas as fórmulas por este link.

Inserindo uma nova medida no Power BI


Caso ainda não saiba como criar uma medida, segue abaixo um pequeno passa a passo, simples. Todas as fórmulas que
utilizaremos aqui seguirá este mesmo padrão.

No Power BI Desktop, conforme a tela abaixo, clique na faixa de opções Modelagem (1) em seguida clique em Nova Medida (2),
será aberta uma linha para você digitar a nova medida que será criada (3). Muito simples, não é?
Função ALL
Explicamos a função ALL no artigo: 5 funções DAX para usar muito no Power BI , clique e veja como esta função é utilizada
geralmente.

Ela retorna todas as linhas de uma tabela, ou todos os valores de uma coluna. Ignora assim qualquer um dos filtros feitos na
visualização. A função ALL é utilizada em casos que o cálculo não deve levar em conta nenhum dos filtros, precisando apresentar
valor cheio. Ou mesmo quando se necessita dividir algum valor que responde ao filtro por um denominador que não responde.
Ela não pode ser utilizada sozinha e sim como uma função intermediária.

Função ALLSELECTED
Esta função faz com que seu cálculo respeite o contexto dos itens selecionados. Enquanto a função ALL remove todos os filtros do
cálculo a função ALLSELECTED considera os filtros no cálculo, desconsiderando apenas os filtros e agrupamentos de colunas e
linhas.

Vou me explicar melhor com base na figura abaixo:

Este é o exemplo que estamos disponibilizando para acompanhar todas as funções deste artigo. Clique para baixar o modelo em
PBIX.
Veja acima que a tabela soma o Total de Vendas de produtos (Coluna: Total Venda). Nesta tabela temos o percentual das vendas
de cada mês em relação ao ano todo (Coluna: % Vendas ALL), esta coluna foi feita utilizando a função ALL (2). Temos também o
percentual das vendas de cada mês considerando somente os meses selecionados (Coluna: % Vendas ALLSELECTED), esta
coluna foi feita utilizando a função ALLSELECTED (3).

Vejam que selecionamos 4 meses (1) e a fórmula que utilizamos (ALLSELECTED) respondeu a seleção e calculou o percentual
somente em relação a esta seleção. Dividiu cada um dos meses nas linhas pela soma de todos os meses selecionados. Por isso
falamos em contexto.

Estrutura da fórmula: ALLSELECTED (<tabela> ou <coluna>)

Nos parâmetros, podemos usar o nome de uma tabela ou coluna existente, neste caso não pode ser uma expressão.

Esta função retorna um valor que responde ao contexto, mas não considera filtros de coluna e linha, ou seja, retém todos os filtros
de contexto que não sejam filtros de linhas e de colunas. Diferente da função ALL que não considera filtro algum.

Abaixo está como escrevemos a função que gerou a figura acima no exemplo disponibilizado:

1 Total Vendas ALLSELECTED =

2 CALCULATE ( SUM ( Vendas[Total Venda] ); ALLSELECTED ( Vendas ) )

No exemplo, utilizamos o resultado do % de vendas com a função ALLSELECTED, com um gráfico de cascata (waterfall). Este é
um dos melhores gráficos para apresentar este tipo de resultado. Veja como ficou.
A função ALLSELECTED é complexa, tem diferenças em seu comportamento, neste artigo não entraremos em todas as variantes
de resultados que a função pode trazer, mas futuramente teremos um artigo completo sobre esta função específica.

Função ALLEXCEPT
Esta função tem quase a mesma lógica do da função ALLSELECTED, mas com efeito contrário. A função ALLEXCEPT remove do
resultado os filtros de contexto, exceto filtros que foram aplicados em colunas específicas no campo coluna da fórmula.
Estrutura da fórmula: ALLEXCEPT (<tabela>;[<coluna>])
Primeiro determina a tabela que os filtros de contexto não serão considerados, em seguida a coluna ou colunas que deseje que o
filtro de contexto obedeça, ou seja, as colunas que especificar a frente serão consideradas no filtro. Logo mais abaixo exemplifico
melhor.

Não é possível usar expressões de tabela ou coluna dentro da função ALLEXCEPT. É uma função que não pode ser utilizada
sozinha e sim dentro de uma outra função. O valor de retorno será aquele em que a tabela colocada dentro desta função terá seus
filtros removidos, exceto os filtros que estiverem contemplado nas colunas especificadas na continuação da função ALLEXCEPT.

Abaixo está como escrevemos a função utilizada no exemplo disponibilizado.

1 Total Vendas ALLEXCEPT =

2 CALCULATE (

3 SUM ( Vendas[Total Venda] );

4 ALLEXCEPT ( CalendarioDAX; CalendarioDAX[Date] )

5)

Para um melhor entendimento desta função vamos analisar a figura abaixo.


Vemos os filtros selecionados, de Mês (1) e Categoria (2). A coluna “%Vendas ALL” não responde a nenhum filtro desses, pois
utiliza a função ALL. A coluna “% Vendas ALLSELECTED” responde aos 2 campos de filtros, pois utiliza a função ALLSELECTED.
Já a coluna “% Vendas ALLEXCEPT” (3) responde somente ao filtro Categoria.

O motivo é porque na fórmula que colocamos acima falamos para o Power BI não considerar a tabela Calendário DAX nos filtros.
Isto a fórmula fez, exceto para a coluna “Date”. Caso fosse feito alguma segmentação de dados com a coluna Date, este seria
considerado. Visto que está na função como uma coluna que será exceção ao ALLEXCEPT.

Parece complicado, mas não é.

Abaixo fizemos uma nova função usando ALLEXCEPT, mas colocando o nome do mês para ser considerado no cálculo. Veja
como ficou a fórmula.
1 Total Vendas ALLEXCEPT_B =

2 CALCULATE (

3 SUM ( Vendas[Total Venda] );

4 ALLEXCEPT ( CalendarioDAX; CalendarioDAX[Date]; CalendarioDAX[NomeMês] )

5)

Na tabela estão, lado a lado, o resultado das duas fórmulas ALLEXCEPT para que você compare.

Perceba que estão feitos os mesmos filtros que fizemos antes, mas a tabela mostra os valores absolutos e não em percentual. Na
coluna “Total Vendas ALLEXCEPT” está o total de vendas da Categoria “Acessórios” (filtrada) sem considerar o filtro de mês. Na
Coluna “Total Vendas ALLEXCEPT_B” consta o resultado dessa última fórmula que fizemos.
Observe que nesta última fórmula colocamos que a coluna “NomeMês” seria considerada no filtro, colocando esta coluna nos
argumentos da função ALLEXCEPT. Assim dizemos a fórmula que esta coluna não deve entrar na remoção dos filtros. Como o
nome do mês é um filtro este é considerado.

Função ALLNOBLANKROW
Esta função retorna, a partir de uma tabela determinada, todas as linhas, exceto as em branco. Ou também todos os valores
diferentes de uma coluna, exceto a linha que está em branco. Desconsidera todos os filtros de contexto existentes.

Estrutura da fórmula: ALLNOBLANKROW (<tabela> ou <coluna>)


Somente um dos parâmetros é colocado, ou a tabela ou a coluna. Determine qual a tabela ou qual a coluna que os filtros de
contexto serão removidos.

Esta função tem boa utilidade no caso de cruzamento entre tabelas, onde falta alguma informação entre as tabelas.

Por exemplo: Na tabela de Vendas há produtos vendidos pelo vendedor “XYZ”, mas este vendedor foi retirado da tabela
Vendedores devido a desligamento.

Caso queira apresentar todas as vendas, por vendedores e dividir a proporção pelo total de vendas por vendedor, sem considerar
as vendas do vendedor demitido. Esta função pode se aplicar. Assim a função vai desconsiderar as linhas em branco das vendas
que foram feitas pelo vendedor “XYZ” do cálculo.

Ainda não temos um exemplo interessante e que resolva qualquer dúvida no assunto, assim que tivermos publicaremos aqui. Por
enquanto, caso necessite de mais esclarecimentos sobre esta função entrar no site de referência da Microsoft clicando neste link.

Fique atento para mais artigos sobre o assunto aqui no nosso blog.
As funções de filtro têm papel importantíssimo na montagem de boas estruturas em DAX, elas resolvem muitas necessidades de
comparações entre os totais, sem levar em conta o contexto ou mesmo levando este em conta. Utilizamos mais elas nestes casos,
mas sempre há outras boas utilizações.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o
assunto.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
Compartilhe
Na tela de edição do Grupo mude o Nome para “Grupo Categorias” (1). Mude o nome do grupo criado diretamente no
quadro Grupos e membros para “Roupas” (2). Caso queira pode criar outros grupos selecionando os produtos no quadro Valores
não agrupados. Após fazer todos os ajustes clique em OK (3).
Criar grupos no Power BI – Por Valores
Por fim vamos criar grupos por faixas de valores, isto para saber o quanto se está atingindo de metas, vendas, resultados dentro
de certa faixa de valores.

O processo é praticamente o mesmo que utilizamos na data.

Este agrupamento será montado a partir do preço unitário dos produtos vendidos, ou seja, qual o valor total de vendas dos
produtos dentro das faixas de preço de 0,00 à 100,00, de 100,00 à 200,00 e assim por diante.

Clique com o botão direito sobre o campo “Preço Unit.” (1) e escolha Novo Grupo. Mude o Nome para “Grupo Preço Unit.” (2).
Em Tamanho do compartimentocoloque 100 (3), mas se quiser pode ser 50, 200 ou qualquer outro tamanho. Clique em OK (4).
Assim será criado o grupo com custos unitários onde os resultados são somados para faixas de preço de 100 em 100.

Confira os resultados de tudo que fizemos no arquivo disponibilizado no link logo no início deste artigo. Observará o quanto esta
característica do Power BI é útil para suas análises e comparações. O Power BI é cheio de recursos que devem ser aproveitados e
no que depender de nós disponibilizaremos o máximo de conhecimento aqui em nosso blog.

Observem que para cada um dos exemplos iniciamos o processo de forma diferente, porém nada impede que o agrupamento de
datas seja feito da mesma forma que iniciamos o agrupamento de valores ou categoria e vice-versa. A intenção era demonstrar as
várias maneiras de obter o mesmo resultado.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o
assunto. Ajude-nos também a espalhar bons conteúdos sobre o Power BI.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
Compartilhe
APRENDA 2 MANEIRAS DE CRIAR UMA TABELA
CALENDÁRIO NO POWER BI
Criar uma tabela Calendário talvez seja uma das atividades que você mais fará nos seus modelos de dados. Esta tabela vai
constar em praticamente todos os modelos a serem criados, pois uma das maneiras mais comuns e efetivas de segmentação de
dados é por data.
Leia abaixo neste artigo as duas maneiras que consideramos mais efetivas para criar uma tabela Calendário. É possível utilizar
também estas instruções para criar nos suplementos do excel: Power Pivot (a primeira maneira); Power Query (a segunda forma
que apresentamos). Este artigo busca abranger todos os possíveis campos a se criar na tabela. Caso você perceba alguma coluna
que seja interessante acrescentar, deixe seu comentário no final do artigo.

Em geral queremos visualizar e comparar dados por dia, mês, semana, dia da semana, período do mês, etc. Para ter todas estas
comparações à disposição criar uma tabela Calendário é a melhor solução. Com esta tabela, relacionada às demais tabelas, fica
possível fazer todas as análises possíveis em relação a datas.

Através de uma segmentação e organização de dados por datas bem-feita conseguimos também utilizar as funções de inteligência
de tempo, assim conseguir análises ainda mais ricas em comparações de períodos.

Como criar uma tabela Calendário no Power BI


Apresentaremos aqui duas formas para tal. A primeira utilizando as funções da Linguagem DAX e a segunda utilizando o Power
Query no Editor de Consultas. Nas duas formas será gerado uma tabela de datas com várias colunas úteis para comparações e
visualizações.

Antes de iniciarmos no conteúdo em si, baixe nosso modelo contendo o que ensinamos neste artigo na prática. Isto facilitará o
acompanhamento do que explicamos. Você também poderá utilizar este material baixado no futuro caso queira recordar como
fazer.
Link do nosso exemplo para criar a tabela de Calendário no Power BI.

Criar uma tabela Calendário utilizando Linguagem DAX


No nosso entendimento esta é a forma mais prática de todas, apesar de que no Power Query também é bem tranquilo e usual.
Mas a nossa preferência é esta devido a utilizar as funções DAX.

Abaixo o passo a passo para criar uma tabela Calendário utilizando funções da Linguagem DAX.

Utilize o modelo que disponibilizamos no link acima para praticar e acompanhar os exemplos.
Dentro do Power BI Desktop, vá na faixa de opções Modelagem clique em Nova Tabela.
Será criada uma nova tabela e também será aberto uma linha para digitar a função DAX que possibilita a criação desta tabela.
Perceba como aparecerá na figura abaixo.
Neste momento delete a expressão “Tabela = “ e digite a expressão abaixo para criar uma tabela Calendário.

1 CalendarioDAX =

2 CALENDAR ( DATE ( 2017; 01; 01 ); DATE ( 2018; 12; 31 ) )

Aperte Enter.
Veja abaixo o resultado. Clique na visualização Dados para ver exatamente como está na tela abaixo.
Foi criado uma tabela com o nome CalendárioDAX, conforme digitamos, com uma coluna chamada “Date”. Esta coluna tem a
menor data 01/01/2017 e a maior data 31/12/2018 conforme definimos na função CALENDAR. Esta função cria uma tabela com
uma data mínima e uma data máxima, preenchendo todas as datas existentes neste intervalo.

A função CALENDAR aceita como mínimo e máximo expressões que retornem uma data, assim a grande vantagem de criar uma
tabela Calendário utilizando a linguagem DAX é esta. Ao invés de usar datas fixas podemos utilizar a data mínima e máxima da
tabela principal do modelo.

No exemplo abaixo a expressão está fazendo isto.

1 CalendarioDAX =

2 CALENDAR ( MIN ( Funcionarios[Admissão] ); MAX ( Funcionarios[Admissão] ) )

Neste caso iremos considerar o intervalo de datas entre a menor data e a maior data que já existe na tabela Funcionários. Assim
na hora de avaliar e utilizar a data para comparações utilizamos somente um intervalo que já existe. Com isso deixamos as datas
de análises mais limpas, constando apenas o intervalo que interessa.

Criando o restante das colunas da Tabela Calendário


Criada a principal coluna (coluna “Date”), todas as outras agora vão derivar dela.

Criaremos agora mais três colunas (dia, mês e ano). Para isto acrescente mais colunas clicando Nova Coluna na faixa de
opções Modelagem.
Vamos criar mais três expressões, uma de cada vez. Crie na ordem abaixo:

1 Dia =

2 DAY ( 'CalendarioDAX'[Date] )

4 Mês =

5 MONTH( 'CalendarioDAX'[Date] )

7 Ano =

8 YEAR( 'CalendarioDAX'[Date] )

Após o processo teremos uma coluna contendo somente a informação de “Dia”, outra contendo o “Mês” e outra com o “Ano”.
As próximas etapas serão a criação das colunas de dia da semana, nome do mês completo, nome do mês curto e trimestre.
Seguindo o mesmo procedimento para criar uma Nova Coluna, utilize as expressões abaixo nesta ordem.

1 DiaSemana =

2 FORMAT ( 'CalendarioDAX'[Date]; "ddd" )

4 MêsNome =

5 FORMAT( 'CalendarioDAX'[Date];"mmmm" )

7 MêsCurto =

8 FORMAT( 'CalendarioDAX'[Date];"mmm" )

10 Trimestre =

11 FORMAT( 'CalendarioDAX'[Date];"q" ) & "T"

12

13 Trim/Ano =

14 CalendarioDAX[Trimestre] & CalendarioDAX[Ano]

Utilizamos também, neste caso, a função FORMAT para que o resultado fosse exatamente na forma que nos ajude na visualização
e análise. Assim fica mais amigável na hora de manipular e mostrar os eixos de data.

Veja como ficou a tabela após acrescentar todas as colunas.


Além das colunas criadas, é possível pensar em outras e acrescentá-las de forma a atender suas necessidades, por exemplo, 1ª e
2ª quinzenas, Bimestre, Quadrimestre, Semestre, 3 últimos dias do mês e assim vai.

Terminamos a parte de criar uma tabela Calendário no Power BI utilizando as funções da linguagem DAX.

Criar uma tabela Calendário utilizando Editor de Consultas (Power Query)


Outra forma de criar uma tabela Calendário no Power BI é utilizando o Editor de Consultas. Neste modo utilizaremos a interface do
Power Query e um pouco de Linguagem M, recomendo a leitura do artigo: Linguagem M. A Linguagem da Power Query no Power
BI, para entender mais sobre o assunto.

Este método é o mais utilizado atualmente e seguindo o passo a passo abaixo será simples para você criar.

Clique no Editor de Consultas na faixa de opções Página Inicial.

Dentro do ambiente do Editor de Consultas clique em Obter Dados e em seguida Consulta Nula.
Agora é hora de utilizar a Linguagem M. Utilizaremos a função “List.Dates” para criar uma lista de datas com uma data inicial, tempo
de duração e forma de incremento (se será por dia, por hora, por mês, etc.).
Será aberto, logo após clicar em Consulta Nula, um espaço para digitar. Observe na figura abaixo (1) a função da Linguagem M
que digitamos neste espaço.

Digite então conforme abaixo e em seguida aperte Enter.


1 = List.Dates (#date(2015,1,1), 365 * 3, #duration(1,0,0,0))

Esta função tem 3 partes, onde na primeira definimos a data inicial da lista. Utilizamos a função “#date” para colocar esta data
inicial no formato que o Power Query entenda.

Na segunda parte é definido até quando a lista será completada. Colocamos aqui 3 anos, representado na expressão “365 * 3”.
Note que fazendo desta forma é possível utilizar expressões com esta, não precisa fazer o cálculo de cabeça.

E por fim, na terceira parte será definido como a lista será incrementada, no caso utilizamos a função “#duration” e definimos o
incremento em 1 dia por vez. Na função “#duration” é possível definir os dias, horas, minutos, segundos. No caso (1,0,0,0) foi
definido 1 dia, 0 horas, 0 minutos e 0 segundos.

Seguindo o procedimento será gerada a lista dos dias.


Clique em Para a Tabela (conforme passo 2 na figura acima) para transformar a lista em uma tabela. Na janela que aparecer clique
em OK.
Renomeie “Column1” para “Data” (1). Mude o nome da tabela de “Consulta1” para “CalendarioPQ” (2).
O próximo passo será alterar o tipo de dados da coluna “Data” para Data. Clique com o botão direito sobre a coluna (passo 1
abaixo). Posicione o mouse sobre Alterar Tipo e em seguida clique em Data.

A vantagem do Power Query é a facilidade de fazer algumas modificações.


No caso iremos adicionar novas colunas somente com as informações que queremos. Isto é feito de forma bem simples pela
interface gráfica.

Clique em Adicionar Colunas (2), clique em Data (3), posicione o mouse em Dia e finalmente clique em Dia.
Observe que será criada uma nova coluna com o nome “Dia”, contendo somente o Dia da coluna “Data”.
Vamos agora criar as colunas de Mês (Data/Mês/Mês), Ano (Data/Ano/Ano), Nome do Mês (Data/Mês/Nome do Mês), Nome do
Dia (Data/Dia/Nome do Dia) e Trimestre (Data/Trimestre/Trimestre do Ano). Para isto repita os passos que fizemos para criar a
coluna “Dia”.

Importante: Antes de inserir cada uma das colunas selecione a coluna “Data” novamente.
Veja abaixo o resultado após criar todas as colunas citadas acima.
Depois de criar uma tabela Calendário utilizando o Power Query clique no botão Fechar e Aplicar na faixa de opções Página
Inicial para salvar tudo que foi feito no Editor de Consultas.

Relacionando a tabela Calendário com as outras tabelas


Para utilizar de fato esta tabela Calendário criada é necessário relacionar com as outras tabelas do modelo de dados. Este
relacionamento será feito a partir da coluna “Data” da tabela Calendário para uma coluna que contenha Datas da outra tabela. As
colunas devem ser do mesmo tipo de dados, ou seja, tipo de dados de data.

Para visualizar os relacionamentos clique no botão Relacionamentos no painel de Visuais (1 na figura abaixo).

Crie um relacionamento novo selecionando a tabela CalendarioDAX (utilizaremos esta para explicar este passo). Dentro desta
tabela clique em “Date” segure e arraste a linha que será formada até a tabela Funcionários sobre o nome “Admissão”. Solte o
cursor neste ponto.

Será criado um relacionamento entre as duas tabelas (2 na figura abaixo).


Com este relacionamento entre as duas tabelas será possível utilizar a tabela Calendário para manipular as informações sobre
datas nos dados da tabela Funcionários.
Assim encerramos esta artigo mostrando as duas formas que utilizamos para criar uma tabela Calendário no Power BI.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o
assunto.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
Compartilhe
9 DICAS SMART PARA TRABALHAR COM MAPAS NO
POWER BI
Mostrar dados num mapa é uma forma bem interessante de manipular informações. Fazer visuais com mapas no Power
BI não é complicado, é até simples. Temos também mais esta forma de agregar valor às suas apresentações e deixar os
dados ainda mais legais de se ver e acompanhar.
Trabalhar com mapas no Power BI agrega números à visualização do espaço, ajudando a trazer insights para os dados.

Com o Power BI você pode facilmente obter, tratar, cruzar e visualizar os dados em um mapa. Não terá o mesmo nível
de acesso à informação que um profissional que lida com sistemas de informações geográficas, mas terá acesso à várias
formas trabalhar com mapas que irão funcionar bem de uma maneira geral.

Mas nem sempre o mapa é a melhor representação de seus dados, mesmo que tenha informações de localização para
eles. Também considere que há alguns mapas melhores que outros dependendo da situação. Testar os diferentes
visuais de mapas é uma forma de descobrir.

Temos um e-book bastante extensivo que fala sobre como trabalhar com mapas no Power BI. São mais de 30 páginas
abrangendo quase todas as opções de visuais de mapas disponíveis nesta ferramenta que tanto gostamos.

Clique abaixo e baixe este e-book, totalmente gratuito, que irá lhe ajudar a entender bastante este tema.

Neste artigo lhe daremos dicas importantes para trabalhar de forma produtiva, inteligente e correta com mapas no
Power BI.

Nossas 9 dicas SMART para usar os mapas no Power BI.


»»» Faça a limpeza da sua tabela e mantenha nela somente os dados que ajude com as localizações exatas nos
seus visuais.
»»» Para ter localizações mais precisas utilize os pontos de latitude e longitude.
»»» A codificação geográfica feita pelo Power BI não dá 100% de garantia de acuracidade. Há nomes ambíguos
ou sem a devida identificação pelo sistema. Para melhorar a acuracidade categorize o campo utilizando a
“Categoria de Dados” para tal.
»»» Seja o mais detalhado possível na definição dos nomes de locais. Isto lhe trará mais acuracidade nas
localizações do seu mapa. É melhor colocar o nome completo da localização, cidade, estado, país, região.
»»» CEPs são uma boa forma de colocar as localizações mais acuradas nos mapas do Power BI também.
Considere utilizá-los e não esqueça de categorizar.
»»» Evite utilizar cores de dados que se confundam com o fundo e dificultem a visualização.
»»» Busque que os dados sejam os mais distintos possíveis. Se disponível, utilize fundo nas escalas em cinza
ou escuro, que permitirão maior variedade de cores nos dados.
»»» Teste o melhor modelo de mapa para apresentar seus dados, entenda como funciona cada
modelo baixando nosso ebook.
»»» Nem sempre o mapa é o melhor visual para seus dados, teste seus dados em outros tipos de visualizações,
tais como gráficos de barras, linhas, pizza, etc.

O Power BI oferece muitas formas diferentes de visualizar os dados geoespaciais. Há uma variedade de mapas e até
mesmo não optar por nenhum deles. Lembre-se que seu objetivo é proporcionar à sua audiência um bom entendimento
do que se está apresentando e a partir daí que eles possam formar uma opinião relevante daqueles dados.

Busque ser o mais objetivo e claro possível ao seu público.


Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender
melhor sobre o assunto. Ajude-nos também a espalhar bons conteúdos sobre o Power BI.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!

28/06/2018 /POR MARCELO DE TARCIO

APRENDENDO POWER BI
COMO CRIAR GRUPOS NO POWER BI (GRUPOS E
COMPARTIMENTOS)
Criar grupos no Power BI é uma forma de melhor dividir e visualizar dados num modelo. Assim pode-se refinar a
visualização criando faixa de valores ou grupo de categorias. Isto serve para dar mais subsídios a análises de relatórios,
ter outras formas de avaliar os dados disponíveis, fazer comparações com outras dimensões, verificar tendências em
diferentes janelas e visões e muito mais.

No ato de criar grupos no Power BI você pode, por exemplo, colocar duas ou mais categorias em uma maior. Pode
agrupar faixas de datas ou de valores, etc.

Há várias formas de criar grupos no Power BI. Nos exemplos abaixo buscamos mostrar estas possibilidades e como é
simples fazer. Você também entenderá como editar e modificar os grupos criados.
Baixe o arquivo de exemplo que utilizaremos em todo este post por este link. Acompanhe passo a passo nossas
explicações por lá.

Como criar grupos no Power BI – Por Datas


Vamos começar criando grupos para visualizações de agrupamentos de datas.

Abra o modelo que disponibilizamos, clique na visualização Dados (1), em seguida selecione a tabela “Calendário
DAX” (2), marque a coluna “NomeDiaSemana” (3) e clique no botão Novo Grupo (4) na faixa de opções Modelagem.
Se preferir clique com o botão direito sobre a coluna “NomeDiaSemana” e clique em Novo Grupo no menu suspenso
que irá aparecer.
Se não sabe ainda como criar uma tabela de calendário no Power BI recomendo a leitura do artigo: Aprenda 2 maneiras
de criar uma tabela Calendário no Power BI.
Na tela seguinte, dentro do quadro Valores não agrupados (1) selecione os dias da semana (Seg à Sex) utilizando a
tecla Ctrl para fazer a seleção de tudo. Clique em Grupo (2).

Renomeie o grupo criado para “Dias Úteis” (1). Voltando ao quadro de Valores não agrupados selecione o restante
“sáb e dom” (2), clique em Grupo (3) novamente e renomeie este último grupo criado para “FDS”.
Em Nome (1) você pode atribuir o nome que desejar para este agrupamento, neste exemplo não faremos nenhuma
modificação, mas isso fica a seu critério. Clique em OK (2) para finalizar.

Como resultado será criado uma nova coluna (1) com o agrupamento e a partir dela é possível criar visualizações e
novas análises. Veja que a coluna aparece na lista de campos também (2).
Grupo com várias Datas – Compartimentos.
É possível criar também o agrupamento pela Data, vamos fazer um exemplo, já diretamente no Relatório.
Clique com o botão direito sobre “Date” em CAMPOS dentro da tabela “Calendário DAX” (1), em seguida clique
em Novo Grupo (2).
Criaremos aqui uma faixa de agrupamento das datas por semestre. Estas faixas são chamadas de “compartimentos”
no Power BI. Para isto faça os seguintes passos na tela que se abre a seguir.
Em Nome (1) mude para “Grupo de Datas”. Em Tamanho do compartimento (2) coloque 6 meses e finalmente clique
em OK.
Com isto criamos mais um agrupamento e na imagem abaixo vemos com podemos utilizar tais grupos para melhorar
nossas opções de visões e análises.

Veja que foi criado o novo grupo “Grupo de Datas” (1). No gráfico da esquerda (2) estão todas as datas com vendas
somadas diariamente, fica até difícil identificar devido a quantidade de colunas. Já no gráfico da direita (3) as vendas
estão agrupadas por semestre. Neste caso muito mais fácil de visualizar e para uma análise semestral facilita bastante.
Os agrupamentos de datas podem ser por Anos, Meses, Quinzenal, Semanal, Dia, Hora. Voce faz da maneira que melhor
lhe ajudar. Caso queira alterar as configurações do grupo, clique com o botão direito sobre o nome do grupo “Grupo de
Datas” na lista de campos e clique em Editar Grupo. Assim consegue mudar de 6 meses para 3 meses por exemplo, ou
1 ano, ou qualquer outra opção disponível.

Criar grupos no Power BI – Por Categoria


Caso queira juntar produtos, indicadores ou qualquer outro item que esteja num relatório, de forma a obter resultados
agrupados o processo é bem parecido com o que já explicamos até o momento.

Desta vez criaremos o grupo diretamente pelo gráfico.

Selecione as colunas que deseja estarem no grupo (1). Para selecionar várias colunas aperte a tecla Ctrl. Clique com o
botão direito após a seleção e em seguida clique em Grupo (2).
Será gerado um grupo com os itens selecionados e os que não foram ganham o nome de “Outro”. Agora faremos alguns
ajustes para deixar os dados mais úteis.

Clique com o botão direito sobre o nome do grupo criado (1) e depois clique em Editar Grupo (2).
Na tela de edição do Grupo mude o Nome para “Grupo Categorias” (1). Mude o nome do grupo criado diretamente no
quadro Grupos e membros para “Roupas” (2). Caso queira pode criar outros grupos selecionando os produtos no
quadro Valores não agrupados. Após fazer todos os ajustes clique em OK (3).
Criar grupos no Power BI – Por Valores
Por fim vamos criar grupos por faixas de valores, isto para saber o quanto se está atingindo de metas, vendas,
resultados dentro de certa faixa de valores.

O processo é praticamente o mesmo que utilizamos na data.

Este agrupamento será montado a partir do preço unitário dos produtos vendidos, ou seja, qual o valor total de vendas
dos produtos dentro das faixas de preço de 0,00 à 100,00, de 100,00 à 200,00 e assim por diante.

Clique com o botão direito sobre o campo “Preço Unit.” (1) e escolha Novo Grupo. Mude o Nome para “Grupo Preço
Unit.” (2). Em Tamanho do compartimento coloque 100 (3), mas se quiser pode ser 50, 200 ou qualquer outro
tamanho. Clique em OK (4).
Assim será criado o grupo com custos unitários onde os resultados são somados para faixas de preço de 100 em 100.

Confira os resultados de tudo que fizemos no arquivo disponibilizado no link logo no início deste artigo. Observará o
quanto esta característica do Power BI é útil para suas análises e comparações. O Power BI é cheio de recursos que
devem ser aproveitados e no que depender de nós disponibilizaremos o máximo de conhecimento aqui em nosso blog.

Observem que para cada um dos exemplos iniciamos o processo de forma diferente, porém nada impede que o
agrupamento de datas seja feito da mesma forma que iniciamos o agrupamento de valores ou categoria e vice-versa. A
intenção era demonstrar as várias maneiras de obter o mesmo resultado.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender
melhor sobre o assunto. Ajude-nos também a espalhar bons conteúdos sobre o Power BI.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
APRENDENDO POWER BI
APRENDA 2 MANEIRAS DE CRIAR UMA TABELA
CALENDÁRIO NO POWER BI
Criar uma tabela Calendário talvez seja uma das atividades que você mais fará nos seus modelos de dados. Esta tabela
vai constar em praticamente todos os modelos a serem criados, pois uma das maneiras mais comuns e efetivas de
segmentação de dados é por data.
Leia abaixo neste artigo as duas maneiras que consideramos mais efetivas para criar uma tabela Calendário. É
possível utilizar também estas instruções para criar nos suplementos do excel: Power Pivot (a primeira
maneira); Power Query (a segunda forma que apresentamos). Este artigo busca abranger todos os possíveis campos
a se criar na tabela. Caso você perceba alguma coluna que seja interessante acrescentar, deixe seu comentário no final
do artigo.

Em geral queremos visualizar e comparar dados por dia, mês, semana, dia da semana, período do mês, etc. Para ter
todas estas comparações à disposição criar uma tabela Calendário é a melhor solução. Com esta tabela, relacionada às
demais tabelas, fica possível fazer todas as análises possíveis em relação a datas.

Através de uma segmentação e organização de dados por datas bem-feita conseguimos também utilizar as funções de
inteligência de tempo, assim conseguir análises ainda mais ricas em comparações de períodos.
Como criar uma tabela Calendário no Power BI
Apresentaremos aqui duas formas para tal. A primeira utilizando as funções da Linguagem DAX e a segunda utilizando
o Power Query no Editor de Consultas. Nas duas formas será gerado uma tabela de datas com várias colunas úteis para
comparações e visualizações.

Antes de iniciarmos no conteúdo em si, baixe nosso modelo contendo o que ensinamos neste artigo na prática. Isto
facilitará o acompanhamento do que explicamos. Você também poderá utilizar este material baixado no futuro caso
queira recordar como fazer.

Link do nosso exemplo para criar a tabela de Calendário no Power BI.

Criar uma tabela Calendário utilizando Linguagem DAX

No nosso entendimento esta é a forma mais prática de todas, apesar de que no Power Query também é bem tranquilo
e usual. Mas a nossa preferência é esta devido a utilizar as funções DAX.

Abaixo o passo a passo para criar uma tabela Calendário utilizando funções da Linguagem DAX.

Utilize o modelo que disponibilizamos no link acima para praticar e acompanhar os exemplos.
Dentro do Power BI Desktop, vá na faixa de opções Modelagem clique em Nova Tabela.
Será criada uma nova tabela e também será aberto uma linha para digitar a função DAX que possibilita a criação desta
tabela. Perceba como aparecerá na figura abaixo.
Neste momento delete a expressão “Tabela = “ e digite a expressão abaixo para criar uma tabela Calendário.

1 CalendarioDAX =
2 CALENDAR ( DATE ( 2017; 01; 01 ); DATE ( 2018; 12; 31 ) )
Aperte Enter.
Veja abaixo o resultado. Clique na visualização Dados para ver exatamente como está na tela abaixo.
Foi criado uma tabela com o nome CalendárioDAX, conforme digitamos, com uma coluna chamada “Date”. Esta coluna
tem a menor data 01/01/2017 e a maior data 31/12/2018 conforme definimos na função CALENDAR. Esta função cria
uma tabela com uma data mínima e uma data máxima, preenchendo todas as datas existentes neste intervalo.

A função CALENDAR aceita como mínimo e máximo expressões que retornem uma data, assim a grande vantagem de
criar uma tabela Calendário utilizando a linguagem DAX é esta. Ao invés de usar datas fixas podemos utilizar a data
mínima e máxima da tabela principal do modelo.

No exemplo abaixo a expressão está fazendo isto.

1 CalendarioDAX =
2 CALENDAR ( MIN ( Funcionarios[Admissão] ); MAX ( Funcionarios[Admissão] ) )

Neste caso iremos considerar o intervalo de datas entre a menor data e a maior data que já existe na tabela
Funcionários. Assim na hora de avaliar e utilizar a data para comparações utilizamos somente um intervalo que já
existe. Com isso deixamos as datas de análises mais limpas, constando apenas o intervalo que interessa.

Criando o restante das colunas da Tabela Calendário

Criada a principal coluna (coluna “Date”), todas as outras agora vão derivar dela.

Criaremos agora mais três colunas (dia, mês e ano). Para isto acrescente mais colunas clicando Nova Coluna na faixa
de opções Modelagem.
Vamos criar mais três expressões, uma de cada vez. Crie na ordem abaixo:

1 Dia =
2 DAY ( 'CalendarioDAX'[Date] )
3
4 Mês =
5 MONTH( 'CalendarioDAX'[Date] )
6
7 Ano =
8 YEAR( 'CalendarioDAX'[Date] )

Após o processo teremos uma coluna contendo somente a informação de “Dia”, outra contendo o “Mês” e outra com o
“Ano”.
As próximas etapas serão a criação das colunas de dia da semana, nome do mês completo, nome do mês curto e
trimestre. Seguindo o mesmo procedimento para criar uma Nova Coluna, utilize as expressões abaixo nesta ordem.

1 DiaSemana =
2 FORMAT ( 'CalendarioDAX'[Date]; "ddd" )
3
4 MêsNome =
5 FORMAT( 'CalendarioDAX'[Date];"mmmm" )
6
7 MêsCurto =
8 FORMAT( 'CalendarioDAX'[Date];"mmm" )
9
10 Trimestre =
11 FORMAT( 'CalendarioDAX'[Date];"q" ) & "T"
12
13 Trim/Ano =
14 CalendarioDAX[Trimestre] & CalendarioDAX[Ano]

Utilizamos também, neste caso, a função FORMAT para que o resultado fosse exatamente na forma que nos ajude na
visualização e análise. Assim fica mais amigável na hora de manipular e mostrar os eixos de data.

Veja como ficou a tabela após acrescentar todas as colunas.


Além das colunas criadas, é possível pensar em outras e acrescentá-las de forma a atender suas necessidades, por
exemplo, 1ª e 2ª quinzenas, Bimestre, Quadrimestre, Semestre, 3 últimos dias do mês e assim vai.

Terminamos a parte de criar uma tabela Calendário no Power BI utilizando as funções da linguagem DAX.

Criar uma tabela Calendário utilizando Editor de Consultas (Power Query)


Outra forma de criar uma tabela Calendário no Power BI é utilizando o Editor de Consultas. Neste modo utilizaremos
a interface do Power Query e um pouco de Linguagem M, recomendo a leitura do artigo: Linguagem M. A Linguagem
da Power Query no Power BI, para entender mais sobre o assunto.

Este método é o mais utilizado atualmente e seguindo o passo a passo abaixo será simples para você criar.

Clique no Editor de Consultas na faixa de opções Página Inicial.


Dentro do ambiente do Editor de Consultas clique em Obter Dados e em seguida Consulta Nula.
Agora é hora de utilizar a Linguagem M. Utilizaremos a função “List.Dates” para criar uma lista de datas com uma data
inicial, tempo de duração e forma de incremento (se será por dia, por hora, por mês, etc.).
Será aberto, logo após clicar em Consulta Nula, um espaço para digitar. Observe na figura abaixo (1) a função da
Linguagem M que digitamos neste espaço.
Digite então conforme abaixo e em seguida aperte Enter.

1 = List.Dates (#date(2015,1,1), 365 * 3, #duration(1,0,0,0))

Esta função tem 3 partes, onde na primeira definimos a data inicial da lista. Utilizamos a função “#date” para colocar
esta data inicial no formato que o Power Query entenda.

Na segunda parte é definido até quando a lista será completada. Colocamos aqui 3 anos, representado na expressão
“365 * 3”. Note que fazendo desta forma é possível utilizar expressões com esta, não precisa fazer o cálculo de cabeça.

E por fim, na terceira parte será definido como a lista será incrementada, no caso utilizamos a função “#duration” e
definimos o incremento em 1 dia por vez. Na função “#duration” é possível definir os dias, horas, minutos, segundos.
No caso (1,0,0,0) foi definido 1 dia, 0 horas, 0 minutos e 0 segundos.

Seguindo o procedimento será gerada a lista dos dias.


Clique em Para a Tabela (conforme passo 2 na figura acima) para transformar a lista em uma tabela. Na janela que
aparecer clique em OK.

Renomeie “Column1” para “Data” (1). Mude o nome da tabela de “Consulta1” para “CalendarioPQ” (2).
O próximo passo será alterar o tipo de dados da coluna “Data” para Data. Clique com o botão direito sobre a coluna
(passo 1 abaixo). Posicione o mouse sobre Alterar Tipo e em seguida clique em Data.

A vantagem do Power Query é a facilidade de fazer algumas modificações.

No caso iremos adicionar novas colunas somente com as informações que queremos. Isto é feito de forma bem simples
pela interface gráfica.

Clique em Adicionar Colunas (2), clique em Data (3), posicione o mouse em Dia e finalmente clique em Dia.
Observe que será criada uma nova coluna com o nome “Dia”, contendo somente o Dia da coluna “Data”.

Vamos agora criar as colunas de Mês (Data/Mês/Mês), Ano (Data/Ano/Ano), Nome do Mês (Data/Mês/Nome do Mês),
Nome do Dia (Data/Dia/Nome do Dia) e Trimestre (Data/Trimestre/Trimestre do Ano). Para isto repita os passos que
fizemos para criar a coluna “Dia”.

Importante: Antes de inserir cada uma das colunas selecione a coluna “Data” novamente.

Veja abaixo o resultado após criar todas as colunas citadas acima.


Depois de criar uma tabela Calendário utilizando o Power Query clique no botão Fechar e Aplicar na faixa de
opções Página Inicial para salvar tudo que foi feito no Editor de Consultas.

Relacionando a tabela Calendário com as outras tabelas


Para utilizar de fato esta tabela Calendário criada é necessário relacionar com as outras tabelas do modelo de dados.
Este relacionamento será feito a partir da coluna “Data” da tabela Calendário para uma coluna que contenha Datas da
outra tabela. As colunas devem ser do mesmo tipo de dados, ou seja, tipo de dados de data.

Para visualizar os relacionamentos clique no botão Relacionamentos no painel de Visuais (1 na figura abaixo).

Crie um relacionamento novo selecionando a tabela CalendarioDAX (utilizaremos esta para explicar este passo).
Dentro desta tabela clique em “Date” segure e arraste a linha que será formada até a tabela Funcionários sobre o nome
“Admissão”. Solte o cursor neste ponto.

Será criado um relacionamento entre as duas tabelas (2 na figura abaixo).


Com este relacionamento entre as duas tabelas será possível utilizar a tabela Calendário para manipular as informações
sobre datas nos dados da tabela Funcionários.
Assim encerramos esta artigo mostrando as duas formas que utilizamos para criar uma tabela Calendário no Power BI.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor
sobre o assunto.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
APRENDENDO POWER BI
COMO CRIAR GRÁFICO DE PARETO NO POWER BI DE
FORMA SIMPLES
Se você quer aprender, de forma simples, como criar gráfico de Pareto no Power BI, leia o passo a passo abaixo. Esse
gráfico importantíssimo para Análise de Dados em geral, será muito útil se você souber usá-lo! Vai ver que é bem
simples e fácil seguindo o que ensinamos neste artigo.

Se quiser aprender ainda mais sobre Power BI clique abaixo e baixe nosso guia para iniciantes contemplando boa parte
das noções para já sair criando seus relatórios nesta poderosa ferramenta.

Aproveite a oportunidade de aprender um pouco mais de Power BI clicando aqui!

Em um gráfico de Pareto, a informação principal é mostrada em uma barra e uma escala cumulativa é mostrada em
uma linha para comparar todas as barras. Esse gráfico pode ser muito útil ao analisar causas de falha em um processo,
composição de portfólio, ou até mesmo analisar uma demonstração de resultados.

Para ilustrar o que estamos falando, veja abaixo um gráfico de Pareto que fizemos no Power BI. No eixo esquerdo temos
as vendas e no eixo direito temos o percentual acumulado de todas as vendas. Uma análise possível com esses dados é
que as primeiras quatro barras totalizam aproximadamente 80% de todas as vendas.
Ok! Agora que entendemos como utilizar, vamos aprender a como criar gráfico de pareto no Power BI!

Primeiro de tudo, abra o Power BI Desktop, clique em Obter Dados, e importe a planilha que utilizaremos nesse
exemplo. Para fazer o download, basta clicar aqui.
Como criar Gráfico de Pareto no Power BI

Após selecionar o arquivo, selecione a tabela fVendas e clique em Carregar.


Como o nosso arquivo tem mais de um registro para o mesmo produto, teremos que sumarizar (resumir) o arquivo em
uma outra tabela. Nosso arquivo modelo está estruturado assim, pois acreditamos que a maioria dos usuários utilizam
bases de dados que possuem vários registros com o mesmo nome. Assim, conseguimos já resolver esses dois problemas
de uma vez só!

Para criar essa nova tabela com os dados resumidos, é bem simples! Basta abrir a aba “Modelação” (ou Modelagem) e
clicar em “Nova tabela”. Note que aparecerá uma barra de fórmulas para você informar o que estará incluso nessa nova
tabela. Para isso, vamos inserir a expressão DAX abaixo. (DAX é a linguagem para fórmulas no Power BI. Clique
aqui para aprender mais ou baixe nosso e-book gratuito!)

1 Resumo = SUMMARIZE(fVendas;fVendas[Produto];"Total de Produtos";SUM(fVendas[Quantidade]))

Explicando: Aqui estamos sumarizando (resumindo) a tabela fVendas e usando a coluna “Produto” para ser nosso valor
único. Além disso, vamos resumir os Produtos pela somatória da quantidade vendida e dar o nome a essa nova coluna
de “Total de Produtos”.
Ficará assim, então:

Com a tabela “Resumo” criada, estamos prontos para criar as medidas que vão nos ajudar a construir o gráfico!

Clique com o botão direito na tabela “Resumo” e crie uma nova coluna.
Insira a seguinte expressão DAX na barra de fórmulas:

1 Ranking = RANKX(Resumo;Resumo[Total de Produtos])

Essa fórmula cria um Ranking que nos ajudará a calcular os valores cumulativamente.
Agora, adicione uma Nova Medida para o “Total Cumulativo”. Basta clicar com o botão direito e selecionar “Nova
Medida”. Insira a seguinte expressão DAX:

1 Total Cumulativo = CALCULATE(SUM(Resumo[Total de Produtos]);FILTER(ALLSELECTED(Resumo);


2 Resumo[Ranking] <= MAX(Resumo[Ranking])))
Repita o processo de adicionar medida para criar as “Vendas Totais”:
1 Vendas Totais = CALCULATE(SUM(Resumo[Total de Produtos]);ALLSELECTED(Resumo))

Para a última medida, repita o processo de adicionar outra medida e insira a seguinte expressão DAX:

1 Percentual Cumulativo = [Total Cumulativo]/[Vendas Totais]

Como o Percentual Cumulativo é um percentual, temos que modelar essa medida como tal. Para isso, selecione a
medida, clique na aba “Modelação (ou Modelagem)” e no Formato, selecione “Percentagem (ou Percentual)”.
Com as medidas criadas, agora é só inserir o gráfico no Painel. Para isso, Crie um gráfico de Colunas e Linhas e adicione
os seguintes campos: Produto, Total de Produtos e Percentual Cumulativo.
Por fim, clique no canto superior direito do gráfico e selecione “Ordenar Por Total de Produtos”.
Isso altera a ordem dos produtos e pronto! Você montou um gráfico de Pareto no Power BI!
Conseguiu aprender como criar gráfico de pareto no Power BI? Quer conferir se está tudo certo ou ficou com alguma
dúvida? Baixe o nosso arquivo modelo e veja todo o tutorial na prática.

Gostou do tutorial? Compartilhe com seus colegas usando os botões de compartilhamento em redes sociais abaixo! Não
se esqueça de comentar esse post e nos contar o que está achando do conteúdo ou mesmo uma dúvida que tenha!

Até a próxima!

11/12/2017 /POR FERNANDO HENRIQUE QUEIROZ

APRENDENDO POWER BI
COMO ORDENAR MESES CRONOLOGICAMENTE NO
POWER BI
No Power BI, por padrão, os dados são ordenados de acordo com a própria coluna em que estão. Ou seja, se é um campo
numérico será ordenado de conforme estes números. Se é um texto, será ordenado alfabeticamente. Isso significa que
para uma coluna de texto com o nome dos meses, a ordem padrão será alfabética. Mas não faz muito sentido olharmos
meses alfabeticamente, certo? A seguir então está uma forma simples de como ordenar meses no Power BI.
Se você se encontrar nessa situação, é muito simples corrigir essa ordem!
Vamos descobrir como ordenar meses no Power BI!
O primeiro passo é conectar a base de dados ao nosso Power BI. Basta clicar em “Obter dados” (1) e selecionar “Excel”
(2). Localize o arquivo modelo (clique aqui para baixar) e clique em “Abrir” (3).
Na aba de Navegação, selecione a tabela fVendas (1) e clique em “Carregar” (2).
Vamos criar um gráfico para analisar as Vendas por Mês. Para isso, nas Visualizações, selecione o gráfico de coluna (1)
e os campos “Mês” e “Vendas” (2). Teremos o seguinte resultado (3):

Como a coluna “Mês” está formatada como texto, o eixo fica estruturado em ordem alfabética.

Para corrigir isso, basta selecionar o campo de “Mês” (1), abrir a aba “Modelação” (2), selecionar “Ordenar por coluna”
e “Data” (3).
Pronto! O gráfico será atualizado e teremos nossa ordem ajustada.
É muito simples, certo?

Explicando: ao estabelecer que a coluna “Mês” seja ordenada pela coluna “Data”, o Power BI passou a considerar a
ordem numérica (cronológica) das datas. Isso fez com o que os textos com o nome dos meses fossem ordenados de
acordo com uma outra coluna, que não seja alfabética.
Explorando possibilidades

Além de ordenar nome dos meses, podemos pensar em outros usos para a função “Ordenar por coluna”:

 Ordenar itens de uma Segmentação de Dados baseado em outros critérios, como prioridade, categorias, etc.
 Ordenar o nome dos meses de acordo com um Período Financeiro ou Ano Fiscal, para empresas que usam
diferentes períodos de apuração.
Você sabe o que é DAX? Se não sabe ou quer saber melhor leia este artigo.
Gostou deste passo a passo de como ordenar meses no Power BI de forma que faça sentido? Ficou com alguma dúvida?
Deixe seu comentário e nos ajude a melhorar ainda mais nosso conteúdo. Siga nosso blog!

Não se esqueça de compartilhar este post através dos botões de redes sociais abaixo!

13/09/2017 /POR FERNANDO HENRIQUE QUEIROZ

APRENDENDO POWER BI
COMO CALCULAR A VARIAÇÃO PERCENTUAL ANO A
ANO (YOY) NO POWER BI
O indicador Ano a Ano ou Year Over Year (YoY) é um método que calcula e avalia e variação de volumes de um mês
ou conjunto de meses em relação ao mesmo período do ano anterior. Isso permite que a análise seja feita em um
contexto mais amplo. Ou seja, é mais abrangente do que simplesmente comparar a variação em relação ao mês
anterior.
Quando usar a medida Percentual YoY?
Supomos que você identificou que no mês de setembro de 2017, as visitas no seu site caíram 5% em relação a agosto.
Será que a performance do site está muito ruim? Talvez. Mas se adicionarmos o contexto YoY e compararmos com
setembro de 2016, observamos que houve um crescimento de 18% no período de um ano. Aqui já vemos um cenário
bem mais positivo!

Apesar da redução de um mês para o outro, quando comparamos um período maior, podemos tirar outras conclusões
e realizar outras análises. É para responder esse tipo de pergunta que aplicamos os conceitos de YoY.
Vamos começar a trabalhar!
O primeiro passo é conectar a base de dados ao nosso Power BI. Basta clicar em “Obter dados” (1) e selecionar “Excel”
(2). Localize o arquivo modelo (clique aqui para baixar) e clique em “Abrir” (3).
Na aba de Navegação, selecione a tabela fVendas (1) e clique em “Carregar” (2).
Com os dados importados, vamos criar as medidas! (Para você que é iniciante em Power BI e quer avançar mais, clique
na imagem abaixo e faça o download do nosso eBook completo e gratuito!)

Aproveite a oportunidade de aprender um pouco mais de Power BI clicando aqui!

Depois de conectar o Power BI Desktop com nossa planilha, vamos criar as Medidas!

Clique em “Nova Medida” (1) e na barra de fórmulas, insira o texto (2) a seguir:
YoY = (DIVIDE(CALCULATE(SUM(fVendas[Vendas]); fVendas[Ano]=YEAR(NOW()));
CALCULATE(SUM(fVendas[Vendas]);fVendas[Ano]=YEAR(NOW())-1))-1)
Traduzindo: Nessa medida estamos dividindo a soma das Vendas deste Ano pela soma das Vendas do ano passado. Para
isso usamos a fórmula “NOW” que considera a data atual do sistema. Ao final, subtraímos por 1 para obtermos apenas
diferença percentual.
Outra forma de calcular o percentual ano a ano (YoY) no Power BI mais organizado é declarando variáveis, dessa forma:

%YoY =
VAR AnoPassado = CALCULATE(SUM(fVendas[Vendas]);fVendas[Ano]=YEAR(NOW())-1)
VAR EsteAno = CALCULATE(SUM(fVendas[Vendas]);fVendas[Ano]=YEAR(NOW()))
RETURN
(EsteAno/AnoPassado)-1
Traduzindo: O que estamos fazendo aqui é declarar as variáveis “AnoPassado” e ”EsteAno”, depois dividimos um pelo
outro para calcularmos a variação. Também subtraímos por 1 para obter a diferença percentual. Se você quer entender
mais sobre declaração de variáveis nas fórmulas DAX, clique aqui e confira um tutorial mais completo.
Agora é só modelar as medidas e criar relatórios!

Vamos alterar nossa medida para o formato de Percentual. Para isso, selecione a medida (1) e na aba Modelagem (2)
selecionamos o Formato: Percentual (3).

Para visualizar essa informação, vamos criar um gráfico de colunas (1) e selecionar (2) a coluna “Data” e a medida “%
YoY” (2). Vamos também remover (3) do Eixo os campos de “Ano”, “Quadrimestre” e “Dia”, pois nossa análise será
apenas em relação aos meses (“Months”), para isso basta clicar no “X” ao lado de cada campo.
Além disso, podemos usar a guia Formato (1) para adicionar Etiquetas de dados (2) e alterar a cor dos dados (3) no
gráfico.
Após alguns ajustes no layout, nosso gráfico ficou assim:
Analisando as informações

Percebemos que no mês de novembro e dezembro tivemos os maiores crescimentos em relação ao ano anterior (15,8%
e 11,45%, respectivamente). Caso tivéssemos alguma campanha de marketing nesses dois meses, podemos inferir que
a campanha foi bem-sucedida.

Em compensação, o mês de maio apresentou o menor índice YoY (-8,0%). Isso significa uma queda na quantidade de
vendas em relação ao mês de maio do ano anterior.
Outras análises em um contexto mais amplo e o cruzamento com outras informações estratégicas da empresa, podem
nos levar a diversas conclusões.

Agora que você já sabe calcular a variação Ano a Ano (YoY) você pode aplicar nos seus relatórios e ampliar suas
análises!

Gostou deste passo a passo? Ficou com alguma dúvida? Deixe seu comentário e nos ajude a melhorar ainda mais nosso
conteúdo.

Não se esqueça de compartilhar este post através dos botões de redes sociais abaixo!

28/08/2017 /POR FERNANDO HENRIQUE QUEIROZ

APRENDENDO POWER BI
DECLARANDO VARIÁVEIS NO POWER BI PARA
CALCULAR O CAGR
Nos posts anteriores, mostramos como calcular o CAGR pelo método direto (criando várias medidas). Fizemos também
uma análise de como aplicar o CAGR na prática. E concluímos que o CAGR se trata de uma medida fundamental na
análise de dados! Mas por que não otimizar o cálculo utilizando variáveis no Power BI?
O que é o CAGR?

O CAGR (Compound Annual Growth Rate – Taxa de Crescimento Anual Composta) é amplamente utilizado para analisar
investimentos, crescimento de mercado, valorização financeira, retorno sobre investimentos, etc.
Para calculá-lo utilizando a fórmula:

CAGR = (Valor Final / Valor Inicial)^(1/número de anos) -1

Não deixe de ler os dois artigos citados acima para um melhor entendimento.
Como calcular o CAGR declarando variáveis no Power BI?
Além da maneira que vimos no post anterior, outra forma de escrever essa fórmula é declarando variáveis, colocando
toda a fórmula em uma única medida.
O primeiro passo é conectar a base de dados ao nosso Power BI. Clique em “Obter dados”, depois selecione “Excel” e
por fim “Conectar” Localize a planilha baixada “PIB_Mundial_uaiSmart.xlsx” e clique em “Abrir”. (Se ainda não
baixou, clique aqui para baixar!)
Na aba de Navegação, selecione a tabela PIB_Mundial e clique em “Carregar”.
Com os dados importados, vamos criar as medidas! (Para aprender mais sobre Power BI, baixe o nosso eBook completo
e gratuito!)

Aproveite a oportunidade de aprender um pouco mais de Power BI clicando aqui!

Clique em “Nova Medida” e na barra de fórmulas, insira o texto a seguir:


CAGR =
VAR ValorInicial = CALCULATE(SUM(PIB_Mundial[Valor (US$)]);
FILTER(PIB_Mundial;PIB_Mundial[Ano]=MIN(PIB_Mundial[Ano])))
VAR ValorFinal = CALCULATE(SUM(PIB_Mundial[Valor (US$)]);
FILTER(PIB_Mundial;PIB_Mundial[Ano]=MAX(PIB_Mundial[Ano])))
VAR NumeroDeAnos = (MAX(PIB_Mundial[Ano])-MIN(PIB_Mundial[Ano]))
RETURN
(ValorFinal/ValorInicial)^(1/NumeroDeAnos)-1
Importante: o nome de cada variável não pode contar espaços. Pode-se utilizar letras maiúsculas para separar palavras
(ex: NumeroDeAnos), ou algum outro separador como o underline (ex: Numero_de_Anos), mas se você escrever “Número
de Anos”, a declaração da variável ficará incorreta.

Vamos entender qual é a lógica dessa medida.


Analisando a fórmula usada

Primeiramente declaramos as variáveis da fórmula (Valor Inicial, Valor Final e Número de Anos).
VAR ValorInicial = CALCULATE(SUM(PIB_Mundial[Valor (US$)]);
FILTER(PIB_Mundial;PIB_Mundial[Ano]=MIN(PIB_Mundial[Ano])))

Nota: Aqui estamos calculando a soma de todos os valores de PIB, filtrada pelo primeiro ano disponível (através da
fórmula MIN)

VAR ValorFinal = CALCULATE(SUM(PIB_Mundial[Valor (US$)]);


FILTER(PIB_Mundial;PIB_Mundial[Ano]=MAX(PIB_Mundial[Ano

Nota: Já para o valor Final, estamos calculando a soma de todos os valores de PIB, filtrada pelo último ano disponível
(através da fórmula MAX)

VAR NumeroDeAnos = (MAX(PIB_Mundial[Ano])-MIN(PIB_Mundial[Ano]))

Nota: Para o Número de anos do período, basta subtrair o último ano (usando MAX) pelo primeiro ano disponível
(usando MIN)

Depois de declararmos as variáveis no Power BI, basta utilizarmos a função RETURN para indicar qual resultado a
medida nos trará. Nesse caso usamos a fórmula:
RETURN
(ValorFinal/ValorInicial)^(1/NumeroDeAnos)-1

Com isso, o Power BI buscará as informações contidas em cada variável e aplicará no resultado final. Agora é só usar a
medida nas suas análises e tomadas de decisão!
Conclusão
Seja pelo método simples ou declarando variáveis, o cálculo do CAGR é utilizado para analisar o crescimento anual
de diversos indicadores, como neste caso, o PIB Mundial.

Sempre que você precisar criar várias medidas para depois consolidar em uma só, experimente usar o método de
declaração de variáveis no Power BI. Assim, você consegue economizar tempo e deixa sua estrutura de dados bem
organizada!

Gostou da dica? Compartilhe com seus colegas usando os botões de compartilhamento em redes sociais abaixo! Não se
esqueça de comentar esse post e nos contar o que está achando do conteúdo ou mesmo uma dúvida que tenha!

18/08/2017 /POR FERNANDO HENRIQUE QUEIROZ

APRENDENDO POWER BI
APLICANDO O CAGR NO POWER BI – ANÁLISE DO PIB
MUNDIAL
Como vimos no artigo anterior, é muito fácil criar as medidas para o cálculo do CAGR no Power BI. Se você ainda não
leu o artigo anterior, é importante que você dê uma olhada, pois boa parte deste passo a passo depende do que foi
ensinado lá!
Chegou a hora de criar um relatório para analisar o CAGR com Power BI do PIB Mundial!
Agora sim a análise fica completa, adicionando visualizações gráficas ao arquivo. Com isso vemos do que o Power BI é
capaz.

O arquivo que utilizamos para construir este passo a passo está disponível para download no final desta página.

Passos para analisar o CAGR com Power BI


O primeiro gráfico será de colunas, para vermos a evolução Ano a Ano do PIB.

Para criá-lo, selecione os campos “Valor (US$)” e “Ano” e clique no gráfico de colunas:
Analisando o gráfico criado, vemos que em 2009 tivemos uma pequena queda no crescimento do PIB (destacado em
vermelho abaixo) provavelmente pela Crise Financeira que tivemos. Além disso, podemos observar uma aceleração no
crescimento do PIB a partir de 2003 (destacado em amarelo abaixo).

Mas como estamos falando de CAGR, qual será o CAGR do Mundo de 1960 a 2016?

Para responder essa pergunta, selecione a medida “CAGR” e o visual “Cartão”. Teremos que o CAGR é 7,65%.
Para melhorar nossa análise, vamos criar uma Segmentação de dados para analisar cada país. Clique no visual
“Segmentação de Dados” e selecione o campo “País”.
Se filtrarmos apenas o Brasil, vemos um CAGR de 8,90% considerando 1960 a 2016. Ainda é possível verificar uma
ascensão no início dos anos 2000 até 2011 (com uma leve estagnada em 2009, provavelmente devido à crise
financeira). E como podemos acompanhar nos noticiários, o PIB brasileiro está em queda desde 2015 e isso pode ser
visto claramente no gráfico.

Seria bem legal se tivéssemos uma visão completa usando um Mapa Mundial, né? Será que no Power BI nós
conseguimos fazer isso?

É claro! Dá só uma olhada:


Para aprender a criar esse mapa, fique de olho no blog e nos siga no Facebook! Em breve postaremos um tutorial bem
detalhado sobre mapas!
Baixe o nosso arquivo modelo que demonstra todos os passos que fizemos para analisar o CAGR com Power
BI. Utilize a caixa abaixo para baixar.

[optin-cat id=”216″]
E aqui está o nosso relatório completo:

Gostou da dica? Compartilhe com seus colegas usando os botões de compartilhamento em redes sociais abaixo! Não se
esqueça de comentar esse post e nos contar o que está achando do conteúdo ou mesmo uma dúvida que tenha!

Até a próxima!

02/08/2017 /POR FERNANDO HENRIQUE QUEIROZ

APRENDENDO POWER BI
COMO CALCULAR O CAGR NO POWER BI: TAXA DE
CRESCIMENTO ANUAL COMPOSTA
Neste artigo iremos mostrar de maneira simples e prática, como calcular o CAGR no Power BI, utilizando dados do PIB
Mundial.

O CAGR (Compound Annual Growth Rate – Taxa de Crescimento Anual Composta) é uma medida bastante utilizada em
análises de investimentos, crescimento de mercado, valorização financeira, retorno sobre investimentos e está
sempre presente nos relatórios financeiros de grandes instituições.

Se você não conhece esse indicador, ele basicamente indica quanto um valor (Faturamento, Receita, Lucro, etc) cresceu
no período que está sendo analisado, considerando uma taxa constante.
Calcular o CAGR no Power BI é muito simples!

E usando os filtros dinâmicos disponíveis no Power BI, é possível usar esse indicador para análises em diversos
contextos!

Para este passo a passo, vamos utilizar os dados do PIB Mundial (disponível no site WorldBank.Org). Para baixar a
planilha que vamos usar nesse exemplo, clique aqui.

A fórmula para calcular o CAGR é:


CAGR = (Valor Final / Valor Inicial)^(1/número de anos) -1
Uma das formas de aplicarmos essa fórmula para nossos dados é: criar uma medida para cada variável da fórmula. Ou
seja, vamos criar uma medida “Valor Inicial”, outra “Valor Final”e por fim uma para “Número de anos”.

Depois vamos consolidar todas essas “sub-medidas” em uma Medida Principal, que será o “CAGR”.
Vamos começar então!
O primeiro passo é conectar a base de dados ao nosso Power BI. Clique em “Obter dados”, depois selecione “Excel” e
por fim “Conectar” Localize a planilha baixada “PIB_Mundial_uaiSmart.xlsx” e clique em “Abrir”. (Se ainda não
baixou, clique aqui para baixar!)
Na aba de Navegação, selecione a tabela PIB_Mundial e clique em “Carregar”.
Com os dados importados, vamos criar as medidas! (Para aprender mais sobre Power BI, baixe o nosso eBook completo
e gratuito!)

Clique em “Nova Medida” e na barra de fórmulas, insira o texto a seguir:


Valor Inicial = CALCULATE(SUM(‘PIB_Mundial'[Valor
(US$)]); FILTER(PIB_Mundial;PIB_Mundial[Ano]=MIN(PIB_Mundial[Ano])))
Traduzindo: nessa fórmula estamos calculando (CALCULATE) a soma (SUM) do Valor do PIButilizando um filtro (FILTER)
na tabela PIB_Mundial, que deve considerar como Ano selecionado o primeiro Ano disponível (MIN).
Repita o mesmo processo para as outras duas medidas, utilizando as formas abaixo.

Valor Final = CALCULATE(SUM(‘PIB_Mundial'[Valor


(US$)]);FILTER(PIB_Mundial;PIB_Mundial[Ano]=MAX(PIB_Mundial[Ano])))
Traduzindo: nessa fórmula estamos calculando (CALCULATE) a soma (SUM) do Valor do PIButilizando um filtro (FILTER)
na tabela PIB_Mundial, que deve considerar como Ano selecionado o último Ano disponível (MAX).
Número de Anos = (MAX(PIB_Mundial[Ano])–MIN(PIB_Mundial[Ano]))
Traduzindo: nessa fórmula estamos buscando o maior (último) ano disponível e subtraindo pelo menor (primeiro) ano
disponível.
As funções utilizadas neste passo a passo utilizam a linguagem DAX (Data Analysis eXpression), que é a linguagem
utilizada na criação de medidas e cálculos no módulo de PowerPivot do Power BI, bem como em outras aplicações da
Microsoft.

Pronto! Medidas criadas.


Agora com as medidas criadas, ficou fácil! Você se lembra da fórmula?

Utilzando a fórmula CAGR no Power BI


CAGR = (Valor Final / Valor Inicial)^(1/número de anos) -1

Vamos criar uma Nova Medida juntando as outras que criamos. Clique em “Nova Medida” e na barra de fórmula, insira:

CAGR = ([Valor Final]/[Valor Inicial])^(1/[Numero de anos])-1

Vamos alterar o formato da nossa medida para Porcentagem. Para isso, clique na aba Modelagem, selecione a medida
CAGR (clique no nome da medida e não na caixa de seleção) e por fim, selecione o Formato Percentual.
Tudo pronto! Criamos a medida para cálculo do CAGR no Power BI e agora é só aplicar nos seus relatórios!
Mas que tal aplicar essa medida em gráficos e deixar seu relatório mais completo?
Veja também como fazer tudo que ensinamos aqui sobre CAGR no Power BI em vídeo.
Clique aqui e confira a nossa Análise do PIB Mundial. Agregamos gráficos e visualizações deixando uma análise bem
interessante da aplicação do CAGR no Power BI. Ele é a continuação deste artigo e finaliza o que ensinamos aqui.
Neste artigo você vai conseguir também baixar nosso arquivo em “.pbix” e usar como modelo.

Gostou da dica? Compartilhe com seus colegas usando os botões de compartilhamento em redes sociais abaixo! Não se
esqueça de comentar esse post e nos contar o que está achando do conteúdo ou mesmo uma dúvida que tenha!

Até a próxima!
02/08/2017 /POR FERNANDO HENRIQUE QUEIROZ

APRENDENDO POWER BI
COMO ALTERAR A FONTE DE DADOS NO POWER BI
Aprenda, com o conteúdo deste artigo, como alterar a fonte de dados no Power BI. Assim conseguirá realizar esta tarefa
facilmente com este roteiro passo a passo direto ao ponto.
Imagine que seu relatório no Power BI esteja bem estruturado e pronto para gerar valiosos insights para tomada de
decisão. Mas por algum motivo você precisa consultar seus dados de uma outra fonte de dados.

Talvez você precisou alterar o nome do arquivo fonte para deixa-lo nos novos padrões da sua empresa. Talvez outra
pessoa mudou o nome do arquivo. Talvez você criou uma outra planilha com mais linhas de dados e quer aproveitar a
estrutura do seu relatório. Ou talvez você estava com uma base de dados no seu disco local e precisava coloca-la em
uma pasta na rede.

Seja lá qual for a razão, logo a seguir você saberá como alterar a fonte de dados no Power BI de forma bem simples.

A alternativa mais fácil e direta é seguindo esses passos:

Clique em Configuração da fonte de dados ou Definições de origem de dados no menu do Editor de Consultas,
como se vê na figura abaixo:
Será aberta uma janela e neste local selecione o arquivo fonte que você quer alterar e clique em Alterar Origem… (ou
dependendo da sua versão: Alterar Fonte…).
Se abrirá uma nova janela, para que seja especificado o caminho para a nova fonte de dados, informe este caminho
mais o arquivo e clique em Ok.

O Power BI se encarregará de validar as informações e ajustar o Modelo de Dados.


Outra alternativa um pouco mais específica é abrir o Editor de Consultas, selecionar a Tabela que contém os dados
do arquivo que você precisa ajustar e alterar. Observe no painel de Etapas Aplicadas, que fica totalmente à direita, o
primeiro passo nesta lista de etapas é justamente a definição da Origem dos dados (Fonte).
Para isso, clique no símbolo de engrenagem e altere o caminho de Origem para o novo arquivo. Clique em Ok. Por fim,
no menu superior, faixa de opções da Página Inicial, clique em Fechar e Aplicar. Com isso, você sairá do Editor de
Consultas.

Bem prático, certo? Diferentemente de outras ferramentas, no Power BI o risco de perder vínculo entre as bases e o
reporte é mínimo! E é facilmente reparado. E com estas dicas agora você sabe como alterar a fonte de dados no Power
BI.

Temos um vídeo ensinando como alterar as fontes de dados, assista e veja como nós fazemos.

Você ainda é novo no Power BI e quer aprender mais? Aproveite nosso Guia SMART para Iniciantes, clique abaixo para
baixa-lo gratuitamente.
Aproveite a oportunidade de aprender um pouco mais de Power BI clicando aqui!

Gostou da dica? Compartilhe com seus colegas usando os botões de compartilhamento em redes sociais abaixo! Não se
esqueça de comentar esse post e nos contar o que está achando do conteúdo ou mesmo uma dúvida que tenha!

Até a próxima!

5 FUNÇÕES DAX PARA USAR MUITO NO POWER BI


Em geral as pessoas se assustam quando se fala em fórmulas e funções. Isto vale para qualquer programa que as utilize (excel,
Power BI, etc.). Neste artigo falamos de 5 funções DAX para usar e abusar no Power BI ou Power Pivot. Não são as top mais
utilizadas, mas são funções essenciais para desenvolver um bom modelo de dados.

Abaixo temos um e-book que contém além destas 5 mais outras 10 funções clique abaixo e faça o download deste arquivo e dê
uma turbinada nos seus modelos.
Se você já utiliza o Power BI já percebeu o quanto é tranquilo criar visualizações. Mas também percebeu que somente isto não é
suficiente, pois queremos também ver os dados em um período de tempo específico, com alguns filtros e com uma informação
determinada. Isto seria impossível apenas com os dados puros.

O bom que não precisar ser expert para execuções as principais funções DAX, um conhecimento básico de DAX (Data Analysis
eXpression) já resolve. Assim nosso objetivo aqui é justamente este, lhe dar algumas funções DAX para usar em quase todos os
seus modelos de dados. O legal é que estas funções não são somente para quem está começando, quem já está na ativa e ainda
não utiliza todas elas, vai aproveitar este conteúdo também.

São funções DAX para usar no seu dia a dia.


Ajudarão a tornar seu trabalho mais dinâmico, mais inteligente.

Então, nas linhas abaixo, você aprenderá sobre as funções: FILTER, ALL, RELATED, TOTALYTD e CALCULATE.
Para melhor exemplificar as funções DAX que apresentamos, baixe o arquivo do Power BI Desktop neste link.

Siga os passos de descrevemos em seguida para cada função.


No modelo que você acabou de baixar (se não baixou, aproveite este momento para fazer isto), há 3 tabelas, veja na figura abaixo
como são estas tabelas. Veja as mesmas na visão “Dados”.

Na tela abaixo veja como ficou o relacionamento entre as tabelas na visão “Relacionamentos”.
Criar as 5 funções DAX para usar no Power BI
1. Função FILTER
Esta função é utilizada para retornar um subconjunto de uma tabela ou expressão.

Esta fórmula tem a seguinte estrutura: FILTER (<tabela>, <filtro>)


Para exemplificar vamos dizer que você queira saber quantas compras foram feitas e que somaram mais que R$ 1.500. Neste
exemplo vamos utilizar também a função COUNTROWS, que conta o número de linhas em uma tabela específica e utilizando junto
com FILTER consegue retornar uma contagem mais direcionada.
Na visão Relatórios clique (1) na Tabela Vendas conforme tela acima, em seguida escolha a faixa de opções Modelagem e clique
(2) em Nova Medida. Será aberto uma barra para digitar a medida, apague o que está escrito e digite a linha abaixo:
Vendas acima de 1500 = COUNTROWS(FILTER(Vendas;Vendas[Valor]>1500))
O primeiro parâmetro “Vendas” identifica uma tabela ou uma expressão que resulta uma tabela. O segundo parâmetro
“Vendas[Valor]>1500” representa uma expressão de falso/verdadeiro que avalia cada linha da tabela encontrando aquelas que
satisfazem a regra.

A função FILTER nunca é usada sozinha, sempre é utilizada em conjunto com uma outra função. No exemplo acima FILTER
serviu para retornar dados dentro de uma condição e em seguida a outra função contou este resultado.

Veja o resultado (foi utilizada a visualização Cartão)

2. Função ALL
Esta função é utilizada para retornar todas as linhas de uma tabela ou valores em uma coluna, ignorando qualquer filtro que tenha
sido aplicado.

Esta fórmula tem a seguinte estrutura: ALL (<tabela> ou <coluna>)


Na imagem abaixo note que uma das cidades está desmarcada no filtro, com isto o resultado não está considerando esta cidade.
Queremos manter os filtros, mas em um dos cartões não queremos que os filtros tenham nenhuma influência, então a função para
isso é ALL. Vamos criar uma nova medida e digitar a linha abaixo.

Todas Vendas Puro = COUNTROWS(ALL(Vendas))


Crie um Cartão novo com esta nova medida e verá que o resultado não leva em conta nenhum filtro feito.
Assim como a função FILTER, esta função não pode ser usada sozinha, sempre estará com outra função em conjunto. No caso
utilizamos também a função COUNTROWS para contar todas as linhas sem exceção.

Essa função pode ser utilizada tanto numa tabela quanto numa coluna, limpando qualquer filtro colocado nas visualizações.

3. Função RELATED
A função RELATED retorna um valor relacionado de outra tabela.
Esta fórmula tem a seguinte estrutura: RELATED (<coluna>)
Agora queremos filtrar as vendas feitas em São Paulo, mas o nome da cidade está numa tabela diferente, pois na tabela de
vendas tem somente o código da cidade, mas como há um relacionamento entre as tabelas, podemos utilizar esta função.

Para contar a quantidade de vendas feitas em São Paulo, buscando esta informação de outra tabela, vamos utilizar a linha abaixo,
criando uma nova medida.

Qtde Vendas SP = COUNTROWS(FILTER(ALL(Vendas);RELATED(Local[Cidade])=”São


Paulo”))
Abaixo o resultado, veja que mantemos o filtro.
Utilizamos as 3 funções aprendidas até o momento nesta fórmula, além de COUNTROWS, para fazer a contagem das linhas que
determinam o número de vendas. A função ALL utilizada fará com que a fórmula não considere nenhum dos filtros aplicados. A
função RELATED, neste caso, serviu para apurar mais o filtro e buscar somente informações da cidade de São Paulo, utilizada em
conjunto com a função FILTER.

Colocamos aqui as funções DAX para usar todos os exemplos apresentados de uma vez só.

4. Funções TOTALYTD / TOTALQTD / TOTALMTD


Estas funções são de inteligência de tempo, este tipo de funções são uma das grandes vantagens da Linguagem DAX. Através
delas, como o próprio nome diz, se consegue mais inteligência na análise de dados que envolvem tempo.

Com estas funções é possível manipular dados de período de tempo, tais como, dias, meses, trimestres e anos. Com elas se cria
comparativos entre os períodos. No exemplo vamos utilizar a função TOTALYTD.

Esta fórmula tem a seguinte estrutura: TOTALYTD (<expressão>;<datas>;<filtro>;<data fim ano>)

Vamos então dizer que se queira ver o total de vendas do ano até o momento. Esta função dará este resultado facilmente. Digite a
linha abaixo criando uma Nova Medida (no arquivo está na aba “TOTALYTD”).

Total Vendas Ano = TOTALYTD(SUM(Vendas[Valor]);Calendario[Datas])


O primeiro parâmetro “Vendas[Valor]” identifica a coluna que será agregada. Pode ser uma expressão que traga valores escalados
ou únicos. Neste caso utilizamos junto ao primeiro parâmetro uma expressão com a função SUM que tem o papel de somar todos
os valores da coluna determinada.

O segundo parâmetro “Calendario[Datas]” é onde contém todas as datas possíveis para o relatório. A grande vantagem de funções
de inteligência de tempo é eliminar a necessidade de utilização de fórmulas complexas para se chegar no mesmo resultado. Viu
como foi simples?

No arquivo de exemplo disponibilizado mude as datas de início de fim no filtro e veja que os valores mudam conforme o período
que deseja visualizar.
5. Função CALCULATE
Esta função avalia uma expressão em um contexto que pode ser mudado por filtros específicos. Das 5 funções DAX para usar
apresentadas aqui, esta provavelmente será uma das que você mais utilizará.

Esta fórmula tem a seguinte estrutura: CALCULATE(<expressão>;<filtro1>;<filtro2>;…)

Para este exemplo vamos chegar no resultado do total de valor vendido para todas as cidades. Dá para chegar no resultado
utilizando várias expressões fragmentadas, criando uma fórmula longa e trabalhosa. Mas usando CALCULATE isto é feito de
forma limpa e rápida. Veja a linha abaixo.

Vendas Todas Cidades = CALCULATE(SUM(Vendas[Valor]);ALL(Local[Cidade]))


O primeiro parâmetro “SUM(Vendas[Valor])” traz a coluna que terá seus valores agregados. O segundo parâmetro
“ALL(Local[Cidade])”, como utiliza a função ALL desconsidera qualquer filtro feito e ao mesmo tempo faz com que o cálculo seja
aplicado em relação às cidades. Veja na figura que mesmo com duas cidades não selecionadas a soma das Vendas é total.
A função CALCULATE é uma das mais úteis e poderosas funções DAX, é como se fosse um “SE” superpoderoso que junta vários
SES em uma única expressão.
Esta função tem algumas regras, veja:
 Os parâmetros de filtros não podem se referenciar à Medidas;
 As expressões não podem usar funções que procuram ou retornam tabelas inteiras;
São funções DAX bastante úteis no Power BI e em qualquer aplicação que utilize esta linguagem. Elas ajudarão muito a melhorar
suas análises e apresentações e lhe darão eficiência na hora de montar excelentes modelos. Consulte mais funções DAX para
usar na biblioteca de referência da Microsoft.

Está percebendo que usar funções DAX não é nada difícil.


Com um pouco de aprendizado ficará fácil e simples, fique atento para mais posts e vídeos sobre funções DAX para usar no seu
dia a dia.

Aproveite e confira também nosso artigo sobre as funções de contar: 4 funções DAX para contar essenciais no Power BI.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o
assunto.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!
Compartilhe

COMO ORDENAR MESES CRONOLOGICAMENTE NO


POWER BI
No Power BI, por padrão, os dados são ordenados de acordo com a própria coluna em que estão. Ou seja, se é um campo
numérico será ordenado de conforme estes números. Se é um texto, será ordenado alfabeticamente. Isso significa que para uma
coluna de texto com o nome dos meses, a ordem padrão será alfabética. Mas não faz muito sentido olharmos meses
alfabeticamente, certo? A seguir então está uma forma simples de como ordenar meses no Power BI.
Se você se encontrar nessa situação, é muito simples corrigir essa ordem!

Vamos descobrir como ordenar meses no Power BI!


O primeiro passo é conectar a base de dados ao nosso Power BI. Basta clicar em “Obter dados” (1) e selecionar “Excel” (2).
Localize o arquivo modelo (clique aqui para baixar) e clique em “Abrir” (3).
Na aba de Navegação, selecione a tabela fVendas (1) e clique em “Carregar” (2).
Vamos criar um gráfico para analisar as Vendas por Mês. Para isso, nas Visualizações, selecione o gráfico de coluna (1) e os
campos “Mês” e “Vendas” (2). Teremos o seguinte resultado (3):

Como a coluna “Mês” está formatada como texto, o eixo fica estruturado em ordem alfabética.

Para corrigir isso, basta selecionar o campo de “Mês” (1), abrir a aba “Modelação” (2), selecionar “Ordenar por coluna” e “Data” (3).
Pronto! O gráfico será atualizado e teremos nossa ordem ajustada.
É muito simples, certo?

Explicando: ao estabelecer que a coluna “Mês” seja ordenada pela coluna “Data”, o Power BI passou a considerar a ordem
numérica (cronológica) das datas. Isso fez com o que os textos com o nome dos meses fossem ordenados de acordo com uma
outra coluna, que não seja alfabética.
Explorando possibilidades
Além de ordenar nome dos meses, podemos pensar em outros usos para a função “Ordenar por coluna”:
 Ordenar itens de uma Segmentação de Dados baseado em outros critérios, como prioridade, categorias, etc.
 Ordenar o nome dos meses de acordo com um Período Financeiro ou Ano Fiscal, para empresas que usam diferentes períodos de
apuração.
Você sabe o que é DAX? Se não sabe ou quer saber melhor leia este artigo.
Gostou deste passo a passo de como ordenar meses no Power BI de forma que faça sentido? Ficou com alguma dúvida? Deixe
seu comentário e nos ajude a melhorar ainda mais nosso conteúdo. Siga nosso blog!

Não se esqueça de compartilhar este post através dos botões de redes sociais abaixo!
Compartilhe

COMO CALCULAR A VARIAÇÃO PERCENTUAL ANO A ANO


(YOY) NO POWER BI
O indicador Ano a Ano ou Year Over Year (YoY) é um método que calcula e avalia e variação de volumes de um mês ou conjunto
de meses em relação ao mesmo período do ano anterior. Isso permite que a análise seja feita em um contexto mais amplo. Ou
seja, é mais abrangente do que simplesmente comparar a variação em relação ao mês anterior.
Quando usar a medida Percentual YoY?
Supomos que você identificou que no mês de setembro de 2017, as visitas no seu site caíram 5% em relação a agosto. Será que a
performance do site está muito ruim? Talvez. Mas se adicionarmos o contexto YoY e compararmos com setembro de 2016,
observamos que houve um crescimento de 18% no período de um ano. Aqui já vemos um cenário bem mais positivo!

Apesar da redução de um mês para o outro, quando comparamos um período maior, podemos tirar outras conclusões e realizar
outras análises. É para responder esse tipo de pergunta que aplicamos os conceitos de YoY.

Vamos começar a trabalhar!


O primeiro passo é conectar a base de dados ao nosso Power BI. Basta clicar em “Obter dados” (1) e selecionar “Excel” (2).
Localize o arquivo modelo (clique aqui para baixar) e clique em “Abrir” (3).
Na aba de Navegação, selecione a tabela fVendas (1) e clique em “Carregar” (2).
Com os dados importados, vamos criar as medidas! (Para você que é iniciante em Power BI e quer avançar mais, clique na imagem
abaixo e faça o download do nosso eBook completo e gratuito!)

Aproveite a oportunidade de aprender um pouco mais de Power BI clicando aqui!

Depois de conectar o Power BI Desktop com nossa planilha, vamos criar as Medidas!

Clique em “Nova Medida” (1) e na barra de fórmulas, insira o texto (2) a seguir:
YoY = (DIVIDE(CALCULATE(SUM(fVendas[Vendas]); fVendas[Ano]=YEAR(NOW()));
CALCULATE(SUM(fVendas[Vendas]);fVendas[Ano]=YEAR(NOW())-1))-1)
Traduzindo: Nessa medida estamos dividindo a soma das Vendas deste Ano pela soma das Vendas do ano passado. Para isso usamos a
fórmula “NOW” que considera a data atual do sistema. Ao final, subtraímos por 1 para obtermos apenas diferença percentual.
Outra forma de calcular o percentual ano a ano (YoY) no Power BI mais organizado é declarando variáveis, dessa forma:

%YoY =
VAR AnoPassado = CALCULATE(SUM(fVendas[Vendas]);fVendas[Ano]=YEAR(NOW())-1)
VAR EsteAno = CALCULATE(SUM(fVendas[Vendas]);fVendas[Ano]=YEAR(NOW()))
RETURN
(EsteAno/AnoPassado)-1
Traduzindo: O que estamos fazendo aqui é declarar as variáveis “AnoPassado” e ”EsteAno”, depois dividimos um pelo outro para calcularmos
a variação. Também subtraímos por 1 para obter a diferença percentual. Se você quer entender mais sobre declaração de variáveis nas
fórmulas DAX, clique aqui e confira um tutorial mais completo.

Agora é só modelar as medidas e criar relatórios!


Vamos alterar nossa medida para o formato de Percentual. Para isso, selecione a medida (1) e na aba Modelagem (2)
selecionamos o Formato: Percentual (3).

Para visualizar essa informação, vamos criar um gráfico de colunas (1) e selecionar (2) a coluna “Data” e a medida “% YoY”
(2). Vamos também remover (3) do Eixo os campos de “Ano”, “Quadrimestre” e “Dia”, pois nossa análise será apenas em relação
aos meses (“Months”), para isso basta clicar no “X” ao lado de cada campo.
Além disso, podemos usar a guia Formato (1) para adicionar Etiquetas de dados (2) e alterar a cor dos dados (3) no gráfico.
Após alguns ajustes no layout, nosso gráfico ficou assim:
Analisando as informações
Percebemos que no mês de novembro e dezembro tivemos os maiores crescimentos em relação ao ano anterior (15,8% e 11,45%,
respectivamente). Caso tivéssemos alguma campanha de marketing nesses dois meses, podemos inferir que a campanha foi bem-
sucedida.

Em compensação, o mês de maio apresentou o menor índice YoY (-8,0%). Isso significa uma queda na quantidade de vendas em
relação ao mês de maio do ano anterior.

Outras análises em um contexto mais amplo e o cruzamento com outras informações estratégicas da empresa, podem nos levar a
diversas conclusões.
Agora que você já sabe calcular a variação Ano a Ano (YoY) você pode aplicar nos seus relatórios e ampliar suas análises!

Gostou deste passo a passo? Ficou com alguma dúvida? Deixe seu comentário e nos ajude a melhorar ainda mais nosso
conteúdo.

Não se esqueça de compartilhar este post através dos botões de redes sociais abaixo!

DECLARANDO VARIÁVEIS NO POWER BI PARA


CALCULAR O CAGR
Nos posts anteriores, mostramos como calcular o CAGR pelo método direto (criando várias medidas). Fizemos também
uma análise de como aplicar o CAGR na prática. E concluímos que o CAGR se trata de uma medida fundamental na análise de
dados! Mas por que não otimizar o cálculo utilizando variáveis no Power BI?
O que é o CAGR?
O CAGR (Compound Annual Growth Rate – Taxa de Crescimento Anual Composta) é amplamente utilizado para analisar
investimentos, crescimento de mercado, valorização financeira, retorno sobre investimentos, etc.

Para calculá-lo utilizando a fórmula:

CAGR = (Valor Final / Valor Inicial)^(1/número de anos) -1

Não deixe de ler os dois artigos citados acima para um melhor entendimento.

Como calcular o CAGR declarando variáveis no Power BI?


Além da maneira que vimos no post anterior, outra forma de escrever essa fórmula é declarando variáveis, colocando toda a
fórmula em uma única medida.
O primeiro passo é conectar a base de dados ao nosso Power BI. Clique em “Obter dados”, depois selecione “Excel” e por
fim “Conectar” Localize a planilha baixada “PIB_Mundial_uaiSmart.xlsx” e clique em “Abrir”. (Se ainda não baixou, clique aqui para
baixar!)
Na aba de Navegação, selecione a tabela PIB_Mundial e clique em “Carregar”.
Com os dados importados, vamos criar as medidas! (Para aprender mais sobre Power BI, baixe o nosso eBook completo e gratuito!)

Aproveite a oportunidade de aprender um pouco mais de Power BI clicando aqui!

Clique em “Nova Medida” e na barra de fórmulas, insira o texto a seguir:


CAGR =
VAR ValorInicial = CALCULATE(SUM(PIB_Mundial[Valor (US$)]); FILTER(PIB_Mundial;PIB_Mundial[Ano]=MIN(PIB_Mundial[Ano])))
VAR ValorFinal = CALCULATE(SUM(PIB_Mundial[Valor (US$)]); FILTER(PIB_Mundial;PIB_Mundial[Ano]=MAX(PIB_Mundial[Ano])))
VAR NumeroDeAnos = (MAX(PIB_Mundial[Ano])-MIN(PIB_Mundial[Ano]))
RETURN
(ValorFinal/ValorInicial)^(1/NumeroDeAnos)-1
Importante: o nome de cada variável não pode contar espaços. Pode-se utilizar letras maiúsculas para separar palavras (ex:
NumeroDeAnos), ou algum outro separador como o underline (ex: Numero_de_Anos), mas se você escrever “Número de Anos”, a declaração
da variável ficará incorreta.
Vamos entender qual é a lógica dessa medida.

Analisando a fórmula usada


Primeiramente declaramos as variáveis da fórmula (Valor Inicial, Valor Final e Número de Anos).

VAR ValorInicial = CALCULATE(SUM(PIB_Mundial[Valor (US$)]); FILTER(PIB_Mundial;PIB_Mundial[Ano]=MIN(PIB_Mundial[Ano])))

Nota: Aqui estamos calculando a soma de todos os valores de PIB, filtrada pelo primeiro ano disponível (através da fórmula MIN)

VAR ValorFinal = CALCULATE(SUM(PIB_Mundial[Valor (US$)]); FILTER(PIB_Mundial;PIB_Mundial[Ano]=MAX(PIB_Mundial[Ano


Nota: Já para o valor Final, estamos calculando a soma de todos os valores de PIB, filtrada pelo último ano disponível (através da
fórmula MAX)

VAR NumeroDeAnos = (MAX(PIB_Mundial[Ano])-MIN(PIB_Mundial[Ano]))


Nota: Para o Número de anos do período, basta subtrair o último ano (usando MAX) pelo primeiro ano disponível (usando MIN)

Depois de declararmos as variáveis no Power BI, basta utilizarmos a função RETURN para indicar qual resultado a medida nos
trará. Nesse caso usamos a fórmula:
RETURN
(ValorFinal/ValorInicial)^(1/NumeroDeAnos)-1
Com isso, o Power BI buscará as informações contidas em cada variável e aplicará no resultado final. Agora é só usar a medida
nas suas análises e tomadas de decisão!

Conclusão
Seja pelo método simples ou declarando variáveis, o cálculo do CAGR é utilizado para analisar o crescimento anual de diversos
indicadores, como neste caso, o PIB Mundial.

Sempre que você precisar criar várias medidas para depois consolidar em uma só, experimente usar o método de declaração de
variáveis no Power BI. Assim, você consegue economizar tempo e deixa sua estrutura de dados bem organizada!

Gostou da dica? Compartilhe com seus colegas usando os botões de compartilhamento em redes sociais abaixo! Não se esqueça
de comentar esse post e nos contar o que está achando do conteúdo ou mesmo uma dúvida que tenha!
Compartilhe

APLICANDO O CAGR NO POWER BI – ANÁLISE DO PIB


MUNDIAL
Como vimos no artigo anterior, é muito fácil criar as medidas para o cálculo do CAGR no Power BI. Se você ainda não leu o artigo
anterior, é importante que você dê uma olhada, pois boa parte deste passo a passo depende do que foi ensinado lá!
Chegou a hora de criar um relatório para analisar o CAGR com Power BI do PIB Mundial!
Agora sim a análise fica completa, adicionando visualizações gráficas ao arquivo. Com isso vemos do que o Power BI é capaz.
O arquivo que utilizamos para construir este passo a passo está disponível para download no final desta página.
Passos para analisar o CAGR com Power BI
O primeiro gráfico será de colunas, para vermos a evolução Ano a Ano do PIB.

Para criá-lo, selecione os campos “Valor (US$)” e “Ano” e clique no gráfico de colunas:

Analisando o gráfico criado, vemos que em 2009 tivemos uma pequena queda no crescimento do PIB (destacado em vermelho
abaixo) provavelmente pela Crise Financeira que tivemos. Além disso, podemos observar uma aceleração no crescimento do PIB
a partir de 2003 (destacado em amarelo abaixo).
Mas como estamos falando de CAGR, qual será o CAGR do Mundo de 1960 a 2016?

Para responder essa pergunta, selecione a medida “CAGR” e o visual “Cartão”. Teremos que o CAGR é 7,65%.
Para melhorar nossa análise, vamos criar uma Segmentação de dados para analisar cada país. Clique no visual “Segmentação de
Dados” e selecione o campo “País”.
Se filtrarmos apenas o Brasil, vemos um CAGR de 8,90% considerando 1960 a 2016. Ainda é possível verificar uma ascensão no
início dos anos 2000 até 2011 (com uma leve estagnada em 2009, provavelmente devido à crise financeira). E como podemos
acompanhar nos noticiários, o PIB brasileiro está em queda desde 2015 e isso pode ser visto claramente no gráfico.

Seria bem legal se tivéssemos uma visão completa usando um Mapa Mundial, né? Será que no Power BI nós conseguimos fazer
isso?

É claro! Dá só uma olhada:


Para aprender a criar esse mapa, fique de olho no blog e nos siga no Facebook! Em breve postaremos um tutorial bem detalhado
sobre mapas!
Baixe o nosso arquivo modelo que demonstra todos os passos que fizemos para analisar o CAGR com Power BI. Utilize a caixa
abaixo para baixar.

[optin-cat id=”216″]

E aqui está o nosso relatório completo:


Gostou da dica? Compartilhe com seus colegas usando os botões de compartilhamento em redes sociais abaixo! Não se esqueça
de comentar esse post e nos contar o que está achando do conteúdo ou mesmo uma dúvida que tenha!

Até a próxima!
Compartilhe

COMO CALCULAR O CAGR NO POWER BI: TAXA DE


CRESCIMENTO ANUAL COMPOSTA
Neste artigo iremos mostrar de maneira simples e prática, como calcular o CAGR no Power BI, utilizando dados do PIB Mundial.

O CAGR (Compound Annual Growth Rate – Taxa de Crescimento Anual Composta) é uma medida bastante utilizada em análises de
investimentos, crescimento de mercado, valorização financeira, retorno sobre investimentos e está sempre presente nos
relatórios financeiros de grandes instituições.
Se você não conhece esse indicador, ele basicamente indica quanto um valor (Faturamento, Receita, Lucro, etc) cresceu no
período que está sendo analisado, considerando uma taxa constante.

Calcular o CAGR no Power BI é muito simples!


E usando os filtros dinâmicos disponíveis no Power BI, é possível usar esse indicador para análises em diversos contextos!

Para este passo a passo, vamos utilizar os dados do PIB Mundial (disponível no site WorldBank.Org). Para baixar a planilha que
vamos usar nesse exemplo, clique aqui.

A fórmula para calcular o CAGR é:

CAGR = (Valor Final / Valor Inicial)^(1/número de anos) -1


Uma das formas de aplicarmos essa fórmula para nossos dados é: criar uma medida para cada variável da fórmula. Ou seja,
vamos criar uma medida “Valor Inicial”, outra “Valor Final” e por fim uma para “Número de anos”.
Depois vamos consolidar todas essas “sub-medidas” em uma Medida Principal, que será o “CAGR”.

Vamos começar então!


O primeiro passo é conectar a base de dados ao nosso Power BI. Clique em “Obter dados”, depois selecione “Excel” e por
fim “Conectar” Localize a planilha baixada “PIB_Mundial_uaiSmart.xlsx” e clique em “Abrir”. (Se ainda não baixou, clique aqui para
baixar!)
Na aba de Navegação, selecione a tabela PIB_Mundial e clique em “Carregar”.
Com os dados importados, vamos criar as medidas! (Para aprender mais sobre Power BI, baixe o nosso eBook completo e gratuito!)
Clique em “Nova Medida” e na barra de fórmulas, insira o texto a seguir:
Valor Inicial = CALCULATE(SUM(‘PIB_Mundial'[Valor (US$)]); FILTER(PIB_Mundial;PIB_Mundial[Ano]=MIN(PIB_Mundial[Ano])))
Traduzindo: nessa fórmula estamos calculando (CALCULATE) a soma (SUM) do Valor do PIB utilizando um filtro (FILTER) na tabela
PIB_Mundial, que deve considerar como Ano selecionado o primeiro Ano disponível (MIN).

Repita o mesmo processo para as outras duas medidas, utilizando as formas abaixo.

Valor Final = CALCULATE(SUM(‘PIB_Mundial'[Valor (US$)]);FILTER(PIB_Mundial;PIB_Mundial[Ano]=MAX(PIB_Mundial[Ano])))


Traduzindo: nessa fórmula estamos calculando (CALCULATE) a soma (SUM) do Valor do PIB utilizando um filtro (FILTER) na tabela
PIB_Mundial, que deve considerar como Ano selecionado o último Ano disponível (MAX).
Número de Anos = (MAX(PIB_Mundial[Ano])–MIN(PIB_Mundial[Ano]))
Traduzindo: nessa fórmula estamos buscando o maior (último) ano disponível e subtraindo pelo menor (primeiro) ano disponível.
As funções utilizadas neste passo a passo utilizam a linguagem DAX (Data Analysis eXpression), que é a linguagem utilizada na
criação de medidas e cálculos no módulo de PowerPivot do Power BI, bem como em outras aplicações da Microsoft.
Pronto! Medidas criadas.

Agora com as medidas criadas, ficou fácil! Você se lembra da fórmula?

Utilzando a fórmula CAGR no Power BI


CAGR = (Valor Final / Valor Inicial)^(1/número de anos) -1

Vamos criar uma Nova Medida juntando as outras que criamos. Clique em “Nova Medida” e na barra de fórmula, insira:

CAGR = ([Valor Final]/[Valor Inicial])^(1/[Numero de anos])-1


Vamos alterar o formato da nossa medida para Porcentagem. Para isso, clique na aba Modelagem, selecione a medida CAGR
(clique no nome da medida e não na caixa de seleção) e por fim, selecione o Formato Percentual.

Tudo pronto! Criamos a medida para cálculo do CAGR no Power BI e agora é só aplicar nos seus relatórios!
Mas que tal aplicar essa medida em gráficos e deixar seu relatório mais completo?
Veja também como fazer tudo que ensinamos aqui sobre CAGR no Power BI em vídeo.
Clique aqui e confira a nossa Análise do PIB Mundial. Agregamos gráficos e visualizações deixando uma análise bem interessante
da aplicação do CAGR no Power BI. Ele é a continuação deste artigo e finaliza o que ensinamos aqui.
Neste artigo você vai conseguir também baixar nosso arquivo em “.pbix” e usar como modelo.

Gostou da dica? Compartilhe com seus colegas usando os botões de compartilhamento em redes sociais abaixo! Não se esqueça
de comentar esse post e nos contar o que está achando do conteúdo ou mesmo uma dúvida que tenha!

Até a próxima!
Compartilhe