(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

PL-300: como optimizar modelos com medidas calculadas em DAX (contexto de linha)

João Barros 25 de August de 2026 4 min de leitura

Vou ensinar a competência de trabalhar com o contexto de linha em DAX para criar medidas calculadas no Power BI. Esta competência é importante no exame PL-300 porque medidas DAX bem construídas determinam resultados correctos e bom desempenho; na prática, dominá‑la evita erros lógicos e cálculos lentos em relatórios.

O que precisas de saber

O conceito central é o contexto de linha (row context) e como ele difere do contexto de filtro (filter context). O contexto de linha aplica‑se quando uma expressão DAX é avaliada para uma linha específica — por exemplo, dentro de uma coluna calculada ou quando usamos funções iteradoras como SUMX. Já o contexto de filtro provém dos filtros aplicados ao relatório (slicers, selecções, relações) e é o que normalmente afecta medidas.

Exemplo simples: numa tabela Vendas com colunas Quantidade e PreçoUnit, calcular o total por linha (linha a linha) é:

Vendas[ValorLinha] = Vendas[Quantidade] * Vendas[PreçoUnit]

Isto é uma coluna calculada: cada linha tem o seu contexto de linha. Mas se quisermos somar todas as linhas para obter o total de vendas num cartão, usamos uma medida que respeita o contexto de filtro:

Total Vendas = SUMX(Vendas, Vendas[Quantidade] * Vendas[PreçoUnit])

Aqui, SUMX cria um contexto de linha interno para avaliar a expressão por cada linha, e depois agrega considerando o contexto de filtro externo (por exemplo, um período ou produto seleccionado).

Como funciona (passo‑a‑passo)

1) Identifica se precisas de uma coluna calculada ou de uma medida.

  • Coluna calculada: fixa por linha e armazenada no modelo; útil para categorias ou chaves derivadas.
  • Medida: recalculada conforme os filtros; ideal para agregações e para evitar aumentar o tamanho do modelo.

2) Quando escreveres expressões que operam por linha, usa funções iteradoras (por exemplo, SUMX, AVERAGEX, FILTER com iteração).

Lucro Total = SUMX(Vendas, (Vendas[PreçoUnit] - Vendas[CustoUnit]) * Vendas[Quantidade])

3) Lembra‑te das implicações do contexto de filtro: uma medida avaliada num cartão reflecte todos os filtros aplicados. Se precisares de ignorar filtros, usa ALL ou similar com cuidado.

Vendas Sem Filtro = CALCULATE([Total Vendas], ALL(Produto))

4) Para combinar contexto de linha e filtro, usa CALCULATE para alterar o contexto de filtro e funções iteradoras para a lógica por linha.

Margem Média Ponderada = DIVIDE(
    SUMX(Vendas, (Vendas[PreçoUnit] - Vendas[CustoUnit]) * Vendas[Quantidade]),
    SUM(Vendas[Quantidade])
)

5) Depura medidas com RETURN e variáveis (VAR) para tornar a lógica clara e mais eficiente.

ExemploDebug = 
VAR Numerador = SUMX(Vendas, ...)
VAR Denominador = SUM(Vendas[Quantidade])
RETURN DIVIDE(Numerador, Denominador)

Na prática: um mini‑lab

Passos práticos que deves executar no Power BI Desktop:

  1. Carrega uma tabela de vendas com Data, Produto, Quantidade, PreçoUnit, CustoUnit.
  2. Cria uma medida Total Vendas usando SUMX (como acima).
  3. Cria um cartão e verifica o resultado com o filtro de datas e por produto — observa como o contexto de filtro altera o resultado.
  4. Cria uma medida que calcula a margem por linha e depois agrega com SUMX; compara com alternativas que usam colunas calculadas para ver o impacto no tamanho do modelo.
  5. Usa VAR para dividir a lógica e testa com uma matriz que mostra detalhe por produto.

Erros comuns

  • Confundir coluna calculada com medida: usar colunas calculadas para somas dinâmicas leva a modelos maiores e a resultados estáticos quando pretendes dinamismo.
  • Usar funções agregadas dentro de um iterador sem entender o contexto: por exemplo, chamar SUM(Vendas[Quantidade]) dentro de SUMX pode produzir resultados errados porque mistura contextos.
  • Ignorar a necessidade de CALCULATE para alterar o contexto de filtro: tentar forçar filtros com lógica manual pode dar números incoerentes.

Como praticar

Pratica com os laboratórios do Power BI Desktop e compara alternativas (coluna vs medida; iterador vs agregação simples). Para preparação do exame, usa o Practice Assessment OFICIAL da Microsoft (é gratuito) e consulta a study guide oficial da certificação PL-300 (também gratuita). Estes recursos oficiais ajudam‑te a ver quais as competências medidas e a testar o conhecimento sem recorrer a materiais proibidos.

Em resumo

  • Contexto de linha existe em colunas calculadas e em funções iteradoras; contexto de filtro vem do relatório e das funções CALCULATE/ALL.
  • Prefere medidas com iteradores para agregações dinâmicas e usa VAR para clareza e desempenho.
  • Evita colunas calculadas desnecessárias para não inflar o modelo e para manter os cálculos responsivos a filtros.
  • Pratica com exemplos reais e usa os recursos oficiais da Microsoft para avaliar a tua preparação.