Criar uma tabela de datas

Concluído

Durante a criação de relatórios em Power BI, um requisito comercial comum é efetuar cálculos com base na data e na hora. As organizações querem saber como está a correr o seu negócio ao longo dos meses, trimestres, anos fiscais, etc. Por esta razão, é crucial que estes valores orientados para o tempo sejam formatados corretamente. Power BI detecta automaticamente as colunas e tabelas de datas; no entanto, podem ocorrer situações em que é necessário tomar medidas adicionais para obter as datas no formato exigido pela sua organização.

Por exemplo, suponha que está a desenvolver relatórios para a equipa de vendas da sua organização. A base de dados contém tabelas para vendas, encomendas, produtos e muito mais. Repara que muitas destas tabelas, incluindo Sales e Orders, contêm as suas próprias colunas de datas, como mostram as colunas ShipDate e OrderDate nas tabelas Sales e Orders. A sua tarefa consiste em elaborar um quadro com o total de vendas e encomendas por ano e por mês. Como é que se pode construir um visual com várias tabelas, cada uma referenciando as suas próprias colunas de datas?

Para resolver isto problema, pode criar uma tabela de datas comum que pode ser utilizada por várias tabelas. A secção seguinte explica como pode realizar esta tarefa em Power BI.

Criar uma tabela de datas comum

As formas de criar uma tabela de datas comum são:

  • Dados de origem

  • DAX

  • Power Query

Dados de origem

Ocasionalmente, as bases de dados de origem e os armazéns de dados já têm as suas próprias tabelas de datas. Se o administrador que concebeu a base de dados tiver feito um trabalho minucioso, estas tabelas podem ser utilizadas para realizar as seguintes tarefas:

  • Identificar os feriados da empresa

  • Separação entre o ano civil e o ano fiscal

  • Identificar os fins-de-semana e os dias de semana

As tabelas de dados de origem estão maduras e prontas para utilização imediata. Se tiver uma tabela como tal, introduza-a no seu modelo semântico e não utilize quaisquer outros métodos descritos nesta secção. Recomendamos a utilização de uma tabela de datas de origem porque é provável que seja partilhada com outras ferramentas que possa estar a utilizar Power BI.

Se não tiver uma tabela de dados de origem, pode utilizar outras formas de criar uma tabela de datas comum.

DAX

Pode utilizar as funções de Expressão de Análise de Dados (DAX) CALENDARAUTO() ou CALENDAR() para criar a sua tabela de datas comum. A função CALENDAR() devolve um intervalo contíguo de datas com base numa data de início e de fim que são introduzidas como argumentos na função. Em alternativa, a função CALENDARAUTO() devolve um intervalo completo e contíguo de datas que são automaticamente determinadas a partir do seu modelo semântico. A data de início é escolhida como a data mais antiga que existe no modelo semântico e a data final é a data mais recente que existe no modelo semântico mais os dados que foram preenchidos para o mês fiscal que pode ser escolhido para incluir como um argumento na função CALENDARAUTO(). Para os fins deste exemplo, a função CALENDAR() é utilizada porque só pretende ver os dados a partir de 31 de maio de 2011 (o primeiro dia em que o Sales começou a seguir estes dados) e para os próximos 10 anos.

Em Power BI Desktop, seleccione New Table e, em seguida, introduza a seguinte fórmula DAX:

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

Agora, tem uma coluna de datas que pode utilizar. No entanto, esta coluna é um pouco escassa. Também pretende ver colunas apenas para o ano, o número do mês, a semana do ano e o dia da semana. Pode realizar esta tarefa seleccionando New Column no friso e introduzindo a seguinte equação DAX, que irá obter o ano da tabela Date.

Year = YEAR(Dates[Date])

Pode efetuar o mesmo processo para obter 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 tiver terminado, a sua tabela conterá as colunas apresentadas na figura seguinte.

Criou agora uma tabela de datas comum utilizando DAX. Isto processo apenas adiciona a sua nova tabela ao modelo semântico; terá ainda de estabelecer relações entre a sua tabela de datas e as tabelas Sales e Order, e depois marcar a sua tabela como a tabela de datas oficial do seu modelo semântico. No entanto, antes de concluir essas tarefas, certifique-se de que considera outra forma de criar uma tabela de datas comum: utilizando Power Query.

Power Query

Pode utilizar a linguagem M, a linguagem de desenvolvimento que é utilizada para criar consultas em Power Query, para definir uma tabela de datas comum.

Seleccione Transformar dados em Power BI Desktop, que o encaminhará para Power Query. No espaço em branco do painel esquerdo Queries , clique com o botão direito do rato para abrir o seguinte menu pendente, onde seleccionará New Query > Blank Query.

Na vista resultante New Query , introduza a seguinte fórmula M para criar uma tabela de calendário:

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

Para os seus dados de vendas, pretende que a data de início reflicta a data mais antiga que tem nos seus dados: 31 de maio de 2011. Além disso, pretende ver datas para os próximos 10 anos, incluindo datas no futuro. Esta abordagem garante que, à medida que forem entrando novos dados de vendas, não será necessário recriar esta tabela. Também é possível alterar a duração. Neste caso, pretende um ponto de dados para cada dia, mas também pode incrementar por horas, minutos e segundos. A figura seguinte mostra o resultado.

Depois de ter tido sucesso no processo, repara que tem uma lista de datas em vez de uma tabela de datas. Para corrigir isto erro, aceda ao separador Transformar no friso e seleccione Converter > Para Tabela. Como o nome sugere, esta funcionalidade converte a sua lista numa tabela. Também pode mudar o nome da coluna para DateCol.

Em seguida, pretende adicionar colunas à sua nova tabela para ver as datas em termos de ano, mês, semana e dia, para que possa criar uma hierarquia no seu visual. A sua primeira tarefa é alterar o tipo de coluna seleccionando o ícone junto ao nome da coluna e, no menu pendente resultante, seleccionando o tipo Date .

Depois de ter terminado de selecionar o tipo Date , pode adicionar colunas para ano, meses, semanas e dias. Aceda a Adicionar coluna, seleccione o menu pendente em Data e, em seguida, seleccione Ano, como mostra a figura seguinte.

Repare que Power BI adicionou uma coluna de todos os anos que são retirados de DateCol.

Completar o mesmo processo para meses, semanas e dias. Depois de ter concluído isto processo, a tabela conterá as colunas que são mostradas na figura seguinte.

Utilizou com êxito o site Power Query para criar uma tabela de datas comum.

Os passos anteriores mostram como colocar a tabela no modelo semântico. Agora, é necessário marcar a tabela como a tabela de datas oficial para que o Power BI possa reconhecê-la para todos os valores futuros e garantir que a formatação está correcta.

Marcar como data oficial a tabela

A sua primeira tarefa para marcar a sua tabela como a tabela de datas oficial é encontrar a nova tabela no painel Fields . Clique com o botão direito do rato no nome da tabela e seleccione Marcar como tabela de datas, como mostra a figura seguinte.

Ao marcar a sua tabela como uma tabela de datas, o Power BI efectua validações para garantir que os dados contêm zero valores nulos, são únicos e contêm valores de datas contínuos durante um período. Também pode escolher colunas específicas na sua tabela para marcar como data, o que pode ser útil quando tem muitas colunas na sua tabela. Clique com o botão direito do rato na tabela, seleccione Marcar como tabela de datas e, em seguida, seleccione Definições da tabela de datas. Aparecerá a seguinte janela, onde pode escolher a coluna que deve ser marcada como Data.

Selecionar Marcar como tabela de datas removerá as hierarquias geradas automaticamente do campo Data na tabela que marcou como tabela de datas. Para outros campos de data, a hierarquia automática continuará presente até que se estabeleça uma relação entre esse campo e a tabela de datas ou até que se desactive a funcionalidade Auto Date/Time . Pode adicionar manualmente uma hierarquia à sua tabela de datas comum clicando com o botão direito do rato nas colunas ano, mês, semana ou dia no painel Fields e seleccionando New hierarchy. Isto processo é discutido mais adiante neste módulo.

Construa o seu visual

Para construir o seu visual entre as tabelas Sales e Orders, terá de estabelecer uma relação entre esta nova tabela de datas comum e as tabelas Sales e Orders. Como resultado, poderá criar imagens utilizando a nova tabela de datas. Para concluir esta tarefa, aceda ao separador Model > Manage Relationships, onde pode criar relações entre a tabela de datas comuns e as tabelas Orders e Sales utilizando a coluna OrderDate . A imagem de ecrã seguinte mostra um exemplo de uma dessas relações.

Depois de ter criado as relações, pode criar o seu Total Sales and Order Quantity by Time visual com a tabela de datas comum que desenvolveu utilizando o método DAX ou Power Query .

Para determinar o total de vendas, é necessário somar todas as vendas, porque a coluna Amount na tabela Vendas só analisa a receita de cada venda, não a receita total de vendas. É possível concluir esta tarefa utilizando o seguinte cálculo de medida, que será explicado em discussões posteriores. O cálculo que será utilizado para construir esta medida é o seguinte:

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

Depois de terminar, pode criar uma tabela regressando ao separador Visualizações e seleccionando a visualização Tabela . Pretende ver o total de encomendas e vendas por ano e mês, pelo que apenas pretende incluir as colunas Ano e Mês da sua tabela de datas, a coluna OrderQty e a medida #TotalSales . Quando se aprende sobre hierarquias, também se pode construir uma hierarquia que nos permita desagregar de anos para meses. Para isto exemplo, pode vê-los lado a lado. Agora criou com sucesso um visual com uma tabela de datas comum.