Como Criar Tabela Calendário no Power BI com Power Query
Demonstração de uma das formas de criar a tabela calendário no Power BI.
Esta por meio da utilização do Power Query.
O que é o Power Query?
Para quem não sabe, o Power Query é um mecanismo disponível em alguns produtos da Microsoft, entre eles o Azure, o Power BI e nas últimas versões do Excel, com a finalidade de realizar o processo de ETL (Extração, Transformação e Carregamento) dos dados. Por outras palavras, é através desta ferramenta que são preparadso os dados antes de serem consumidos pelo Power BI ou demais ferramentas.
O Power Query possui um editor gráfico com múltiplas funcionalidades auxiliando o utilizador na execução das principais tarefas de tratamento de dados. Entretanto, algumas dessas transformações podem exigir além do que há disponível na interface gráfica, sendo necessário o desenvolvimento através de um editor de script próprio da ferramenta, por meio da utilização da linguagem M.
Criar a tabela
A tabela calendário é uma das tabelas mais importantes e essenciais para qualquer projeto de BI, pois ela está presente em praticamente todos os cenários de negócios, devido a necessidade de análise por meio de uma dimensão temporal.
Para criação de uma tabela calendário dentro do Power Query, é necessário seguir passo a passo conforme demonstrado a seguir:
1. Abrir o editor do Power Query dentro do Power BI
Para abrir o editor do Power Query, deve-se aceder a guia página inicial dentro do Power BI e clicar no botão transformar dados, conforme imagem abaixo:
De seguido temos a janela principal do editor do Power Query, conforme podemos ver na imagem seguinte.
2. Criar uma consulta nula
Com o editor do Power Query aberto, deve-se aceder na guia Página Inicial a opção Nova Fonte e em seguida carregar em consulta nula, conforme demonstrado na imagem seguinte.
Depois do passo anterior, escolhe a consulta que aparecerá no painel do navegador, localizado na parte lateral esquerda do editor do Power Query, conforme imagem a seguir:
3. Abrir o Editor de Consulta Avançado.
Depois que se escolhe a consulta, deve-se abrir o editor Avançado de Consulta, que está na guia Página Inicial, na opção Editor Avançado.
Com isto, temos uma nova janela com o próprio editor de consultas na sua estrutura padrão let in.
4. Criar a tabela Calendário.
O editor de consultas trabalha os dados através da linguagem M.
De seguida, segue um código para criar uma consulta que retorna uma tabela calendário de janeiro de 2022 a dezembro de 2025, pode sempre alterar o período do calendário, para isso basta mudar o ano presente nas variáveis AnoInicial e AnoFinal que se encontam no início do código. O AnoFinal está a ir buscar o Ano atual. No ecrã anterior, substitui o código padrão pelo que esta a seguir e depois de substituído o código no editor de consultas, basta carregar no botão concluído que automaticamente o Power Query criará a tabela calendário juntamente com os principais campos necessários para utilização, como pode se pode ver na imagem a seguir ao código.
let
AnoInicial = 2022,
AnoFinal = Date.Year(DateTime.LocalNow()),
//Declara uma data inicial
DataInicial = Date.StartOfYear(#date(AnoInicial, 1, 1)),
//Declara uma data final
DataFinal = Date.EndOfYear(#date(AnoFinal, 12, 31)),
//Conta a quantidade de dias entre as duas datas
QtdeDias = Duration.Days(DataFinal-DataInicial)+1,
//Cria lista de datas
Datalist = List.Dates(DataInicial,QtdeDias,#duration(1,0,0,0)),
//Converter para Tabela
ConvertTabela = Table.FromList(Datalist, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
//Altera Tipo
AlteraTipo = Table.TransformColumnTypes(ConvertTabela,{{"Column1", type date}}),
//Renomeia Coluna
RenomeiaColuna = Table.RenameColumns(AlteraTipo,{"Column1", "Data"}),
//Criação de Colunas Adicionais
//Criar Coluna ANO
Ano = Table.AddColumn(RenomeiaColuna, "Ano", each Date.Year([Data]),Int64.Type),
//Criar Coluna Mês
Mes = Table.AddColumn(Ano, "Mes", each Date.Month([Data]),Int64.Type),
//Criar Coluna Nome do Mês
Nome_Mes = Table.AddColumn(Mes, "Nome_Mes", each Date.MonthName([Data]), type text),
//Criar Coluna Dia
Dia_do_Mes = Table.AddColumn(Nome_Mes, "Dia_Mes", each Date.Day([Data]), Int64.Type),
//Criar Coluna Dia do Ano
Dia_do_Ano = Table.AddColumn(Dia_do_Mes, "Dia_Ano", each Date.DayOfYear([Data]), Int64.Type),
//Criar Coluna Dia da Semana
Dia_Semana = Table.AddColumn(Dia_do_Ano, "Dia_Semana", each Date.DayOfWeek([Data]), Int64.Type),
//Criar Coluna Dia da Semana
Nome_Dia_Semana = Table.AddColumn(Dia_Semana, "Nome_Dia_Semana", each Date.DayOfWeekName([Data]), type text),
//Criar Coluna Dia da Semana
Trimestre = Table.AddColumn(Nome_Dia_Semana, "Trimestre", each Date.QuarterOfYear([Data]), Int64.Type),
//Criar Coluna Semana do Ano
Semana_Ano = Table.AddColumn(Trimestre, "Semana_Ano", each Date.WeekOfYear([Data]), Int64.Type),
//Criar Coluna Semana do Mes
Semana_Mes = Table.AddColumn(Semana_Ano, "Semana_Mes", each Date.WeekOfMonth([Data]), Int64.Type)
in
Semana_Mes Renomeia-se tabela Consulta1 para dCalendario na janela de propriedades, localizado na lateral direita do Power Query, conforme demonstrado na imagem seguinte.
5. Visualizar a tabela dentro do Power BI.
Por fim, para visualizar a tabela dentro do Power BI é necessário aplicar as alterações feitas. Para isso, basta carregar no botão Fechar e Aplicar na guia Página Inicial do Power Query.
Por fim, o Editor do Power Query é fechado e retorna a janela de edição do Power BI com a tabela calendário já inserida, podendo ser visualizada no Painel de Campos, localizado na lateral direita da janela do Power BI, podendo ser acedida para modelação do relatório.
Search
Artigos Recentes
- Como Automatizar o Envio de E-mails de Aniversário com o Power Automate
- Guia Prático: Espelhar Todas as Listas do SharePoint com Power Automate
- Power BI vs Excel: Quando Usar Cada Ferramenta?
- PowerApps: O Manual Essencial para Criar Apps de Forma Fácil e Transformadora
- Power Automate: A Forma Mais Rápida de Automatizar Tarefas e aumentar a Produtividade