Em um post anterior (Pontes relacionais no Power BI – Riser (cursosriser.com.br)), vimos uma forma de filtrar duas ou mais tabelas no Power BI utilizando a mesma segmentação de dados (slicer). As etapas consistiram em:
- Criar referências das tabelas que serão relacionadas
- Remover as demais colunas
- Acrescentar uma das listas à outra
- Remover duplicadas
- Carregar e criar as relações no modelo do relatório
Apesar desse método ser robusto, para o caso de campos com datas, existe outra possibilidade, que seria a criação de uma tabela calendário com o auxílio de DAX.
Vamos utilizar como exemplo, o mesmo relatório do post anterior:
Nesse caso, os gráficos da parte superior (histórico de faturamento por unidade e status das vendas) são provenientes de uma tabela de faturamento, enquanto os visuais da parte inferior vêm de outra tabela, com informações de NPS.
Primeiramente, iremos criar uma tabela com a opção “Nova tabela” da guia “Modelagem” (no nível dos visuais):
Em seguida, definiremos a nova tabela calendário em DAX com a expressão abaixo:
tbCalendario = CALENDARAUTO()
A função CALENDARAUTO() pode ser utilizada sem nenhum argumento, como neste exemplo (retornando datas de 01/jan a 31/dez), ou informando um número que indique o mês final para consideração, por exemplo, CALENDARAUTO(3) retorna datas de 01/abr a 31/mar.
Para mais informações sobre essa função, você pode acessar a documentação da Microsoft:
Função CALENDARAUTO (DAX) – DAX | Microsoft Docs
O resultado seria a seguinte tabela de 01/01/2021 a 31/12/2021:
Veja que também é criada uma hierarquia de datas que pode ser bastante útil para alguns visuais e medidas:
Agora, é necessário conectar essa tabela calendário às demais tabelas do nosso modelo:
Veja que as conexões são de 1:n com o sentido de filtragem da tabela calendário para as demais.
Em seguida, é recomendável trocar as datas nos visuais para o campo da tabela calendário, pois caso haja informações de mais de uma tabela no mesmo gráfico, elas irão responder corretamente, por exemplo:
Também vamos criar uma segmentação de dados com esse campo de data:
Com isso, nosso relatório fica completo:
Ajustando o slicer de data, já é possível refletir as alterações em todos os visuais, como esperado:
Note que, nesse caso, foi também aplicado um filtro de nível visual, na segmentação de dados, para exibir somente os meses para os quais existem dados (janeiro a abril):
Para fazer o download do arquivo inicial (e refazer o passo a passo do vídeo), utilize o link abaixo:
Já, para baixar o arquivo final do vídeo, clique no link a seguir:
Aproveite para se inscrever no canal e até a próxima!