Calendário no Power BI

Quando fazemos análise de dados, rapidamente sentimos a necessidade de enquadrá-la num contexto de evolução temporal, por exemplo, ao longo de períodos de anos, meses ou até dias. Como podemos fazê-lo?

O Power BI tenta ajudar-nos com a opção “Time Intelligence” (auto date/time for new files). Conforme definição da Microsoft, quando esta opção está ligada, “por defeito é criada uma tabela de data escondida, para novos ficheiros, para cada campo no modelo que tenha um tipo de dados Date ou Date type”.

Continue a ler “Calendário no Power BI”

Diferença dinâmica de datas com Field Parameters

Com a possibilidade de criação de Field Parameters, temos o potencial de realizar diversas tarefas no Power BI, sendo que o dinamismo e flexibilidade desta funcionalidade aumenta a facilidade das soluções.

Outro dia tive uma questão sobre como se poderia criar uma diferença entre datas de forma dinâmica, ou seja, tendo um modelo com várias colunas de datas como poderíamos selecionar duas datas e encontrar o número de dias entre as mesmas sem existir a necessidade de criar todas as variações.

Continue a ler “Diferença dinâmica de datas com Field Parameters”

Enviar dados de um Power BI dataset por email

Recentemente deparei-me com o pedido de um cliente que pretendia um relatório sobre a qualidade dos seus dados nas suas múltiplas fontes. Pretendia detetar diferenças entre os estados de vendas nessas mesmas fontes. Rapidamente foi elaborado o relatório, e posteriormente foi solicitado que essas mesmas diferenças fossem enviadas por e-mail a um parceiro que faz a gestão de umas das fontes de dados. Sendo fora do tenant e não pretendendo dar acesso como utilizador externo foi explorada como poderíamos usar o Power Automate e o Power BI Service para satisfazer o pedido.

Os dados para enviar são dados simples, um ID de venda e a descrição do seu estado (neste caso apenas os pendentes) .

OrderIDStatus
XYZ_1Pendente
WZT_2Pendente

1º Passo – criar uma tabela no Power BI Desktop com a informação que pretendemos enviar e ter o dataset publicado no Power BI Service

2º Passo – vamos precisar da query que é executada para mostrar os dados da tabela , par isso vamos ter de usar o “Performance analyzer” para vermos essa mesma query

Resultado da query:

// DAX Query

DEFINE

  VAR __DS0FilterTable =

    TREATAS({“Pendente”}, ‘Orders'[Status])

  VAR __DS0FilterTable2 =

    FILTER(

      KEEPFILTERS(VALUES(‘Calendar'[Date])),

      ‘Calendar'[Date] >= DATE(2021, 12, 1)

    )

  VAR __DS0Core =

    CALCULATETABLE(

      SUMMARIZE(‘Orders’, ‘Orders'[OrderID], ‘Orders'[Status]),

      KEEPFILTERS(__DS0FilterTable),

      KEEPFILTERS(__DS0FilterTable2)

    )

  VAR __DS0PrimaryWindowed =

    TOPN(501, __DS0Core, ‘Orders'[OrderID], 1, ‘Orders'[Status], 1)

EVALUATE

  __DS0PrimaryWindowed

ORDER BY

  ‘Orders'[OrderID], ‘Orders'[Status]

3º Passo – criar o fluxo no Power Automate para enviar diariamente as informações por e-mail

 Selecionar “Create”

Escolher “Scheduled cloud flow” de modo a criarmos uma recorrência diária

Definir hora e modo de repetição , no nosso caso vamos fixar todos os dias para as 09:00 AM

Vamos selecionar as ações para o Power BI e escolher “Run a query against a dataset”

Escolhemos o worksapce , dataset e colamos a query que retiramos a pouco da tabela do Power BI Desktop:

Para entendermos um pouco melhor o que esta a ocorrer vamos salvar e correr o fluxo:

Depois de correr clicar na parte do Power BI

Assim conseguimos ver na parte dos outputs como esta a ser criada a informação

Vamos copiar para um editor de texto o output, pois vamos necessitar do formato mais a frente.

Voltamos para a edição do fluxo:

Agora vamos transformar o output de modo a conseguirmos colocar essa mesma informação num corpo de e-mail.

Para tal vamos começar por usar “Parse JSON”

Neste passo precisamos adicionar a “tabela” criada pelo output anterior e adicionarmos o “Schema”

Neste passo vamos colar o exemplo que tiramos a pouco do output no passo anterior.

De seguida precisamos pegar neste JSON e criamos o conteúdo para o corpo de e-mail.

Vamos usar o “Create HTML table”:

Chamo a atenção que optamos por criar “Custom columns” de modo a ir buscar a informação ao JSON. Assim temos uma tabela HTML que podemos usar no corpo de e-mail.

Clicar em salvar e testar o fluxo

4º passo – validar o e-mail enviado , para testar o envio utilizei um e-mail pertencente a empresa e outro fora da empresa, isto é, dentro do tenant e fora do tenant :

– E-mail enviado para o e-mail da empresa:

– E-mail enviado para o e-mail fora da empresa:

Conclusão;

Na minha opinião, esta técnica pode ser benéfica aos utilizadores no momento de partilhar determinadas informações, tendo sempre em atenção o GDPR.

Foi publicado recentemente um vídeo pela CURBAL no qual ela vai um pouco mais além fazendo transformações no aspeto do design da tabela enviada, caso tenho curiosidade partilho o link:

Aproveito ainda para deixar um agradecimento ao PBI Portugal e ao Miguel Felix pela disponibilidade em deixar publicar o artigo no blog.

Até uma próxima.

Rankings no Power Query

Na atualização de junho do Power BI foi adicionada uma função no Power Query que não foi referida no resumo. Essa função é Table.AddRankColumn.

Esta função como nome indica permite adicionar uma coluna de Ranking a uma tabela. Anteriormente para adicionar uma coluna de ranking, através de M language tínhamos que fazer alguns passos avançados como Group By ou Add Index, com a introdução desta nova função já não precisamos.

Continue a ler “Rankings no Power Query”

Field Parameters

Um dos requisitos que surge frequentemente no desenvolvimento de relatórios no Power BI é a possibilidade de dinamicamente colunas ou medidas nas visualizações. Esta funcionalidade tinha diversas formas de ser ultrapassada, fosse através da criação de bookmarks, tabelas auxiliares ou calculation groups.

Apesar de muitas delas não serem complexas em termos de funcionamento a sua configuração era trabalhosa, além de que a sua alteração não era fácil sem conhecimento da solução inicial.

Na atualização de maio 2022 tivemos a apresentação dos Field Parameter que permitem simplificar essas transformações.

Continue a ler “Field Parameters”