Criar uma tabela de data

Concluído

Durante a criação do relatório no Power BI, um requisito comercial comum é fazer cálculos com base na data e na hora. As organizações querem conhecer o desempenho dos negócios delas ao longo de meses, trimestres, anos fiscais e assim por diante. Por esse motivo, é crucial que esses valores orientados por tempo sejam formatados corretamente. O Power BI detecta automaticamente as tabelas e colunas de data; no entanto, podem ocorrer situações em que você precisa executar etapas adicionais para obter as datas no formato que sua organização requer.

Suponha que você esteja desenvolvendo relatórios para a equipe de vendas na sua organização. O banco de dados contém tabelas para vendas, pedidos, produtos e muito mais. Observe que muitas dessas tabelas, incluindo Sales e Orders, contêm as respectivas colunas de data, conforme mostrado pelas colunas ShipDate e OrderDate nas tabelas Sales e Orders. Você tem a tarefa de desenvolver uma tabela do total de vendas e de pedidos por ano e por mês. Como é possível criar um visual com várias tabelas, cada uma fazendo referência às próprias colunas de data?

Captura de tela do trecho do modelo semântico com Sales.ShipDate e Order.OrderDate realçados.

Para resolver esse problema, crie uma tabela de data comum que possa ser usada por várias tabelas. A seção a seguir explica como é possível realizar essa tarefa no Power BI.

Criar uma tabela de data comum

As maneiras pelas quais é possível criar uma tabela de data comum são:

  • Dados de origem

  • DAX

  • Power Query

Dados de origem

Ocasionalmente, os bancos de dados de origem e os data warehouses já têm as respectivas tabelas de data. Se o administrador que criou o banco de dados fez um trabalho completo, essas tabelas podem ser usadas para executar as seguintes tarefas:

  • Identificar feriados da empresa

  • Separar o ano civil e o ano fiscal

  • Identificar fins de semana versus dias da semana

As tabelas de dados de origem estão maduras e prontas para uso imediato. Se você tiver uma tabela desse tipo, certifique-se de incluí-la no seu modelo semântico e não use nenhum outro método descrito nessa seção. Recomendamos que você use uma tabela de data de origem porque ela provavelmente é compartilhada com outras ferramentas que você talvez esteja usando, além do Power BI.

Se você não tiver uma tabela de dados de origem, use outras maneiras de criar uma tabela de data comum.

DAX

É possível as funções DAX (Data Analysis Expression) CALENDARAUTO() ou CALENDAR() para criar sua tabela de data comum. A função CALENDAR() retorna um intervalo contíguo de datas com base em uma data de início e uma de término inseridas como argumentos na função. Como alternativa, a função CALENDARAUTO() retorna um intervalo contíguo e completo de datas que são determinadas automaticamente a partir do seu modelo semântico. A data de início é escolhida como a primeira data que existe no seu modelo semântico e a data de término é a data mais recente que existe no seu modelo semântico, acrescidas dos dados que foram preenchidos para o mês fiscal e que você pode optar por incluir como um argumento na função CALENDARAUTO(). Para os fins deste exemplo, a função CALENDAR() é usada porque você só deseja ver os dados de 31 de maio de 2011 (o primeiro dia em que Sales começou o respectivo acompanhamento desses dados) em diante, incluindo os dez anos seguintes.

No Power BI Desktop, selecione Nova Tabela e, em seguida, insira a seguinte fórmula DAX:

Dates  = CALENDAR(DATE(2011, 5, 31), DATE(2022, 12, 31))

Captura de tela da fórmula CALENDAR no Power BI.

Agora, você tem uma coluna de datas para usar. No entanto, essa coluna é um pouco esparsa. Você também deseja ver colunas apenas pelo ano, pelo número do mês, pela semana do ano e pelo dia da semana. Realize essa selecionando Nova Coluna na faixa de opções e inserindo a equação DAX a seguir, que recupera o ano da tabela de Data.

Year = YEAR(Dates[Date])

Captura de tela de adição de colunas usando uma equação DAX.

Execute o mesmo processo para recuperar o número do mês, o número da semana e o dia da semana:

MonthNum = MONTH(Dates[Date])
WeekNum = WEEKNUM(Dates[Date])
DayoftheWeek = FORMAT(Dates[Date], "DDDD")

Quando você terminar, sua tabela conterá as colunas mostradas na figura a seguir.

Captura de tela das colunas finais na tabela DAX.

Você criou uma tabela de data comum usando o DAX. Esse processo apenas adiciona a nova tabela ao modelo semântico. Você ainda precisará estabelecer relações entre sua tabela de data e as tabelas Vendas e Pedidos e, em seguida, marcar sua tabela como a tabela de data oficial do modelo semântico. No entanto, antes de concluir essas tarefas, considere a possibilidade de criar uma tabela de data comum de outra maneira: usando o Power Query.

Power Query

Use a linguagem M, a linguagem de desenvolvimento usada para criar consultas no Power Query, para definir uma tabela de data comum.

Selecione Transformar Dados no Power BI Desktop, o que o direcionará para o Power Query. No espaço em branco do painel Consultas à esquerda, clique com o botão direito do mouse para abrir o menu suspenso a seguir, no qual você selecionará Nova Consulta > Consulta em Branco.

Captura de tela da criação de uma nova consulta no Power BI.

Na exibição da Nova Consulta resultante, insira a seguinte fórmula de M para criar uma tabela de calendário:

= List.Dates(#date(2011,05,31), 365*10, #duration(1,0,0,0))

Captura de tela do uso de uma fórmula de M para desenvolver uma tabela de calendário.

Para seus dados de vendas, a data de início deve refletir a primeira data que você tem em seus dados: 31 de maio de 2011. Além disso, você deseja ver as datas dos próximos dez anos, incluindo datas futuras. Essa abordagem garante que, à medida que novos dados de vendas surjam, você não precise recriar essa tabela. Também é possível alterar a duração. Nesse caso, convém ter um ponto de dados por dia, mas também é possível incrementar por horas, minutos e segundos. A figura a seguir mostra o resultado.

Captura de tela do calendário de vendas como uma lista.

Depois de observar que teve êxito no processo, você percebe que tem uma lista de datas em vez de uma tabela de datas. Para corrigir esse erro, acesse a guia Transformar na faixa de opções e selecione Converter > Em Tabela. Como o nome sugere, esse recurso converterá sua lista em uma tabela. Também é possível renomear a coluna para DateCol.

Captura de tela da conversão de uma lista em uma tabela no Editor do Power Query.

Em seguida, adicione colunas à nova tabela para ver as datas em termos de ano, mês, semana e dia, permitindo que você crie uma hierarquia em seu visual. Sua primeira tarefa é alterar o tipo de coluna selecionando o ícone ao lado do nome da coluna e, no menu suspenso resultante, selecionar o tipo Data.

Captura de tela da alteração do tipo para a data.

Depois de concluir a seleção do tipo Data, é possível adicionar colunas para ano, meses, semanas e dias. Acesse Adicionar Coluna, selecione o menu suspenso em Data e, em seguida, selecione Ano, conforme mostrado na figura a seguir.

Captura de tela de adição de colunas por meio do Power Query.

Observe que Power BI adicionou uma coluna de todos os anos cujo pull é efetuado de DateCol.

Captura de tela de adição de colunas com o Power Query em uma tabela.

Conclua o mesmo processo para meses, semanas e dias. Quando você terminar esse processo, sua tabela vai conter as colunas mostradas na figura a seguir.

Captura de tela das colunas DateCol, Year, Month, Week of Year e Day Name.

Você usou com êxito o Power Query para criar uma tabela de data comum.

As etapas anteriores mostram como inserir a tabela no modelo semântico. Agora, você precisa marcar sua tabela como a tabela de data oficial para que Power BI possa reconhecê-la para todos os valores futuros e assegurar que a formatação esteja correta.

Marcar como a tabela de data oficial

Sua primeira tarefa para marcar a tabela como a tabela de data oficial é encontrar a nova tabela no painel Campos. Clique com o botão direito do mouse no nome da tabela e selecione Marcar como tabela de data, conforme mostrado na figura a seguir.

Captura de tela da opção

Ao marcar sua tabela como uma tabela de data, o Power BI executa validações para garantir que os dados não contenham nenhum valor nulo, sejam exclusivos e contenham valores de data contínuos durante um período. Também é possível escolher colunas específicas em sua tabela para marcar como a data, o que pode ser útil quando você tem muitas colunas em sua tabela. Clique com o botão direito do mouse na tabela, selecione Marcar como tabela de data e, em seguida, selecione Configurações da tabela de data. A janela a seguir será exibida, na qual será possível escolher qual coluna deve ser marcada como Data.

Captura de tela da caixa de diálogo marcar como tabela de data.

A seleção da opção Marcar como tabela de data removerá as hierarquias geradas automaticamente do campo Data na tabela marcada como uma tabela de data. Para outros campos de data, a hierarquia automática ainda estará presente até que você estabeleça uma relação entre esse campo e a tabela de data ou até que você desative o recurso Data/Hora Automática. É possível adicionar manualmente uma hierarquia à tabela de data comum clicando com o botão direito do mouse nas colunas year, month, week ou day no painel Campos e, em seguida, selecionando Nova hierarquia. Esse processo será discutido posteriormente neste módulo.

Criar seu visual

Para criar seu visual entre as tabelas Sales e Orders, será necessário estabelecer uma relação entre essa nova tabela de data comum e as tabelas Sales e Orders. Como resultado, você poderá criar visuais usando a nova tabela de data. Para concluir essa tarefa, acesse a guia Modelo>Gerenciar Relações. Ali, usando a coluna OrderDate, é possível criar relações entre a tabela de data comum e as tabelas Orders e Sales. A captura de tela a seguir mostra um exemplo de relação desse tipo.

Captura de tela do diálogo Criar relacionamento.

Depois de criar as relações, crie seu visual Total de Vendas e Quantidade de Pedidos por Período de Tempo com sua tabela de data comum que você desenvolveu usando o método DAX ou Power Query.

Para determinar o total de vendas, você precisa adicionar todas as vendas, pois a coluna Amount na tabela Sales só examina a receita de cada venda, não a receita total de vendas. Conclua essa tarefa usando o cálculo de medida a seguir, que será explicado em discussões posteriores. O cálculo que você usará ao criar essa medida é o seguinte:

#Total Sales = SUM(Sales[‘Amount’])

Depois de concluir, crie uma tabela retornando à guia Visualizações e selecionando o visual Tabela. Você deseja ver o total de pedidos e vendas por ano e mês, portanto, você só deseja incluir as colunas Year e Month de sua tabela de datas, a coluna OrderQty e a medida #TotalSales. Ao aprender sobre hierarquias, é possível também criar uma hierarquia que permite fazer uma busca detalhada, passando de anos para meses. Neste exemplo, você pode exibir essas informações lado a lado. Você criou com êxito um visual com uma tabela de data comum.

Captura de tela da coluna Common Date usando o DAX.