Entendendo Row Context e Filter Context no Power BI
Com a crescente adoção do Power BI como solução de Data Visualization nas organizações, temos encontrado os mais variados perfis de usuários construindo relatórios e obtendo insights por meio desta ferramenta.
Isso é um ótimo indicador de que as empresas estão obtendo sucesso na adoção do Self-Service BI e que a solução escolhida está atendendo aos requisitos propostos. Porém, ao mesmo tempo que essa estratégia democratiza o acesso à informação, ela exige que os usuários estejam cada vez mais preparados em relação aos recursos e possibilidades que a ferramenta disponibiliza.
Quando começamos a avançar na utilização do Power BI, nos deparamos com o DAX (Data Analysis Expressions), que é a linguagem para acesso e manipulação de dados utilizada em ferramentas como o Power BI, Power Pivot, Analysis Services, entre outras. O DAX permite a construção de tabelas e campos calculados, além dos mais diversos tipos de medidas.
Falando sobre campo calculado e medida, algumas dúvidas recorrentes entre os usuários são sobre Row Context e Filter Context. Vamos falar um pouco sobre isso.
Row Context
Quando falamos de Row Context, estamos nos referindo a tudo que é calculado “horizontalmente” no Power BI, ou seja, a tudo que é gerado utilizando apenas os valores da MESMA linha onde o cálculo está sendo criado.
No exemplo acima, realizamos a criação de uma coluna calculada. Perceba que a nova coluna foi criada multiplicando os valores das colunas de Quantidade e Valor, e o resultado está restrito a cada produto, não sendo aplicado nenhum filtro e tampouco alteração do contexto (linha).
Outra forma de trabalharmos com Row Context é utilizar funções DAX de iteração linha a linha. No exemplo acima, utilizamos a função SUMX() que, diferentemente da SUM(), realiza a soma de uma expressão fornecida (Quantidade * Valor) para cada linha e, após isso, soma os valores obtidos. Essa expressão produzirá o mesmo resultado do campo calculado anteriormente: a multiplicação dos valores linha a linha.
Outros exemplos de funções de iteração linha a linha são SUMX, MINX, MAXX, AVERAGEX e FILTER.
Sendo assim, Row Context (ou Contexto de Linha) é a forma mais simples e cotidiana de trabalharmos com o Power BI e PowerPivot, muito por conta da proximidade no conceito com as planilhas Excel que utilizamos no dia a dia.
Filter Context
Outra forma de calcularmos valores no Power BI é por meio das medidas: agregações de conjuntos (colunas) de dados obtidos através do DAX.
Nessas agregações, alteramos o contexto de linha para coluna, ou seja, passamos a considerar os valores das colunas na hora de realizarmos o cálculo. Nesse contexto, também temos que considerar os filtros que estão sendo aplicados no relatório e nas expressões.
São justamente os filtros aplicados no relatório e na expressão DAX criada que definem o contexto da medida, por exemplo:
Ainda no exemplo anterior, vamos considerar a necessidade de obter somente o Valor Total para o Produto C (tabela acima). Conseguimos isso através da expressão abaixo:
Perceba que, diferentemente da função FILTER (que só retornaria o Total Medida caso a linha em questão fosse a do Produto C), quando incluímos a nova coluna “Total Produto C” na tabela, o valor apresentado será sempre o filtrado na expressão, independente da linha em que estamos:
Todo e qualquer filtro que está sendo aplicado, seja via objeto no relatório ou via expressão DAX, afetará o cálculo da medida e, por esse motivo, devemos sempre nos atentar em qual contexto estamos trabalhando. Na imagem acima, o exemplo com FILTER restringirá o cálculo da medida somente para a linha filtrada. Já o primeiro exemplo retornará o valor desejado para a medida, não importando a linha em que estamos.
Conclusão
Row Context e Filter Context são dois dos conceitos mais básicos do Power BI, porém conseguem ser, ao mesmo tempo, dois dos mais importantes da ferramenta. Seu entendimento é fundamental para o uso correto e produtivo de funções mais avançadas.
Muitos problemas encontrados no dia a dia se devem ao não entendimento desse conceito e poderiam ser mitigados com simples ajustes na modelagem/expressão.
E aí, também ficou empolgado com o potencial do Power BI para os desafios da sua TI?
Entre em contato com a Iteris e saiba como podemos ajudar a elevar o desempenho de suas aplicações.