Um dos maiores desafios ao se desenvolver painéis administrativos é aproveitar bem o espaço das páginas e, ao mesmo tempo, exibir a informação de forma completa e objetiva. Neste post vamos ensinar uma alternativa para exibir valores distintos em um único gráfico utilizando-se medidas dinâmicas no Microsoft Power BI. Isso possibilita que o usuário troque a medida dos gráficos de um relatório de forma dinâmica através de um filtro do tipo “slicer”.

A solução

Para a criação deste exemplo nós utilizamos a base de dados da Microsoft “Adventure Works DW” (é possível baixa-la aqui). A solução desenvolvida é composta de: três medidas em DAX contendo os cálculos que desejamos apresentar; uma tabela auxiliar que irá funcionar como dimensão para o filtro que seleciona a medida dinamicamente, ou seja, essa tabela é basicamente uma lista com os nomes das medidas; por último, mas não menos importante, a medida dinâmica que será utilizada no gráfico.

Criação das medidas

Após a importação dos dados para o Power BI, criamos 3 medidas utilizando a tabela FactInternetSales. As medidas são bem simples e acredito que não requerem mais explicações.

Lucro:
Lucro = SUM(FactInternetSales[SalesAmount]) – SUM(FactInternetSales[TotalProductCost])

Quantidade:
Quantidade = SUM(FactInternetSales[OrderQuantity])

Total Vendas:
Total Vendas = SUM(FactInternetSales[SalesAmount])

Criação da tabela auxiliar

Como dito anteriormente, essa tabela será responsável por possibilitar a seleção da medida por parte do usuário. Sendo assim, ela nada mais é do que uma lista com os nomes das medidas que você deseja disponibilizar no seu relatório. Para criação da tabela utilizamos a funcionalidade de entrada manual de dados, conforme a imagem abaixo:

Criação da medida dinâmica

Vamos criar duas medidas: uma, que chamamos de MedidaFiltrada, para retornar o ID do item da tabela auxiliar que foi selecionado pelo usuário; e outra (chamada MedidaDinamica) para, a partir deste ID, selecionar a medida correta para apresentar no gráfico.

Medida Filtrada:
MedidaFiltrada = MAX(TabelaMedidas[ID])

Obs.: Na formula acima foi utilizada a função MAX simplesmente para se retornar um único valor de ID, mas repare que, uma vez que sempre teremos um filtro selecionado, essa função não está realizando cálculo algum.

Medida Dinâmica:
MedidaDinamica = SWITCH( [MedidaFiltrada];
1; [Total Vendas];
2; [Quantidade];
3; [Lucro]
)

Criação do filtro

Por último, basta desenhar o relatório com os gráficos que desejar e utilizar a medida dinâmica onde for conveniente. Para que o usuário posso trocar entre as opções de medidas, precisamos disponibilizar os botões que ele irá utilizar para tal. A nossa sugestão é utilizar um objeto do tipo de filtro e configura-lo com a nova funcionalidade de exibição responsiva, para que assim ele apareça como grandes botões de opções na tela.

Na imagem abaixo, selecionamos a opção de filtro e escolhemos o campo com o nome da medida na tabela auxiliar que criamos (TabelaMedidas).

Dica: Para formatar o filtro deixando com aparência de botão, deve se acessar a guia de formatação e no ítem Orientação selecionar a opção Horizontal.

Resultado

Veja abaixo o resultado final do relatório produzido para este post. Nele colocamos três visualizações diferentes (um gráfico, um treemap e um mapa), todas utilizando a medida dinâmica que criamos. Repare que através dos botões no canto superior direito podemos facilmente trocar qual a medida exibida pelas visualizações.

Live Demo

É possível encontrar um exemplo prático desta medida dinâmica nesta publicação na comunidade oficial do Microsoft Power BI (Link).

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *