BLOG DOS
INCOMPARÁVEIS

Publicações

Como evoluir do Excel para o Power BI

Hoje te mostrarei como você poderá evoluir do Excel para o Power BI e fazer as mesmas contas, como por exemplo o PROCV (ou PROCX) com DAX e Relacionamentos.

PROCV ou PROCX

Bom, se você se familiarizou com a expressão “PROCV” ou “PROCX” provavelmente você é um usuário do Excel. Caso não seja, vou te explicar brevemente o que essa função faz.

Essa função serve para você buscar um determinado valor em outra tabela através de um identificador em comum.

Exemplo: Como você obteria o faturamento tendo em mãos a tabela Vendas e Produtos ?

Figura 1: Tabela Vendas

Figura 2: Tabela de produto

O faturamento total nada mais é que a soma do produto entre ValorUnitario e QtdItens. Como a coluna ValorUnitario não está na tabela Vendas, precisaremos antes de tudo, trazê-la para cá. Para isso, usaremos a função PROCX (XLOOKUP):

 =XLOOKUP(D2;Produto!A:A;Produto!D:D)
Figura 3: PROCX (XLOOKUP)


Agora sim, você poderia obter o faturamento total apenas multiplicando ValorUnit por QtdItens, já que ambos estão na tabela Vendas.

Se você observar as colunas da tabela Produto, verá que não temos o nome do grupo e linha que cada produto possui (estão nas tabelas Grupo e Linha) então já viu né?! Teríamos que criar outras colunas para ter tudo no mesmo lugar e só depois montar os gráficos. Trabalheira!

Ainda assim, levar tudo para a tabela Vendas, que é nossa tabela fato não é o ideal no mundo da modelagem de dados.

No Power BI isso podemos resolver isso facilmente e adotar as melhores práticas de modelagem de dados.

PROCX no Power BI

Há 4 formas de “fazer PROCX” no Power BI:

1) Mesclando Consultas no Power Query

Usar sempre quando você precisar unificar tabelas que representam a mesma entidade (no nosso caso era Produto).

Ex: Colocar colunas Grupo, Linha e Produto na tabela Produto

Ou seja, para unificar tabelas que representam a mesma dimensão você pode realizar a mesclagem de consultas.

Dica:
Evite ao máximo realizar mescla de consultas entre Tabelas dimensão e Tabelas fato.

Para levarmos a coluna Grupo para a tabela Produto, basta ir na tabela Produto → Mesclar Consultas → Definir as colunas envolvidas na mesclagem

Figura 4: Mesclar consultas

Na janela que aparecer, você deve selecionar a coluna que temos em comum:

Figura 5: Selecionando colunas

Como resultado dessa operação teremos a coluna Grupo que tem um botão para expandirmos as colunas que precisamos. No caso, deixaremos marcada apenas Grupo e cdLinha:

Figura 6: Expandindo colunas

Veja que se utilizássemos o PROCX, só iríamos conseguir trazer uma coluna de cada vez e na Mesclagem de Consultas no Power Query conseguimos trazer mais de uma!

Para trazer o nome da Linha, basta realizar o mesmo procedimento na tabela Produto, mas agora iremos buscar o nome na tabela Linha:

Figura 7: Segunda mesclagem

Depois, basta expandir a coluna Linha.

O resultado ficou assim:

Figura 8: Resultado

Para finalizar, basta desabilitarmos a carga da tabela Grupo e Linha porque já levamos a coluna que precisamos para a tabela Produto. Basta clicar com botão direito na tabela Grupo e deixar o “Habilitar carga” desmarcado:

Figura 9: Desabilitando carga

Repare que ao fazer isso, você apenas estará deixando de levar a tabela para a modelagem. Ou seja, o que você utilizou para realizar a mesclagem ainda vai existir e os dados serão atualizados da mesma forma que as outras tabelas.

Por último, clique em Fechar e Aplicar para prosseguirmos.

Figura 10: Fechar e aplicar

2) Usando a função RELATED da Linguagem DAX

Voltando ao nosso exemplo do Excel, vamos trazer a coluna “ValorUnitario” para a tabela Vendas através da linguagem DAX.

Figura 11: Adicionando coluna

A fórmula é bem simples:

Figura 12: Utilizando a função RELATED

Faremos o mesmo procedimento para criar a coluna Valor Total com o produto.

Abaixo, as duas fórmulas que construímos:

ValorUnit =
RELATED ( Produto[ValorUnitario] )

ValorTotal =
Vendas[QtdItens] * Vendas[ValorUnit]

Importante lembrar que é necessário existir um relacionamento entre a tabela Vendas e Produto para que a função RELATED funcione, ok?! Falando e relacionamentos… Vamos para a 3a forma!

3) Criando relacionamentos

Vá na área Modelo e veja que automaticamente o Power BI identificou o relacionamento entre a tabela Produto e Vendas através da colunas cdProduto.

Figura 13: Relacionamento

Isso significa que se fizermos um visual com dados de ambas as tabelas, conseguiremos obter valores corretos porque elas estão relacionadas. Veja um exemplo:

Figura 14: Matriz com dados relacionados

Irado, né?! No Excel teríamos que fazer tabelas dinâmicas para cada agregação ou então várias fórmulas para juntar tudo que precisamos. Aqui só precisamos relacionar as tabelas.

Bora para a próxima a última forma!

4) Usando a função LOOKUPVALUE da Linguagem DAX

Eu somente usaria esta função para buscar um valor entre tabelas que não estão relacionadas entre si.

Vamos criar a seguinte expressão numa coluna nova da tabela Vendas:

ValorUnit LOOKUPVALUE =
LOOKUPVALUE (
    Produto[ValorUnitario],
    Produto[cdProduto], Vendas[cdProduto]
)

O resultado…

Figura 15: LOOKUPVALUE

Repare que obtivemos o mesmo resultado de quando utilizamos a função RELATED, porém se removêssemos o relacionamento (físico) entre Vendas e Produto, somente a coluna ValorUnit LOOKUOVALUE iria funcionar.

Dúvidas

Durante a Live #49, alguns participantes tiveram dúvidas. Para fechar, vou adicioná-las aqui embaixo. Vai que alguma delas é também sua dúvida!

​Altino Fernandes: Toda tabela dimensão tem que ter um código chave ?

Sim!

Guilherme Rodrigues: E se eu trabalho com muitas linhas como por exemplo 5 milhões de linhas como vou criar esta chave única?

Você só precisa de chave única para tabelas dimensão.

André Paiva: ​Às vezes precisamos de duas chaves de uma tabela para relacionar a outra, é possível fazer isso? ex. mês e ano em colunas separadas para vincular a uma tabela com valores com mês e ano na mesma coluna.

Você pode criar uma chave única concatenando essas duas colunas.

Dica da Sayuri Arimori – Say: ​Gosto de pensar em dimensão como um filtro do dashboard / relatório…

Exato!
Dimensão: informações que vão no Eixo de um visual ou no filtro do relatório
Fato: informações que vão nos valores dos gráficos (tamanho da barra, altura da linha, o número)

Clebson Silva: ​​A função RELATED é utilizada quando eu quero buscar informações de outra tabela apenas com o relacionamento ativado?

E sempre quando estou em uma tabela fato e quero buscar uma informação na tabela dimensão

Cristiane Viana: ​​​Se eu tenho informações na mesma estrutura extraídas do sistema de vários clientes, mas que preciso entregar separadamente para cada um deles. Eu preciso fazer todo processo ETL, relacionamento, layout e demais ações para cada um?

Você pode importar tudo em um único projeto do Power BI, configurar RLS (segurança a nível de linha) e compartilhar com seus clientes.

Caso você queira entender melhor o conceito de relacionamentos, modelagem, tabelas fato e dimensão, recomendo fortemente que dê uma olhada aqui:

Guia Definitivo sobre RELACIONAMENTOS entre tabelas e Modelagem de Dados – Xperiun

Bom, agora, fechou!

Espero que tenha gostado do conteúdo e não se esqueça: Live ao Vivo no Canal do Youtube toda Terça-feira às 19h! Te vejo lá!

Abraços,
Leonardo.

Leia também

Assista agora o Minicurso gratuito de Power BI:

Publicações recentes:
Assuntos: