Alura > Cursos de Data Science > Cursos de Business Intelligence > Conteúdos de Business Intelligence > Primeiras aulas do curso Power BI: aprofundando na linguagem DAX

Power BI: aprofundando na linguagem DAX

Funções básicas de tabela - Apresentação

Olá! Me chamo Igor do Nascimento Alves e te dou as boas-vindas ao curso de Power BI: Aprofundando na linguagem DAX.

Audiodescrição: Igor se autodeclara como uma pessoa branca. Usa óculos de grau com armazção quadrada e escruta e tem olhos e cabelos curtos pretos. Ao fundo, uma parede iluminada pela cor verde e, ao seu lado direito, um abajur que ilumina o ambiente com a cor azul. Na parede, uma bandeira decorativa da casa Corvinal, de Harry Potter.

Para quem é este curso?

Este curso é para você que deseja se aprofundar na linguagem de análise de dados DAX. Com ela, você será capaz de criar medidas e colunas calculadas que trarão insights muito interessantes para o seu negócio.

Este curso não foca no processo de criar visualizações e dashboards. Para isso, disponibilizamos diversos outros cursos na formação de Power BI que podem atender você nesse quesito.

O que aprenderemos?

Ao longo do curso, desenvolveremos um projeto para atender a uma demanda da empresa Buscante. A Buscante forneceu dados dos times de logística e de marketing. Com esses dados, vamos criar medidas que agregarão valor para essas lideranças. Conseguiremos isso usando diversos recursos da linguagem DAX.

Combinaremos funções como, por exemplo, a CALCULATE(), muito popular, a outras funções importantes como a DIVIDE(). Unindo esses diversos recursos da linguagem DAX, conseguiremos trazer insights poderosos para as lideranças da Buscante.

Considere o seguinte exemplo de tabela da porcentagem de vendas:

...Total de vendasPorcentagem
...R$ 20.325100,00%
...R$ 8.77043,15%
...R$ 2.82013,87%
...R$ 2.39511,78%
...R$ 6.34031,19%
.........

Este é o tipo de resultado que vamos obter neste curso.

Pré-requisitos

É muito importante que, para avançar neste curso e desenvolver o projeto, você já tenha tido contato com o Power BI e também com a linguagem DAX.

Vamos começar?!

Funções básicas de tabela - Carregando os dados e criando relacionamentos

Observação: Caso haja alguma divergência na importação dos dados e apareça números com virgula ou algum título como Column1, transformações no Power Query como primeira linha de cabeçalho e formatação numérica resolverão o problema.

Durante o desenvolvimento deste projeto, acompanharemos a Paula, uma profissional que trabalha em uma empresa chamada Buscante.

Paula já criou algumas medidas utilizando a Data Analysis Expressions (DAX) para algumas lideranças da empresa e agora enfrenta um novo desafio. Foi fornecido a ela um novo conjunto de dados, um vindo da equipe de marketing e outro da equipe de logística, com os quais ela precisa criar métricas e medidas para essas lideranças.

Power BI

O primeiro passo para trabalhar com esses dados é decidir qual ferramenta vai nos proporcionar a capacidade de conectar essas duas fontes de informação.

A ferramenta que vamos utilizar para ler esses dois arquivos que serão disponibilizados - os dados de marketing (registro_livros_marketing.csv) e os dados de logística (registro_notas_logistica.csv) - será o Power BI. Vamos abri-la na nossa máquina.

Carregando os dados

Agora precisamos carregar esses dados dentro do programa. Para isso, clicamos na opção "Obter Dados", que fica na barra superior, no menu da Página Inicial. Podemos clicar diretamente na seta depois da frase.

Clicando nessa opção, abre-se uma janela com outras opções perguntando quais são as fontes de dados. Temos, por exemplo, na primeira opção, a "pasta de trabalho do Excel", depois o "conjunto de dados do Power BI". Navegamos por essas opções até chegarmos na opção "Texto/CSV", porque os nossos dados são do tipo CSV. Clicamos nela.

Ele abrirá uma janela do Windows perguntando onde estão nossos dados. O primeiro conjunto de dados que queremos carregar é o registro_livros_marketing.csv, os dados vindos da equipe de marketing. Clicamos neste arquivo e em "Abrir" no canto inferior direito da janela.

O Power BI criará a conexão com esta fonte de dados, com esse arquivo, e abrirá uma nova janela onde detalha informações que deduziu sobre esse arquivo.

Ele conseguiu identificar, por conta própria, o tipo de codificação desse arquivo, Unicode UTF-8, que permite a leitura de acentos entre outras características do nosso arquivo. Além disso, conseguiu deduzir o delimitador do nosso arquivo CSV que, nesse caso, é a vírgula, mas poderia ser ponto e vírgula ou outros.

Como ele conseguiu fazer isso? Ele usou uma amostra das 200 primeiras linhas para tentar identificar tipos de dados e como eles são separados. Assim, temos uma base que ele já conseguiu ler e não precisamos entrar na etapa de transformação desses dados, o que facilita nosso trabalho. Podemos clicar diretamente na opção "Carregar" para carregar os dados.

Esperamos um tempo para que ele carregue, então aparecerá uma janela informando que o processo foi concluído, indicando o carregamento de 100 linhas.

Antes de explorarmos esses dados, vamos carregar a segunda fonte de dados. Logo, clicamos novamente em "Obter dados" no canto superior e selecionamos novamente a fonte "Texto/CSV". Selecionaremos agora o segundo arquivo, registro_notas_logistica.csv e clicamos em "Abrir".

Novamente, ele fará a amostragem de dados e tomará algumas decisões. Conseguimos observar que está tudo ocorrendo como esperado. Observando a amostra de dados exibida, parece que está tudo certo.

Temos exemplos de número na primeira coluna, sendo a da identificação da fatura. Na terceira coluna, de data de compra, temos a data corretamente formatada,

Ele está conseguindo fazer a leitura correta, usando apenas essa amostra de 200 dados. Portanto, podemos clicar na opção "Carregar" novamente.

Exibindo os dados

Agora que carregamos os dados, eles estão disponíveis no Power BI. Podemos clicar na aba "Exibição de dados" na lateral esquerda da tela. Nesta exibição, conseguimos visualizar todos os dados que carregamos. Vamos conhecer um pouco desses dados com os quais trabalharemos no projeto.

Dados de marketing

Primeiro, o registro_livros_marketing.csv. Que tipo de informação temos aqui?

A nossa primeira coluna é o ID do livro, um identificador único para cada livro. Ou seja, cada livro que vendemos na empresa tem um número único que o representa.

A segunda coluna é o título, o nome desse livro. O primeiro livro que temos aqui chama-se "A Chama do Destino".

As colunas seguintes dão informações sobre esse livro, por exemplo, a que categoria ele pertence? Ele é do tipo fantasia? Livro de ministério? Suspense?

A próxima coluna é o preço unitário e a seguinte é o preço promocional. O time de marketing tinha o preço original do produto (como o primeiro, que custa R$ 45)e a ação de marketing que gerava preço promocional, abaixando o valor do produto para R$ 28.

A próxima coluna é a quantidade de vendas. Quantas vezes esse livro foi vendido neste mês? O primeiro livro foi vendido 10 vezes. A nossa última coluna é a editora, quem publicou esse livro.

ID do livroTítuloCategoriaPreço UnitárioPreço PromocionalQuantidade de VendasEditora
1A Chama do DestinoFantasiaR$ 45R$ 2810Castelo de Camelot
2O Enigma das EstrelasFantasiaR$ 60R$ 3523Alexandria
3O Segredo da Floresta EncantadaFantasiaR$ 55R$ 328Alexandria
.....................

São essas informações que o time de marketing forneceu e eles têm interesse em criar métricas a partir desses números.

Dados de logística

A segunda fonte de dados é os dados do time de logística, que podemos acessar clicando no nome do arquivo em questão na aba "Dados" na lateral direita da tela. Eles têm algumas colunas diferentes.

Temos, por exemplo, o ID da fatura, um identificador único para essa nota que eles estão gerando coletivamente, a nota fiscal.

O segundo é o ID do produto, que relaciona qual produto foi vendido nessa nota. É apenas o número, eles não têm o título do livro, editora, nem nada disso. Essas informações estão na base de dados do time de marketing. Aqui eles apenas têm esse ID e as informações pertinentes ao time de logística: a data da compra na próxima coluna, data da entrega, método de pagamento, o endereço de entrega, a cidade de entrega e o código postal.

ID_FaturaID_ProdutoData_CompraData_EntregaMétodo_PagamentoEndereço_EntregaCidade_EntregaCódigo_Postal
3209/11/2022 20:52:2012/11/2022 20:52:20DinheiroRua Principal, 146São Paulo23099
245024/03/2023 20:52:2002/04/2023 20:52:20DinheiroRua Principal, 393São Paulo30115
289319/12/2022 20:52:2027/12/2022 20:52:20DinheiroRua Principal, 184São Paulo63886
........................

Criando o relacionamento entre os dados

Precisamos criar um relacionamento entre estas duas bases de dados para poder trabalhar com DAX e obter insights. Faremos isso agora.

Na tabela de livros do time de marketing, a primeira coluna que exploramos é o ID. Ela, de maneira única, identifica cada um desses livros.

Na tabela do time de logística, temos a mesma situação: uma coluna chamada "ID_Produto". Esta coluna é que estabelece a relação com o nome dos livros. Não temos essas informações aqui, como nome do livro, categoria. É através desse número que conseguimos localizar qual foi o livro vendido e está relacionado a essa nota.

O Power BI permite que façamos essa conexão. Para isso, vamos clicar na terceira aba da lateral esquerda, chamada "Exibição de Modelo". Clicando nessa opção, ela vai exibir no centro da tela dois blocos: um com o nome da base de dados registro_livros_marketing e o outro é registro_notas_logistica.

Dentro desses blocos, temos o nome de cada uma das colunas. Podemos identificar quais são as colunas que têm um relacionamento e conectar uma à outra, simplesmente arrastando o mouse.

Se examinarmos as colunas de marketing, podemos clicar em "ID" e arrastar até o "ID_Produto" no segundo quadro e soltar. Isso permite que o Power BI crie um relacionamento.

Agora, esses dois retângulos representando cada uma das tabelas possuem uma linha conectando-os. Este é o relacionamento.

Além disso, o Power BI foi capaz de identificar o tipo desse relacionamento. Ele indica que para o marketing, temos o número 1. Temos um número de ID apenas, único, que não se repete. Nós não temos, por exemplo, o ID 1 duas vezes. Foi identificado que eles estão aparecendo de maneira única.

O Power BI também conseguiu identificar outra coisa em relação à outra tabela, de logística. Ela exibe apenas um asterisco, que representa que o número de ID aparece várias vezes. Isso está de acordo com a nossa regra de negócio.

Os livros são únicos. Nós temos apenas um livro da mesma editora, publicado no mesmo ano e com o mesmo título. Isso está ok para a nossa tabela de livros. Mas, na logística, o mesmo livro pode ser vendido diversas vezes. Portanto, o mesmo ID vai aparecer diversas vezes nas notas.

Essa correlação foi corretamente identificada, e agora temos tudo pronto para criar essa visualização de medidas com os dois conjuntos de dados.

Visualização da relação entre os dados

Para isso, clicamos na primeira opção do menu lateral esquerdo da tela, chamada "Exibição de Relatório". É aqui onde conseguimos criar nossas visualizações.

A visualização que queremos trabalhar para começar nossos cálculos é a visualização de tabela. Assim, vamos selecionar a opção com um ícone de tabela na aba "Visualizações > Criar visual" no menu lateral direito.

Essa tabela vai aparecer na nossa tela central do Power BI. Podemos clicar nela e selecionar quais são as colunas que temos interesse de exibir nessa visualização de tabela.

Na lateral direita da tela do Power BI, temos uma aba chamada "Dados". Aqui são feitos os relacionamentos em relação às tabelas que carregamos. Temos as bases de dados de marketing e logística listadas nessa aba.

Temos interesse em visualizar os dados da logística nesse momento. Ao clicar em registro_notas_logistica, todas as colunas dessa base de dados serão exibidas logo abaixo e podemos selecionar quais queremos que apareçam na tabela.

Por exemplo, vamos clicar na caixa de seleção do campo "ID_Fatura", "ID_Produto", "Data_Compra" e "Data_Entrega". Com isso, cria-se uma pequena tabela na nossa área de dados contendo as colunas selecionadas.

Podemos pegar o ícone à direita da tabela e arrastar para ampliá-la, e depois fechar a aba de Filtros à direita para visualizar melhor. Agora temos essa visualização, onde contamos com todos os dados relacionados à logística.

Temos que tomar cuidado, porque o Power BI, às vezes, ajuda quando assume algumas coisas, mas, às vezes, acaba atrapalhando.

Por exemplo, ele somou o valor do ID ao final dos dados, algo que não faz sentido. Para ajustar isso, vamos clicar na aba de Visualizações à direita, depois na seção de Colunas. Depois, clicaremos em "Soma de ID_Fatura", vamos pressionar no ícone da seta para baixo e selecionar a opção "Não resumir", pois não queremos resumir essa informação.

Agora, pronto! Está similar ao que vimos antes. Cada linha é uma fatura.

Outra coisa que queremos corrigir aqui é a data da entrega e a data da compra, que estão separadas por ano, trimestre e dia. Temos interesse na data apenas, sem essas informações adicionais.

Então, clicamos na "Data_Entrega" no menu de Visualizações e desmarcamos a opção de "Hierarquia de datas". O mesmo vale para "Data_Compra". Removemos a série de colunas adicionais criadas anteriormente.

Trazendo informação de outra tabela

Essas são informações que já tínhamos. Agora, como o DAX pode ajudar a trazer informações da tabela de livros para esta que estamos trabalhando?

Para começar, vamos clicar em registro_nota_logística no menu de Dados e criar nossa primeira coluna calculada.

Para isso, clicamos com o botão direito nela e selecionamos "Nova coluna". Após carregar um pouco, surgirá uma aba na parte superior da nossa visualização onde já está inserida a palavra "Coluna" para o nome.

Aqui é onde começamos a escrever o código DAX. Vamos apagar tudo o que foi inserido automaticamente, "Coluna =", e vamos inserir a informação que queremos trazer de outra fonte de dados utilizando o DAX: a categoria dos livros.

Essa informação, que está disponível apenas para o time de marketing, não está acessível para nós, do time de logística. Nós precisaríamos entender, por exemplo, quantas vendas estão acontecendo para uma determinada editora de livros ou para uma categoria de livros específica.

Por exemplo, gostaríamos de saber se estão saindo mais livros de fantasia para a região de São Paulo e menos para outras regiões. Essa análise vamos conseguir realizar utilizando o DAX.

Vamos trazer a informação da categoria. Escreveremos nesse campo de texto na parte superior da visualização: Categoria do livro, que será o nome da nossa coluna. Vamos adicionar um sinal de igual = e começar a usar as funções DAX.

A função DAX que vamos usar é a RELATED(), pois queremos criar uma relação entre as duas tabelas.

Indicaremos que essa função espera como parâmetro o nome da coluna. Qual coluna queremos trazer? Aquela que retornará esse valor relacionado à outra tabela.

Como boa prática, podemos escrever o nome da tabela: será registros_livros_marketing, que é o nome da nossa tabela de marketing. A informação que queremos buscar é a Categoria, então a adicionamos entre colchetes e depois fechamos os parênteses da função:

Categoria do livro = RELATED(registros_livros_marketing[Categoria])

Outra boa prática é pressionar "Shift + Enter" para ir para a próxima linha (sem executar o comando) e escrever um comentário sobre o que esse código está fazendo. Vamos incluir o comentário (com a notação --) indicando que estamos buscando informações de categoria:

Categoria do livro = RELATED(registros_livros_marketing[Categoria])
-- Buscando informação de categoria

Agora podemos apertar "Enter" para executar essa coluna calcula.

Vamos notar que, na aba de Dados, surgiu uma nova coluna com um ícone diferente (um símbolo de uma tabela e uma função) entre as colunas de registro_notas_logística, o que indica que criamos uma coluna calculada. Vamos clicar na caixa de seleção para marcá-la e fazê-la aparecer em nossa visualização.

Pronto! Agora temos uma tabela que contém as informações que estávamos trabalhando, como a ID da fatura e data da entrega, e também essa nova informação da categoria do livro:

ID_FaturaID_ProdutoData_EntregaData_CompraCategoria do livro
17019/02/2023 20:52:2017/02/2023 20:52:20Mitologia e Fantasia
25910/03/2023 20:52:2002/03/2023 20:52:20Épico e Aventura
3212/11/2022 20:52:2009/11/2022 20:52:20Fantasia
...............

As pessoas já familiarizadas com o Power BI sabem que conseguimos trazer essa coluna para a nossa visualização apenas clicando na caixa de seleção de "Categoria" da tabela de marketing. Então, qual é a vantagem de trazermos essa informação através da linguagem DAX?

Podemos mudar para a visualização "Exibição de Dados" na lateral esquerda da tela e veremos que realmente temos uma nova coluna na tabela. Ou seja, coluna não está aparecendo apenas para uma visualização, mas está disponível para ser utilizada para criar métricas, medidas e colunas calculadas com os dados de logística.

Graças à linguagem DAX, conseguimos trazer esse relacionamento e podemos fazer manipulações com eles!

Agora que já realizamos esse procedimento, é crucial entender se os nossos dados estão alinhados, se contam a mesma história sobre a nossa empresa. Esse é o próximo passo que realizaremos utilizando a linguagem DAX.

Funções básicas de tabela - Aplicando nosso primeiro filtro

Em nosso projeto, estamos combinando duas fontes de dados diferentes. Essa informação é fundamental, porque em empresas, sobretudo as de grande porte, é comum que cada equipe defina de modo diferente um mesmo conceito.

Vamos usar como exemplo a "quantidade de produtos vendidos". Para o time de marketing, essa métrica tem critérios específicos: quando uma compra é efetuada no site (por exemplo, na Amazon), uma pessoa clica em "Comprar" e finaliza a compra. Para o time de marketing, essa transação já é considerada concluída.

Analisando os dados do time de marketing, temos a coluna de "Quantidade de vendas". Essa quantidade de vendas é registrada no momento em que ela ocorre no site.

Por exemplo, suponha que foram registradas nove vendas do livro "Chamada do Destino". No momento em que o cliente clica no produto e finaliza a compra, eles atualizam o valor para 10 na tabela. Com isso, passa-se a considerar que o produto teve dez vendas. Essa é a definição para o time de marketing, e seus critérios fazem sentido.

Mas, essa definição é a mesma para o time de logística? Se olharmos para os dados de logística, por exemplo, a venda do produto número dois na fatura três, notaremos que, segundo os critérios dessa equipe, o registro da venda ocorre quando o produto é entregue ao cliente.

Quando a logística recebe o status de que o produto foi entregue, ela atualiza o registro na tabela de notas, constando a data em que ocorreu a entrega. Logo, a partir desse momento, a compra é considerada efetuada pelo time de logística.

Quando um líder solicita essa informação para diferentes setores, ele pode receber informações diferentes. Isso não é um problema, é uma característica que existe em um negócio complexo, como, por exemplo, o da Buscante. Mas para nós, como pessoas analistas de BI, é muito importante entendermos que nossos dados podem ter critérios diferentes.

Precisamos levar isso em consideração para entender se podemos combinar essas informações. Será que as notas de logística estão conversando com os registros de venda do marketing? Vamos fazer essa análise através do DAX.

Retornando para a visualização e exibição de relatórios no Power BI, vamos criar uma nova visualização.

Desceremos um pouco a aba de Visualizações e selecionaremos a opção de criar tabela. Traremos para ela alguns campos interessantes para a nossa análise.

Agora queremos analisar o número de vendas para cada produto. Então, vamos marcar os campos "ID_Produto", "ID_Fatura" (aqui precisamos novamente remover a soma dos valores desse campo clicando em "Soma de ID_Fatura > Não resumir").

Agora temos uma visualização que contém uma linha para cada nota desse produto:

ID_FaturaID_Produto
1281
1320
1429
......

Queremos comparar a quantidade de vendas que o time de marketing registrou contra o time de logística.

A quantidade do time de marketing é fácil de acessar, porque já temos essa informação. Se clicarmos na coluna "Quantidade Vendas" na aba de Dados à direita, teremos acesso à quantidade de vendas conforme o time de marketing na nossa visualização.

Mas, como conseguir essa informação pelo time de logística?

Precisamos olhar para os IDs de fatura, buscar pelo "ID_Produto" e somar quantas dessas vendas são do mesmo produto. Devemos agrupar todas essas informações e somar para saber quantas notas cada produto tem.

Para fazer isso, vamos criar uma nova coluna calculada. Clicamos com o botão direito em registro_notas_logística e selecionaremos a opção "Nova coluna". Novamente, ele vai carregar a barra na parte superior da visualização onde criamos nosso código DAX.

Essa será a primeira expressão DAX que combinaremos mais de uma função. Vamos apagar o conteúdo padrão e dar um nome para essa coluna.

O nome dessa coluna será "Quantidade vendida Logística". Dessa forma, podemos diferenciar a quantidade vendida de acordo com o time de marketing e a quantidade de venda de acordo com o time de logística.

Para começar a escrever a parte do DAX, nosso primeiro passo é utilizar um conceito que você já aprendeu, o conceito de contexto de linha.

Nós precisamos pegar, da linha que essa coluna estiver calculando nesse momento, uma informação do ID. Ou seja, qual é o ID da linha que estamos observando? Se olharmos para a primeira linha, que é o ID do produto é "1", por exemplo, precisamos salvar essa informação.

Então, vamos apertar o "Shift + Enter" para melhor visualização no nosso código e criar uma variável. Para isso, digitaremos VAR, em letras maiúsculas, e depois o nome do local onde quero salvar essa informação de ID que estamos visualizando atualmente.

Esse nome será ID_ATUAL. Para obter essa informação de ID, onde ela está? Ela está na coluna de ID do produto. Então, vamos acessar a tabela registros_notas_logística e acessar a coluna ID_Fatura entre colchetes.

Para o nome da tabela que estamos acessando, sempre colocamos as aspas simples, antes e depois. Depois, abrimos colchetes e colocamos o nome da coluna, resultando em: 'registro_notas_logistica'[ID_Produto].

Quantidade vendida Logística = 
VAR ID_ATUAL = 'registro_notas_logistica'[ID_Produto]

Dessa maneira, graças ao contexto da linha que estamos nesse momento, vamos pegar, por exemplo, esse esse ID "1" quando formos calcular o primeiro valor da nossa coluna calculada.

Agora que sabemos o ID atual, como vamos saber quantas vendas ocorreram? Que outra informação precisamos? Nós precisamos olhar para a tabela de dados de venda e ver todos os IDs que correspondem a esse ID.

Nós queremos fazer um filtro. Ou seja, queremos pegar aquela tabela e filtrar todos os IDs iguais, e salvar isso novamente em uma variável.

Então vamos criar essa variável, TABELA_IDs. Ela receberá uma tabela que só tenha IDs iguais ao da variável ID_ATUAL. Para fazer isso, vamos utilizar a função FILTER().

Essa função recebe como primeiro parâmetro o nome da tabela e como segundo parâmetro o filtro que vai ser aplicado nessa tabela, retornando uma tabela filtrada. Essa é uma função DAX que retorna uma tabela; não apenas um valor ou uma coluna, mas uma tabela inteira.

Para aplicar esse filtro, precisamos referenciar a própria registro_livros_marketing e, depois de uma vírgula, expressar essa comparação entre o ID e o ID que salvamos na variável ID_ATUAL com a coluna da registro_marketing.

Portanto, podemos digitar 'registro_livros_marketing' acessando a coluna [ID]. Toda essa expressão será igual ao ID que estamos buscando: ID_ATUAL:

VAR TABELA_IDS = FILTER('registro_livros_marketing', 'registro_livros_marketing'[ID] = ID_ATUAL)

Vamos revisar: na função FILTER(), passamos primeiro o nome da tabela e depois o filtro que queremos aplicar. Então, queremos olhar nessa tabela e na coluna ID, todos os IDs que forem iguais ao ID salvo, que é o ID_ATUAL.

Após termos a tabela agora só com os dados de interesse, precisamos definir o que queremos retornar para essa linha. Para isso, precisamos digitar o RETURN.

Que valor, no fim das contas, traremos para essa linha? Toda a tabela? Então, digitamos, por exemplo, TABELA_IDS:

Código completo:

Quantidade vendida Logística = 
VAR ID_ATUAL = 'registro_notas_logistica'[ID_Produto]
VAR TABELA_IDS = FILTER('registro_livros_marketing', 'registro_livros_marketing'[ID] = ID_ATUAL)
RETURN
    TABELA_IDS

Apertaremos o "Enter" para ver o que acontece. O Power BI trouxe uma mensagem de alerta:

A expressão faz referência a várias colunas. Não é possível converter várias colunas em um valor escalar.

Aqui, nós temos uma característica importante das colunas calculadas que precisa ser considerada: ela espera receber um valor escalar. Portanto, é necessário aplicar mais uma função nesses dados para obter apenas um valor que será representado naquela linha.

Você pode estar se perguntando: "Qual será esse valor?". Nós temos uma tabela com todas as vendas que ocorreram. O que queremos fazer com ela? Contar. Desta forma, vamos utilizar a função COUNTROWS() no retorno dessa função.

Agora temos uma tabela com todas as linhas de vendas que ocorreram e queremos contar cada uma delas. Portanto, COUNTROWS() recebe a nossa variável TABELA_IDS:

Quantidade vendida Logística = 
VAR ID_ATUAL = 'registro_notas_logistica'[ID_Produto]
VAR TABELA_IDS = FILTER('registro_livros_marketing', 'registro_livros_marketing'[ID] = ID_ATUAL)
RETURN
    COUNTROWS(TABELA_IDS)

Agora, sim, estaremos retornando um valor escalar, um valor único para essa linha. Apertaremos "Enter" e o Power BI calculará para nós.

Agora podemos ver, no canto inferior direito da tela, assim como quando criamos a categoria do livro, que no registro_notas_logistica temos uma nova coluna: "Quantidade vendida Logística". Vamos trazer essa informação para a visualização, marcando sua checkbox.

Ele trouxe o valor "1", que não condiz com o valor ao lado:

ID_FaturaID_ProdutoQuantidade VendasSoma de Quantidade vendida Logística
1281101
1320101
1429101
......

Temos a quantidade de vendas de acordo com o time de marketing, e o de logística está indicando apenas uma venda por cada produto? Esta informação está incorreta. Vamos verificar se são os dados que estão inconsistentes ou se foi algum erro na nossa função.

Clicando na nossa função, ele abrirá aquela janela novamente com a nossa coluna calculada usando o DAX e faremos uma revisão.

Primeiramente, observamos a logística e salvamos o ID atual. Em seguida, buscamos salvar a "TABELA_IDS". Estamos observando a tabela registro_livros_marketing, isso não faz sentido, porque queremos comparar a da logística. Podemos corrigir esse código.

Em vez de aplicar na coluna os dados de marketing, que já temos essa informação de quantidade de vendas nela, queremos aplicar os dados da logística. Substituiremos os nomes das tabelas em toda a nossa função.

Ele até sinaliza um erro falando que a primeira coluna era a logística, e não temos permissão para acessar uma coluna de marketing. Então, o nome da coluna não será mais ID, mas ID_Produto, como está na tabela de logística:

Quantidade vendida Logística = 
VAR ID_ATUAL = 'registro_notas_logistica'[ID_Produto]
VAR TABELA_IDS = FILTER('registro_notas_logistica', 'registro_notas_logistica'[ID_Produto] = ID_ATUAL)
RETURN
    COUNTROWS(TABELA_IDS)

Podemos rodar novamente esse código para ver o que acontece. Agora temos números iguais!

ID_FaturaID_ProdutoQuantidade VendasSoma de Quantidade vendida Logística
12811010
13201010
14291010
......

A quantidade de vendas para o produto "1" foi de 10. A visualização está repetindo muitas vezes o mesmo produto, mas nós podemos diminuir essa visualização.

Clicamos na tabela e tiramos o "ID_Fatura". Agora a visualização vai exibir os campos "ID_Produto", "Quantidade Vendas" e "Soma de Quantidade vendida Logística". Ele somou novamente no último campo, então clicamos nele na aba de Visualizações e selecionamos "Não resumir".

Agora sim, temos uma visualização para cada livro. O livro número 1, de acordo com o time de marketing, vendeu 10. E de acordo com o time de logística, vendeu 10 também:

ID_ProdutoQuantidade VendasSoma de Quantidade vendida Logística
11010
22323
388
...

Com isso, conseguimos combinar as funções do DAX para criar um resultado de verificação!

Nós estamos verificando se os dois times estão tratando a mesma informação e confirmamos que a quantidade de vendas para o time de marketing e da logística estão corretas.

Isso permitirá que nós criemos nossas métricas. A primeira métrica que podemos explorar é o total de faturamento de acordo com o time de logística. Combinaremos a informação, por exemplo, de preço de venda do time de marketing vezes a quantidade informada pelo time de logística.

Este é nosso próximo passo!

Sobre o curso Power BI: aprofundando na linguagem DAX

O curso Power BI: aprofundando na linguagem DAX possui 104 minutos de vídeos, em um total de 46 atividades. Gostou? Conheça nossos outros cursos de Business Intelligence em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Business Intelligence acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas