Compreendendo o Contexto de Linha e Filtro
Deslize para mostrar o menu
Cada cálculo DAX é executado dentro de um contexto — uma definição de quais linhas são relevantes no momento da avaliação. Sem compreender o contexto, é impossível prever o que uma medida irá retornar ou diagnosticar por que ela retorna um valor incorreto.
Contexto de Linha
Contexto de linha é o contexto que existe dentro de uma coluna calculada. Quando o Power Pivot avalia uma coluna calculada, ele processa cada linha individualmente — o DAX sabe exatamente em qual linha está e utiliza apenas os valores dessa linha no cálculo.
O que é isso? A percepção da linha atual. A fórmula pode referenciar qualquer coluna na mesma tabela e receber o valor para aquela linha específica — não uma soma ou média, mas o valor exato da célula.
Contexto de linha não existe para medidas. Quando uma medida é avaliada, não há linha atual — apenas um conjunto de filtros ativos. Por isso, escrever um rótulo em nível de linha como uma medida gera um erro: a medida não possui uma linha para avaliar.
Contexto de Filtro
Contexto de filtro é o contexto que existe quando uma medida é avaliada. É o conjunto completo de filtros ativos no modelo de dados no momento em que a medida é calculada — determinado por tudo o que a tabela dinâmica conhece sobre aquela célula específica.
Cada célula em uma tabela dinâmica possui sua própria combinação única de filtros ativos.
Uma célula em branco não indica um erro — significa que o contexto de filtro para aquela célula retorna zero linhas correspondentes. Com a combinação atual de filtros ativos, simplesmente não há dados.
As Quatro Fontes de Contexto de Filtro
O contexto de filtro se acumula a partir de quatro fontes independentes simultaneamente. Cada uma restringe ainda mais o conjunto de dados:
- Rótulos de linha: cada valor na área de linhas aplica um filtro à sua linha. Region = North e Region = South criam contextos de filtro diferentes — cada célula na linha North vê apenas as vendas do North;
- Rótulos de coluna: cada valor na área de colunas adiciona uma segunda dimensão de filtro. Combinado com os rótulos de linha, cada célula agora está na interseção de dois filtros independentes;
- Segmentações: uma seleção em uma segmentação aplica seu filtro a todas as células da tabela dinâmica simultaneamente. Selecionar January em uma segmentação de mês restringe todas as células aos dados de January, independentemente de sua posição em linha ou coluna;
- Filtros da tabela dinâmica: filtros aplicados diretamente na área de filtro da tabela dinâmica também contribuem para o contexto de filtro de cada célula, acumulando-se sobre quaisquer filtros de linha, coluna e segmentação já ativos.
Tarefa
Etapa 1 — Experimento de contexto de linha
-
Abrir o workbook. Ir para Power Pivot → Gerenciar → Exibição de Dados → aba Sales.
-
Observar a coluna calculada Order Size. Ela contém Large ou Small para cada linha, com base no valor de Quantity daquela linha.
-
Agora adicione uma segunda coluna calculada à tabela Sales usando a seguinte fórmula:
= Sales[Quantity] * Sales[UnitPrice]
-
Renomeie para
Row Revenue. -
Percorra a coluna e confirme que cada linha mostra um valor diferente, ou seja, o produto do Quantity e do UnitPrice daquela linha específica.
Etapa 2 — Em seguida, responda às seguintes perguntas
- Que tipo de contexto está sendo utilizado quando o DAX avalia Row Revenue para cada linha?
- Row Revenue é igual à coluna Total já existente na tabela Sales?
- Faria sentido criar Row Revenue como uma medida em vez de uma coluna calculada?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo