Como Criar a Tabela DCalendario no Power BI

 

Na aula de hoje, vamos explorar o processo de inserção da tabela de calendários no nosso projeto no Power BI. Compreender a importância dessa tabela é essencial, pois ela representa a relação dos meses, anos e dias, fundamentais para a análise de dados. Vamos detalhar cada passo necessário para criar essa tabela de forma eficaz.

Importância da Tabela de Calendários

A tabela de calendários é uma dimensão crucial em qualquer projeto de análise de dados. Ela não apenas organiza as informações temporais, mas também permite a criação de relatórios e gráficos que dependem de períodos específicos. Sem essa tabela, seria desafiador realizar análises temporais, como comparações mensais ou anuais.

Além disso, a tabela de calendários ajuda a relacionar diferentes dados temporais, oferecendo uma visão mais clara e organizada dos dados analisados. Portanto, seu correto preenchimento e configuração são passos fundamentais para um projeto bem-sucedido.

Visualizando as Tabelas Existentes

Antes de inserir a tabela de calendários, é importante observar as tabelas já existentes no projeto. No canto direito da interface do Power BI, você pode ver as tabelas que foram previamente inseridas, como as de departamento, orçado e realizado. Essas tabelas são essenciais para a análise, pois contêm os dados que serão utilizados em conjunto com a tabela de calendários.

Se você não conseguir visualizar essas tabelas, não se preocupe! É possível clicar em um ícone específico que revela os dados relacionados às tabelas no seu projeto. Isso garante que você tenha uma visão completa do que está sendo analisado.

Inserindo a Tabela de Calendários

Para inserir a tabela de calendários, siga os passos abaixo:

  1. Clique em “Iniciar” e, em seguida, selecione “Transformar Dados”.
  2. Na janela que se abrir, escolha a opção “Nova Fonte” e, em seguida, “Consulta Nula”.
  3. Após isso, acesse o “Editor Avançado”.

Agora, você precisa inserir um código específico que será disponibilizado. Esse código é fundamental para a criação da tabela de calendários e deve ser copiado para o editor. Para facilitar, você pode usar um bloco de notas para copiar o código e, em seguida, colá-lo no editor do Power BI.

Configurando o Código da Tabela de Calendários

Após colar o código no editor, é crucial verificar se não há erros de sintaxe. Um ponto importante a ser ajustado no código é a definição da data mínima e máxima. Essas datas devem ser extraídas de uma coluna específica da sua base de dados, que, neste caso, será a tabela “Realizado”.

Você deve substituir as referências no código para garantir que as informações de data estejam corretas. Utilize a coluna “Data” da tabela “Realizado” para definir esses valores. Assim, a tabela de calendários será criada com base nos dados reais que você possui.

Código da Tabela de DCalendários 01

 

let
//Alterar somente a Tabela e a coluna de datas
/* A Tabela é onde possui uma coluna Data que deseja usar em seus cálculos ou visuais.
Exemplo. Tabela fVendas que possui a coluna Data Pedido Ficaria List.Min (fVendas[Data Pedido]).
Se Possuir mais de uma coluna ficaria List.Min (fVendas[Data Pedido] & fVendas[Data Vencimento]).
*/
    MenorData = List.Min (fCadastro[Data de Admissão]),
    MaiorData = List.Max (fCadastro[Data de Admissão]),
//Não alterar daqui pra baixo
    DataInicio = Date.StartOfYear(MenorData),
    DataFim = Date.EndOfYear(MaiorData),
    Dias = Duration.Days(DataFim- DataInicio) +1,
    ListarDatas = List.Dates(DataInicio, Dias, #duration(1,0,0,0)),
    Tabela = #table(
        type table[
            Data = date,
            Ano = Int64.Type,
            NomeMes = text,
            MesAbre = text,
            MesAno = text,
            MesNum = number,
            AnoMesINT = number,
            InicioMes = date,
            Trimestre = Int64.Type,
            TrimestreAbreviado = text,
            Bimestre = text,
            Semestre = text,
            Semana = Int64.Type,
            DiaSemana = Int64.Type,
            NomeDia = text,
            Passado = logical,
            AnoAtual = text,
            MesAtual = text
        ],
        List.Transform(
            ListarDatas,
            each {
                _,
                Date.Year(_),
                Text.Proper( Date.MonthName(_)),
                Text.Proper(Text.Start(Date.MonthName(_), 3)),
                Text.Proper(Text.Start(Date.MonthName(_), 3)) & “-” & Text.End(Text.From(Date.Year(_)), 2),
                Date.Month(_),
                Date.Year(_) * 100 + Date.Month(_),
                Date.StartOfMonth(_),
                Date.QuarterOfYear(_),
                Text.From(Date.QuarterOfYear(_)) & “º Trim “,
                Text.From( Number.RoundUp( Date.Month(_)/2,0)) & “º Bim”,
                Text.From( Number.RoundUp( Date.Month(_)/6,0)) & “º Sem”,
                Date.WeekOfMonth(_),
                Date.DayOfWeek(_),
                Date.DayOfWeekName(_),
                if _ <= MaiorData then true else false,
                if Date.IsInCurrentYear(_) then “Ano Atual” else Text.From(Date.Year(_)),
                if Date.IsInCurrentYear(_) and Date.IsInCurrentMonth(_) then “Mês Atual” else Text.Proper( Date.MonthName(_))
            }
        )
    )
in
    Tabela
Baixar o conteúdo em .TXT Tabela Dcalendario 01

Detalhe importante: as palavras em vermelho tem que ser substituídas pelas frases relacionadas ao seu projeto.

Código da Tabela de DCalendários 02

 

let
DataMin = List.Min(fPCM[Data Criação]),
DataMax = List.Max(fPCM[Data Criação]),
AnoMin = Date.Year(DataMin),
AnoMax = Date.Year(DataMax),
DataInicial = #date(AnoMin, 1, 1),
DataFinal = #date(AnoMax, 12, 31),
Duracao = Duration.Days(DataFinal – DataInicial) + 1,

Source = List.Dates(DataInicial, Duracao, #duration(1, 0, 0, 0)),
#”Converted to Table” = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#”Changed Type” = Table.TransformColumnTypes(#”Converted to Table”,{{“Column1″, type date}}),
#”Renamed Columns” = Table.RenameColumns(#”Changed Type”,{{“Column1”, “Data”}}),
#”Inserted Year” = Table.AddColumn(#”Renamed Columns”, “Ano”, each Date.Year([Data]), Int64.Type),
#”Inserted Month” = Table.AddColumn(#”Inserted Year”, “Mes”, each Date.Month([Data]), Int64.Type),
#”Inserted Month Name” = Table.AddColumn(#”Inserted Month”, “Nome do Mes”, each Date.MonthName([Data]), type text),
#”Inserted Quarter” = Table.AddColumn(#”Inserted Month Name”, “Trimestre”, each Date.QuarterOfYear([Data]), Int64.Type),
#”Inserted Day” = Table.AddColumn(#”Inserted Quarter”, “Dia”, each Date.Day([Data]), Int64.Type),
#”Inserted Day Name” = Table.AddColumn(#”Inserted Day”, “Nome do dia”, each Date.DayOfWeekName([Data]), type text),
#”Inserted Day of Week” = Table.AddColumn(#”Inserted Day Name”, “Dia da semana”, each Date.DayOfWeek([Data]), Int64.Type),
#”Coluna Personalizada Adicionada” = Table.AddColumn(#”Inserted Day of Week”, “Mes-Ano”, each Text.Combine({Date.ToText([Data], “MMM”), “-“, Date.ToText([Data], “yyyy”)}), type text),
#”Personalização Adicionada” = Table.AddColumn(#”Coluna Personalizada Adicionada”, “Class Mes-Ano”, each 100*[Ano] + [Mes]),
#”Tipo Alterado” = Table.TransformColumnTypes(#”Personalização Adicionada”,{{“Class Mes-Ano”, Int64.Type}}),
#”Colocar Cada Palavra Em Maiúscula” = Table.TransformColumns(#”Tipo Alterado”,{{“Nome do Mes”, Text.Proper, type text}, {“Mes-Ano”, Text.Proper, type text}}),
#”Primeiros caracteres extraídos” = Table.TransformColumns(#”Colocar Cada Palavra Em Maiúscula”, {{“Nome do Mes”, each Text.Start(_, 3), type text}})
in
#”Primeiros caracteres extraídos”

Baixar conteúdo em . TXT Tabela Dcalendario 02

Detalhe importante: as palavras em vermelho tem que ser substituídas pelas frases relacionadas ao seu projeto.

Finalizando a Criação da Tabela de Calendários

Após a inserção e configuração do código, clique em “Concluído”. Isso criará automaticamente a sua tabela de calendários. Você pode renomeá-la para “Calendário” e verificar se as datas mínima e máxima estão corretas.

Na tabela resultante, você encontrará informações detalhadas, como ano, mês, nome do mês, dia, nome do dia, e outros dados que serão imprescindíveis para suas análises futuras. Esses dados permitirão a criação de gráficos mensais, trimestrais e até semestrais, dependendo das suas necessidades.

Conectando a Tabela de Calendários às Tabelas Fato

Com a tabela de calendários criada, o próximo passo é conectá-la às tabelas de fato, que são “Realizado” e “Orçado”. Para isso, você deve acessar a visualização do modelo, onde as consultas estão disponíveis.

Arraste a data da tabela de calendários para a data da tabela “Orçado”, estabelecendo uma relação de um para muitos. Faça o mesmo com a tabela “Realizado”. Essa conexão permitirá que você utilize a tabela de calendários para gerar gráficos que analisem os resultados de forma mais eficaz.

Salvando e Finalizando o Projeto

Após estabelecer as conexões, salve seu projeto. Agora, você terá uma tabela de calendários completamente funcional, pronta para ser utilizada em análises e relatórios. Na próxima aula, abordaremos a criação de medidas que complementarão ainda mais os seus dados.

Com essa configuração, você está um passo mais próximo de dominar o Power BI e suas funcionalidades. A tabela de calendários é apenas o começo de um projeto robusto e eficiente de análise de dados.

 

Miguel Rodrigues
Últimos posts por Miguel Rodrigues (exibir todos)