Power BI: contexto de linha e de filtro

Power BI: contexto de linha e de filtro
Igor Nascimento Alves, David Neves
Igor Nascimento Alves, David Neves

Compartilhe

Imagine ser capaz de criar medidas no Power BI que não apenas forneçam resultados precisos, como também se adaptem automaticamente às diferentes perspectivas de análise. Ao dominar os contextos de linha e de filtro na linguagem DAX, você desbloqueia para si esse nível de poder analítico.

Durante o processo de criação de um dashboard no Power BI, temos a necessidade de realizar alguns cálculos para a obtenção de métricas relevantes: as medidas, que são cálculos agregadores calculados através da linguagem DAX. Porém, é comum cometer alguns erros de lógica durante o desenvolvimento de uma medida devido à falta de compreensão de dois conceitos fundamentais que a linguagem carrega: os contextos de linha e de filtro.

Neste artigo, vamos explorar essa compreensão que pode transformar a maneira como você cria seus painéis e, consequentemente, te levar a um novo patamar na sua capacidade analítica.

Colunas calculadas e medidas

Criar medidas e colunas calculadas em DAX sem entender completamente o contexto de filtro e linha pode levar a resultados imprecisos ou inesperados. O DAX é uma linguagem poderosa, porém complexa, usada principalmente no Power BI e no Excel para calcular valores em tabelas ou matrizes de dados. Compreender o contexto de filtro e linha é fundamental para entender como o DAX calcula valores em uma fórmula.

Para ilustrar isso com um exemplo prático, considere um departamento de Recursos Humanos de uma empresa. Imagine que você está usando o Power BI para calcular a média de dias de atraso de colaboradores em suas entregas de relatórios mensais. Sem compreender o contexto de filtro e linha, você pode calcular valores que não fazem sentido no contexto geral dos dados, incluindo valores de datas em que os funcionários estavam de férias ou ausentes por motivos diversos.

Dominar os contextos de linha e filtro é essencial para garantir que seus cálculos sejam precisos e reflitam adequadamente o desempenho real, pois caso contrário, pode levar a resultados incorretos que não representam com precisão os insights que você deseja extrair.

Além disso, quando surgem problemas ou erros em suas fórmulas DAX, é difícil depurar e encontrar a causa raiz se você não tiver um entendimento claro do contexto em que a fórmula está operando. Isso pode tornar a solução de problemas demorada e frustrante.

Para evitar esses problemas e dificuldades, é essencial investir tempo e dedicação para a compreensão do contexto de filtro e linha em DAX. Isso envolve aprender sobre funções como FILTER, ALL, SUMX e outras que afetam o contexto de cálculo. Além disso, é útil praticar a criação de medidas e colunas calculadas em cenários reais para adquirir experiência e habilidade na aplicação eficaz do DAX em seus projetos de análise de dados.

Contexto de linha

O contexto de linha acontece quando em cada linha de uma coluna é realizado um cálculo. O problema é que as medidas são elaboradas baseando-se em uma coluna e não em uma linha específica dessa coluna. Com isso, existem duas formas de atingir o contexto de linhas.

A mais comum, é a adição de uma coluna calculada, que calcula cada linha retornando o valor do resultado, como se pode observar na imagem a seguir:

Captura de tela de uma coluna calculada no Power BI. Na parte superior temos a  expressão DAX Total = produtos[Qtd.]*produtos[Valor]. Abaixo temos uma tabela com 6 colunas (ID, Produto, Categoria, Qtd., Valor e Total. A coluna calculada está em destaque e é a Total, onde temos diferentes resultado para cada linha.

A outra forma é através das funções iteradoras, que têm a capacidade de iterar cada linha da tabela, realizando uma operação antes mesmo de efetivamente calcular uma soma ou média, por exemplo.

Captura de tela de uma mensagem descrevendo o uso da função SUMX no Power BI.
Captura de tela de uma soma de função interativa.

Nota-se que a soma dos valores da coluna calculada é igual ao resultado da função SUMX( ), ou seja, dependendo do caso, não é necessária a adição de uma coluna para a realização da soma dos valores da mesma.

Captura de tela da soma coluna calculada e da soma função iterativa, da esquerda para a direita, respectivamente.

É importante saber que o contexto de linha não influenciará os relacionamentos entre tabelas. Caso seja necessário, utilize as funções RELATED( ), para acessar a linha de uma tabela, e RELATEDTABLE( ), para iterar as linhas da tabela relacionada.

Contexto de filtro

O contexto de filtro varia de acordo com o filtro aplicado em uma das tabelas, ou seja, o cálculo agregado é aplicado logo após a realização do filtro. Um exemplo é a função SUM( ) aplicada à coluna Total, disponibilizada na imagem seguinte:

Captura de tela do total sem filtro aplicado na tabela. Temos no lado esquerdo um cartão com o valor 373,38 com a legenda “Total sem filtro”. Do lado direito temos o filtro de Categorias, representado por 3 retângulos cada um com uma categoria, sendo elas Bebidas, Limpeza e Frios.
Captura de tela , semelhante a anterior, onde temos o total com filtro aplicado na tabela. À esquerda, temos um cartão com o valor 69,77 com a legenda “Total com filtro”. À direita, temos o filtro de Categorias representado por 3 retângulos, cada um com uma categoria, sendo elas: Bebidas, Limpeza e Frio. O retângulo Bebidas é a opção selecionada. Banner da promoção da black friday, com os dizeres: A Black Friday Alura está chegando. Faça parte da Lista VIP, receba o maior desconto do ano em primeira mão e garanta bônus exclusivos. Quero ser VIP

Diferenças-chave:

As principais diferenças entre o contexto de linha e o contexto de filtro são:

  • Escopo: O contexto de linha opera em nível de linha, aplicando fórmulas a cada linha de dados individualmente, enquanto o contexto de filtro opera em um escopo mais amplo, considerando as restrições ou filtros aplicados às colunas ou tabelas.
  • Criação: O contexto de linha é criado implicitamente à medida que você navega pelos dados, enquanto o contexto de filtro é criado quando você aplica filtros diretamente às colunas ou tabelas.
  • Interseção: Em situações complexas, ambos os contextos podem coexistir e interagir. O contexto mais específico (de linha) geralmente prevalece sobre o contexto de filtro mais amplo.
  • Aplicação: O contexto de linha é ideal para cálculos que precisam ser realizados linha por linha, como cálculos de preço unitário ou margem de lucro por produto. O contexto de filtro é mais útil para análises agregadas, como totais, médias e contagens com base em critérios específicos.

Compreender e reconhecer essas diferenças é fundamental para criar fórmulas DAX eficazes e precisas no Power BI, pois ajuda a determinar qual contexto é mais apropriado para uma análise específica e evita erros de interpretação de dados.

Conclusão

Compreendendo esses conceitos e os colocando em prática, você pode se aprofundar ainda mais na linguagem DAX, o que facilita o desenvolvimento de fórmulas mais complexas. Esse conhecimento lhe proporciona a habilidade de explorar uma variedade de aplicações e desafios no campo da análise de dados. À medida que você for dominando as nuances da linguagem DAX, será uma pessoa cada vez mais preparada para enfrentar tarefas analíticas cada vez mais sofisticadas.

Gostou deste artigo e quer conhecer ainda mais essa ferramenta e suas linguagens? A Formação de Power BI da Alura foi feita para você! Aqui, nós te ajudaremos em todos os passos dos processos até a criação de dashboards dinâmicos.


Créditos

Igor Nascimento Alves
Igor Nascimento Alves

Sou graduado em Ciência da Computação. Atuo como instrutor de Data Science e Machine Learning no Grupo Alura, tendo como principais interesses na tecnologia: criação de modelos e análise de dados. Nas horas vagas assisto e analiso dados de basquete e adoro ouvir podcasts de humor como Nerdcast e Jujubacast.

David Neves
David Neves

Com uma trajetória versátil que percorre front-end, back-end e infraestrutura, descobri minha paixão por desvendar o potencial dos dados. Hoje, como um especialista em Business Intelligence, com foco no Power BI, encontro minha motivação na disseminação de conhecimento de alta qualidade.

Veja outros artigos sobre Data Science