Olá, muito prazer. Meu nome é Henrique Frizzo, sou instrutor na Alura e ministro treinamentos de Power BI há praticamente 10 anos. Sou certificado pela Microsoft como especialista em Power BI desde 2020 e já atendi diversas empresas nacionais e internacionais em consultoria na área de dados utilizando Power BI.
Audiodescrição: Sou um homem de pele clara, com cabelo e barba escuros. Estou vestindo uma camiseta preta lisa; ao fundo, há uma parede branca com luzes rosa e azul refletindo nela.
Este curso é direcionado a pessoas que já conhecem o básico de Power BI e desejam aprofundar o conhecimento na área de inteligência temporal. Não é necessário ser especialista em DAX, mas é importante conhecer as etapas de ETL, modelagem e criação em DAX — colunas calculadas e medidas — e, claro, ter noção do que são esses indicadores.
Não se preocupe: se isso não estiver claro, ao longo do curso nós vamos explicar o que é uma comparação, o que é uma acumulação e muitos outros conceitos. Precisamos que você conheça, pelo menos, o básico de Power BI.
Neste curso, aprenderemos mais sobre as funções de inteligência de tempo no Power BI, isto é, funções de acumulação e de comparação. Também veremos como aplicar esses recursos no mês, no dia, no ano, no trimestre e na semana, variando nossos análises para diferentes granularidades temporais.
Além disso, compreenderemos a criação de KPIs (indicadores-chave de desempenho) dinâmicos, utilizando SELECTEDVALUE, SWITCH e outras práticas do mundo corporativo relacionadas a análises de inteligência de tempo.
Este curso segue o padrão da Alura. A partir de agora, você tem acesso ao nosso fórum, ao nosso Discord e, claro, também à Luri, nossa super inteligência artificial que já sabe tudo sobre este treinamento. Podemos dizer que ela sabe até mais do que nós.
Se em algum momento você não se sentir confortável para discutir conosco no fórum, pode conversar com a Luri para resolver dúvidas, solicitar mais exercícios e até pedir explicações adicionais. Ela está disponível para você.
Agora, prepare-se: pegue seu café e sua água, feche as redes sociais, coloque o telefone e as notificações no silencioso e concentre-se, porque o tema que veremos a seguir é excelente. Vamos começar.
Antes de explorarmos as funções DAX e a inteligência de tempo disponíveis no Power BI, é importante conhecer o cenário da empresa com a qual trabalharemos a partir de agora e quais problemas resolveremos utilizando essas funções.
Precisamos construir um painel executivo no Power BI para monitorar melhor o desempenho comercial da empresa. Hoje, temos vendas registradas em planilhas, mas a análise ainda é muito manual. Queremos saber quanto estamos vendendo no mês e no ano, se estamos crescendo em relação ao ano passado, se estamos próximos das metas e qual é a tendência dos últimos 12 meses. Essas perguntas são muito comuns no dia a dia, pois é fundamental para a gestão do negócio entender se as decisões tomadas no passado impactaram positiva ou negativamente os resultados.
Também precisamos que o relatório seja flexível, permitindo alternar entre diferentes indicadores, como receita, lucro, margem, quantidade de pedidos e valor médio por pedido. O objetivo é que o painel ajude a diretoria a tomar decisões comerciais com mais rapidez e confiança.
Eu estou muito contente em vir aqui gravar estas aulas para você e oferecer este treinamento, porque, na minha opinião, estas são as funções mais importantes do Power BI. É possível que outra pessoa instrutora de Power BI discorde, e está tudo bem. Mas, na minha concepção, entender o passado e como foram as decisões tomadas torna o relatório muito mais relevante. Com base nele, entenderemos se o que fizemos no passado funcionou; se funcionou, como podemos potencializar; e, se não funcionou, o que podemos mudar para alcançar os resultados desejados.
Antes de começar a conectar tudo, queremos garantir que estejamos na mesma configuração dentro do Power BI. Para isso, vamos até a guia Arquivo, no canto superior esquerdo, clicar em Opções e configurações e, em seguida, em Opções.
Faremos isso para habilitar os novos recursos de visualização (prévia) disponíveis no Power BI, de modo que você esteja com a mesma configuração que a nossa. Assim, tudo o que fizermos aqui no nosso computador poderá ser reproduzido no seu também.
No menu lateral esquerdo da janela de Opções, vamos buscar a seção de Recursos de visualização (prévia). Em seguida, podemos marcar todas as caixas disponíveis. Como você pode ver, deixamos todas as caixas marcadas. Você pode marcá-las sem problema. Depois, clique em OK. O Power BI solicitará que feche e reabra o arquivo. Faça isso: abra um arquivo em branco do Power BI, repita o procedimento, feche e abra novamente.
Agora, vamos conectar nossos dados no Power BI. Vamos clicar em Obter dados e escolher nossa base da Vitamax, nosso e-commerce (comércio eletrônico) com o qual trabalharemos aqui. Selecionamos, aguardamos o carregamento e observamos que o Power BI traz uma variedade de tabelas encontradas na planilha do Excel.
Se repararmos, temos, por exemplo, a tabela F-Ventas e a F-Ventas aparecendo novamente abaixo. Qual é a diferença entre elas e por que uma aparece com ícone azul e a outra com ícone cinza? O ícone azul indica as tabelas detectadas pelo Power BI. O ícone cinza representa a planilha inteira. Sempre recomendamos selecionar as tabelas, porque a probabilidade de trazer dados indesejados é muito menor. “Lixo”, aqui, são basicamente erros e anotações que podem estar dentro de uma planilha do Excel, e não queremos isso agora.
Então, vamos marcar as seguintes caixas.
Vamos marcar as tabelas TB Clientes, TB Indicadores, TB Lojas, Metas, Produtos, Vendedores e Vendas. As outras tabelas deixadas como modelo — AD Calendário e também nossa validação de números — não utilizaremos por enquanto; são apenas materiais extras para ajudar a compreender melhor os dados. Em AD Calendário, trouxemos um modelo que pode ser seguido de agora em diante, mas criaremos nossa própria tabela de calendário do zero, de duas formas diferentes, mais adiante.
Assim, marcamos apenas essas tabelas e podemos ir diretamente ao botão Carregar. Como nosso foco aqui é aprender DAX, não deixamos nenhuma armadilha no Power Query. Mesmo assim, vamos validar antes. Clicamos em Transformar dados, principalmente porque os tipos de dados podem não chegar no formato esperado. É interessante fazermos essa validação previamente.
Verificamos: ID da venda, ID do pedido e a data. Selecionamos o campo de data e definimos o tipo Data, clicando em Substituir atual. Ano e mês manteremos como estão. IDs, canais, formas de pagamento e quantidade permanecem adequados. O preço unitário é valor monetário, não do tipo Moeda. O desconto percentual é do tipo Porcentagem; definimos e clicamos em Substituir atual. Nossa receita também é valor monetário, então definimos como Número decimal fixo. Nosso custo, da mesma forma, Número decimal fixo. Ao final, nosso lucro também deve ser Número decimal fixo.
Fazemos uma verificação rápida nas demais tabelas. Na tabela de vendedores, tudo certo. Na tabela de produtos, também temos valores monetários: o preço base e o custo base. A margem percentual é do tipo Porcentagem. Realizamos um ETL rápido para relembrar alguns fundamentos do Power BI.
Na tabela de metas, a meta de lucro está como Número decimal fixo. A meta de pedidos é numérica. A meta percentual é do tipo Porcentagem. Ajustamos a data da meta para o tipo Data e clicamos em Substituir atual.
Em Lojas, tudo em ordem. Em Indicadores, tudo em ordem, mas há um formato que não é tão interessante para nós. Na realidade, essa TB Indicadores nem será necessária: podemos excluí-la com o clique do botão direito, em Excluir. Não precisamos dela; trata-se basicamente de um resumo de dados incluído apenas como referência.
Na tabela de clientes, está tudo certo. A data de cadastro está no formato Data. É muito comum, quando importamos do Excel, esses campos virem nesse formato; basta transformar aqui e o ajuste fica resolvido.
Agora que corrigimos os problemas, vamos ao canto superior esquerdo, na guia Início, e clicamos em Fechar e aplicar. O Power BI processará e carregará os dados, e assim já conhecemos melhor as bases disponíveis. Vamos aguardar o carregamento e observá-las por alto; é interessante conhecê-las antes de começarmos a trabalhar.
No painel esquerdo, clicamos no segundo botão e navegamos pelas tabelas:
Recomendamos que, entre um vídeo e outro, seja feita uma pausa para explorar e conhecer melhor as bases. De toda forma, ao longo do desenvolvimento do curso, nós as conheceremos com calma para aplicar nossas funções DAX.
Não podemos falar de inteligência temporal sem falar da Dimensão-Calendário, ou D-Calendário. Como o próprio nome indica, trata-se de uma tabela de dimensão que inserimos em nosso modelo e que, de certo modo, funciona como um registro de datas. A D-Calendário é importante por diversas razões; entre elas, orientar nossas funções de inteligência temporal.
Conforme formos construindo as soluções em nossa empresa, perceberemos que, em diversos momentos, dentro das funções de inteligência temporal, precisaremos adicionar colunas de data. Por que utilizamos a coluna de data da D-Calendário? Essa é uma pergunta importante, e vamos refletir sobre ela ao longo do treinamento. Em resumo, precisamos de uma coluna sem datas ausentes, caso contrário teremos lacunas na análise. Qual é a única coluna de data de todo o modelo que não possui datas faltantes? A da D-Calendário.
Além disso, utilizamos a D-Calendário também em suas colunas derivadas — ano, mês, dia, nome do mês, entre outras — em análises visuais, gráficos e indicadores. Portanto, é uma tabela fundamental, e não conseguimos avançar no treinamento sem criá-la.
Existem, basicamente, duas formas de criar essa tabela no Power BI: utilizando a linguagem M (Power Query M) ou a linguagem DAX. Em plataformas como o YouTube, veremos instrutores recomendando a criação em M, e outros em DAX. No dia a dia, utilizamos a criação da D-Calendário em DAX, mas isso depende do contexto. Vamos apresentar as duas formas e, depois, podemos discutir no fórum qual é a melhor para cada caso, qual agradou mais e qual você pretende adotar no cotidiano.
Vamos começar criando a Dimensão-Calendário com DAX, já que estamos dentro do Power BI. Depois de enviar as tabelas ao Power BI, seguimos este caminho: no menu lateral esquerdo, clicamos no segundo botão. Em seguida, vamos à guia Ferramentas de tabela na parte superior. Para a guia aparecer, basta selecionar qualquer tabela; a seção Ferramentas de tabela será exibida. Depois, clicamos em Nova tabela. Com a barra de fórmulas visível, vamos nomear a tabela como dCalendario. Primeiro digitamos apenas o nome com o operador de atribuição:
dCalendario =
Agora, como existem duas opções de função — CALENDAR e CALENDARAUTO — vamos usar a segunda, que infere o intervalo de datas automaticamente a partir do modelo. Completamos a expressão:
dCalendario = CALENDARAUTO()
Qual a diferença entre as duas? A função CALENDAR exige informar uma data inicial e uma data final; portanto, precisamos descobrir quando os dados começam e quando terminam no modelo. Já a função CALENDARAUTO não requer parâmetros: como o próprio nome indica, ela analisa o modelo, identifica a menor e a maior data presentes e cria uma tabela que começa no primeiro dia do ano mais antigo (01 de janeiro desse ano) e termina no último dia do ano mais recente (31 de dezembro desse ano). Neste caso, usamos CALENDARAUTO. Abrimos e fechamos os parênteses () — é uma das poucas funções do Power BI que não possui argumentos — e pressionamos Enter.
Observamos que é criada uma coluna de data que começa em 1º de janeiro de 2021 e, ao ordenar de forma descendente, percebemos que termina em 31 de dezembro de 2026. Ou seja, temos dados que começam em 2021 e terminam em 2026. Não necessariamente no dia 1 e nem necessariamente no dia 31, mas, como não podemos ter datas faltantes, a D-Calendário criada por CALENDARAUTO abrange todo o intervalo.
Vamos realizar algumas transformações. Por exemplo, vamos alterar o cabeçalho "Date" e padronizar tudo para o português, para facilitar. Não é obrigatório; é possível manter em inglês, conforme a necessidade. Vamos também remover o formato de data e hora: selecionamos a coluna de data, vamos a Ferramentas de coluna e, no botão de Formato, alteramos para Short Date (data curta), pois não precisamos do componente de hora.
Surge a dúvida: isso é suficiente? Já está concluído? Sim. A coluna obrigatória em uma D-Calendário é a coluna de data. As demais colunas que utilizaremos agora são auxiliares para criar visuais mais interessantes. Existem várias formas de criá-las e muitas opções possíveis. Para nosso exercício e para o que faremos a seguir, separamos algumas colunas específicas — como ano, mês, nome do mês, entre outras.
Para nos ajudar, vamos trazer o arquivo que separamos e, em seguida, também faremos em M. Esse será o código que utilizaremos mais adiante. Para termos uma ideia das colunas necessárias, vamos listar algumas:
Estas são as colunas de que precisaremos e, por exemplo, do ano.
Vamos obter o ano primeiro. Para isso, inserimos uma nova coluna: em Ferramentas de coluna > Nova coluna, selecionamos Nova coluna, damos o nome Ano e começamos criando o rascunho:
Ano =
Em seguida, completamos utilizando a função YEAR aplicada à coluna dCalendario[Data]:
Ano = YEAR(dCalendario[Data])
Um ponto importante: ao escrever dCalendario[Data], aparecem diversas sugestões (Year, Date etc.). Isso acontece porque, quando não criamos nossa dCalendario no Power BI, o próprio Power BI cria uma tabela de datas automática que roda em segundo plano. Sempre que fazemos referência a uma coluna de data, o Power BI exibe essa tabela automática. Para que isso não volta a ocorrer, vamos marcá-la corretamente como tabela de datas: selecionamos a tabela dCalendario, abrimos Ferramentas de tabela e clicamos em Marcar como tabela de datas. Escolhemos a coluna de data, que é Data, e clicamos em Salvar e, em seguida, em Concluído. A partir desse momento, o Power BI identifica que essa tabela é a nossa dCalendario oficial e não precisa criar outra automaticamente.
Agora, vamos criar a próxima coluna: o número do mês. Em Nova coluna, nomeamos como Mes (ou MesNum) e começamos pelo rascunho:
Mes =
Depois completamos com MONTH sobre a coluna de data:
Mes = MONTH(dCalendario[Data])
Note que, ao inserir a referência de Data agora, aquelas sugestões relacionadas à tabela automática deixam de aparecer, pois só existe a nossa dCalendario.
Em seguida, criamos o nome do mês. Em Nova coluna, começamos com o rascunho:
Mes nome =
E então aplicamos FORMAT sobre dCalendario[Data], com o formato "MMM" para obter o mês abreviado:
Mes nome = FORMAT(dCalendario[Data], "mmm")
Assim obtemos o mês abreviado. Se usarmos quatro letras M ("MMMM"), obtemos o nome completo do mês. Observação: em DAX, a capitalização de "MMM" vs "mmm" não altera o resultado.
Sobre a coluna MesAno em texto: costumamos não utilizá-la com frequência, mas aqui vamos criá-la para fornecer o máximo de informação possível. Em Nova coluna, começamos:
MesAno =
E completamos utilizando FORMAT com o padrão mês-ano:
MesAno = FORMAT(dCalendario[Data], "mmm-yyyy")
Agora, criamos a coluna de classificação cronológica. No nosso exemplo de código, ela está nomeada como Class Mes-Ano, e não é mais do que 100 vezes o ano somado ao número do mês (isto é, 100 × Ano + Mes). Primeiro criamos o rascunho:
Class Mes-Ano =
E então definimos a expressão:
Class Mes-Ano = 100 * dCalendario[Ano] + dCalendario[Mes]
Para que serve essa coluna? Quando utilizamos MesAno em um visual, a ordenação padrão pode ser alfabética, e não queremos isso. Desejamos a ordem cronológica (janeiro/2021, fevereiro/2021, março/2021 etc.). Para que a ordenação cronológica funcione corretamente, utilizamos Class Mes-Ano para classificar a coluna MesAno. No momento oportuno, mostraremos como realizar essa classificação no visual; por enquanto, apenas criamos a coluna.
Seguimos com o trimestre. Em Nova coluna, começamos:
Trimestre =
E concluímos com QUARTER para obter o número do trimestre:
Trimestre = QUARTER(dCalendario[Data])
O dia do mês também é importante. Em Nova coluna, iniciamos:
Dia =
E finalizamos com DAY sobre a data:
Dia = DAY(dCalendario[Data])
Para o dia da semana em número, utilizamos a função WEEKDAY sobre dCalendario[Data]. Primeiro, o rascunho:
Dia da semana =
Depois, a expressão:
Dia da semana = WEEKDAY(dCalendario[Data])
Em seguida, podemos verificar o mapeamento criando outra coluna de apoio com FORMAT em dCalendario[Data], usando "ddd" para exibir o dia abreviado. Começamos:
Nome dia =
E concluímos:
Nome dia = FORMAT(dCalendario[Data], "ddd")
Observamos que, com a configuração padrão, domingo é 1, segunda-feira é 2, terça-feira é 3, e assim por diante. Podemos usar essa coluna de número do dia da semana para classificar a coluna de nome do dia, caso seja necessário.
Por fim, para fechar, podemos adicionar colunas como indicador de fim de semana, início de mês e fim de mês, se precisarmos ao longo do treinamento. Essa é justamente a intenção da dCalendario: conseguimos criar e ajustar novas colunas conforme a necessidade, sem problemas.
Essa é a nossa dCalendario, que utilizaremos ao longo do curso. Em seguida, aprenderemos como construí-la com a linguagem M.
O curso DAX Avançado: Inteligência Temporal e Métricas de Negócio possui 136 minutos de vídeos, em um total de 65 atividades. Gostou? Conheça nossos outros cursos de Business Intelligence & Visualização em Dados, ou leia nossos artigos de Dados.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
O Plano Plus evoluiu: agora com Luri para impulsionar sua carreira com os melhores cursos e acesso à maior comunidade tech.
2 anos de Alura
Matricule-se no plano PLUS 24 e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Back-end, Dados, Front-end, DevOps, Mobile, Gestão & Negócios, UX & Design, Cibersegurança, Cloud, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
Acesso à inteligência artificial da Alura.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Catálogo de tecnologia para quem é da área de Marketing
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
20% de desconto na Pós Tech
Luri Vision chegou no Plano Pro: a IA da Alura que enxerga suas dúvidas, acelera seu aprendizado e conta também com o Alura Língua que prepara você para competir no mercado internacional.
2 anos de Alura
Todos os benefícios do PLUS 24 e mais vantagens exclusivas:
Acesso ao catálogo da Casa do Código e leitura dentro da plataforma
Chat, busca, exercícios abertos, revisão de aula, geração de legenda para certificado.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para quem quer atingir seus objetivos mais rápido: Luri Vision ilimitado, vagas de emprego exclusivas e mentorias para acelerar cada etapa da jornada.
2 anos de Alura
Todos os benefícios do PRO 24 e mais vantagens exclusivas:
Catálogo de tecnologia para quem é da área de Marketing
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais de forma ilimitada.
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.