Bem-vindos a mais um tutorial de Power BI! Este artigo foi inspirado por uma dúvida que surgiu na nossa comunidade do Discord. Se você ainda não faz parte, não perca tempo. É gratuito e é uma ótima oportunidade para fazer networking e trocar ideias com outros profissionais.
A pergunta foi feita pela Cris, que estava trabalhando com modelagem de dados para um projeto de Fórmula 1 e precisava encontrar uma forma eficiente de buscar imagens de bandeiras dos países para diferentes partes do relatório. Como modelo, ela usava uma estrutura floco de neve (snowflake schema) com uma tabela fato de resultados e diversas dimensões, como pilotos, circuitos e equipes, além de uma dimensão País que era compartilhada com as demais dimensões.
O problema apareceu quando ela tentou relacionar a dimensão de país com várias outras dimensões, gerando ambiguidade nos filtros.
Preparação do Arquivo
Antes de começar, vamos ao Power BI e preparar um arquivo com os dados que utilizaremos. Se quiser seguir com o mesmo arquivo que utilizamos, você pode fazer o download aqui. No nosso modelo, temos quatro tabelas de dimensão (pilotos, circuitos, equipes e país) e uma tabela fato que armazena informações sobre corridas, pontuações e outras estatísticas.
Configuração dos Relacionamentos
A questão principal era a dimensão país, que deveria mostrar a bandeira do país para cada piloto, circuito e equipe. No entanto, ao tentar estabelecer um relacionamento entre a tabela de países e as três dimensões, houve problemas com relacionamentos inativos devido à ambiguidade.
- Relacionamentos Inativos: Se você tenta criar um relacionamento entre uma tabela de dimensão e várias outras tabelas, o Power BI pode criar relacionamentos inativos para evitar caminhos ambíguos. Por exemplo, ao tentar relacionar a tabela de países com as tabelas de pilotos, circuitos e equipes, houve conflito, pois cada relacionamento poderia criar diferentes caminhos para alcançar a tabela fato.
Para resolver essa ambiguidade, precisamos seguir uma abordagem diferente: trazer as informações do país diretamente para as tabelas de dimensão, em vez de depender de uma tabela separada.
Incorporação das Informações do País
Vamos usar o Power Query para mesclar as informações do país nas tabelas de dimensão. Assim, eliminamos a necessidade de relacionamentos múltiplos, evitando ambiguidade e mantendo uma estrutura em estrela.
Para mesclar dados no Power Query, inicie selecionando a tabela de circuitos na lista de consultas à esquerda. Depois, vá para a guia “Página Inicial” e clique em “Mesclar Consultas”. No pop-up que aparece, escolha a tabela de países para fazer a mesclagem.
Ao selecionar a chave de mesclagem, escolha “ID Country” em ambas as tabelas para garantir a correspondência correta. Verifique se o tipo de mesclagem está definido como “Esquerda” para manter todos os registros da tabela de circuitos, mesmo que não haja uma correspondência na tabela de países. Uma vez configurado, clique em “OK” para concluir a mesclagem.
Depois de mesclar as tabelas, é necessário expandir as informações da tabela de países para a tabela de circuitos. Para fazer isso, clique no botão de expansão, que tem um ícone de duas setas apontando para baixo, ao lado da coluna mesclada. Desmarque a opção “Usar nome da coluna original como prefixo” para evitar nomes redundantes. Selecione as colunas que deseja trazer da tabela de países. Escolha “URL da Imagem” e “Nome do País”. Após a seleção, clique em “OK” para expandir as colunas para a tabela de circuitos.
Repita o mesmo processo para as outras tabelas (Equipes e Pilotos).
Ao mesclar, garantimos que cada tabela de dimensão tenha informações suficientes para gerar relatórios sem criar relacionamentos inativos ou ambiguidade.
Configuração de Campos de Imagem
Após mesclar as informações, precisamos configurar as colunas de URL da imagem como “URL de Imagem” no Power BI. Isso permite que as imagens das bandeiras sejam exibidas corretamente nos relatórios.
- Configurar como URL de Imagem: Para cada tabela de dimensão, selecionamos a coluna de URL de imagem e a configuramos como “URL de Imagem”. Agora, podemos exibir as bandeiras nos relatórios.
Após isso, podemos arrastar as colunas de URL de Imagem para cada uma de suas tabelas correspondentes.
Criar Segmentadores para Filtros Dinâmicos
Com as informações incorporadas, podemos criar filtros dinâmicos para os relatórios. Queremos permitir que o usuário escolha qual dimensão (pilotos, circuitos ou equipes) será filtrada por país e, em seguida, selecione o país para filtrar.
Para criar filtros personalizados para diferentes dimensões no Power BI, é importante entender como cada dimensão é diferente e quais filtros se aplicam a cada uma delas. Veja como configurar e usar filtros para trabalhar com dimensões como pilotos, circuitos e equipes, filtrando por nacionalidade ou país.
Vamos começar com um filtro básico para uma única dimensão, como pilotos. Para isso, selecionamos um filtro e trazemos a coluna do país traduzido para ele. Se quisermos filtrar por uma nacionalidade específica, como brasileiros, podemos aplicar o filtro e ver apenas os pilotos brasileiros no relatório. Essa abordagem nos permite ver informações sobre pilotos brasileiros, como bandeiras e estatísticas relacionadas.
Por exemplo, ao filtrar pelo Brasil, podemos observar apenas pilotos brasileiros. No entanto, isso não significa que todos os circuitos ou equipes sejam brasileiros, pois pilotos brasileiros também podem ter corrido em circuitos estrangeiros ou por equipes estrangeiras.
Da mesma forma, para circuitos, aplicar um filtro de país permite ver todos os circuitos brasileiros na Fórmula 1. Por exemplo, ao filtrar pelo Brasil, vemos que há dois circuitos brasileiros históricos, e podemos identificar quais pilotos correram neles e quais equipes estiveram presentes. Isso nos ajuda a obter insights sobre as corridas em pistas brasileiras.
Para equipes, ao aplicar um filtro por nacionalidade, podemos ver apenas equipes brasileiras e os pilotos que correram por elas. Ao filtrar pelo Brasil, por exemplo, vemos uma única equipe brasileira na história da Fórmula 1, e quem foram os pilotos que representaram essa equipe. Além disso, podemos descobrir em quais circuitos essa equipe correu.
Por fim, para combinar todos esses filtros em um único filtro de país, podemos usar um parâmetro de campo. Ao criar um parâmetro de campo, podemos escolher qual dimensão queremos filtrar: pilotos, circuitos ou equipes. Para isso, fazemos o seguinte:
- Remova todos os filtros criados anteriormente.
- Clique em “Modelagem” e selecione “Novo Parâmetro”, escolhendo “Parâmetro de Campo”.
- Dê um nome ao parâmetro, como “Tipo”.
- Em seguida, escolha as colunas que deseja usar para filtrar. No nosso exemplo, escolhemos “Nome do País Traduzido” para cada dimensão: pilotos, circuitos e equipes.
Quando você cria um parâmetro de campo no Power BI, é essencial evitar conflitos de nomenclatura para garantir clareza e funcionalidade no relatório. Para resolver esse problema, primeiro localize a tabela do parâmetro que foi gerada automaticamente. Em seguida, renomeie as colunas dos parâmetros. Para confirmar a alteração, pressione “Enter”. Com essas ações, você evita ambiguidades e garante que o seu relatório no Power BI funcione de maneira mais organizada e sem erros causados por nomes duplicados ou semelhantes.
Precisamos ajustar algumas configurações para garantir que o filtro funcione como esperado.
Vamos começar replicando o filtro criado. Para isso, faça a cópia do filtro original com Ctrl+C e Ctrl+V. Com o filtro replicado, o passo é alterar a fonte de dados para que, ao invés de mostrar o nome do parâmetro, ele mostre os valores associados ao campo relevante.
- Para configurar o filtro para exibir os valores do campo, clique no botão “Adicionar Dados” no canto superior do filtro.
- Em seguida, encontre a opção para selecionar qual campo será usado para alimentar o filtro. Clique com o botão direito sobre o campo “Tipo” e escolha “Mostrar valores do campo selecionado”.
Se tudo correr bem, você verá as opções correspondentes à escolha do campo. No entanto, se você experimentar um erro, é porque não há uma seleção marcada. Isso pode ser corrigido facilmente, basta selecionar uma opção no parâmetro de campo.
Para finalizar e evitar erros quando nada está marcado, uma configuração recomendada é garantir que uma seleção única seja sempre feita:
- Vá para o painel de formatação do filtro e ative a “Seleção Única” em “Configuração de Segmentação”.
- Com isso, sempre haverá uma opção ativa, reduzindo a chance de erros por falta de seleção.
Conclusão
Com esses ajustes, agora temos um relatório dinâmico que permite filtrar por país para cada dimensão sem criar ambiguidade ou erros. Essa abordagem também mantém o modelo em um esquema estrela, evitando problemas futuros com modelagem de dados.
No Comment! Be the first one.