(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Grupos de cálculo no Power BI: menos medidas repetidas
Power BI

Grupos de cálculo no Power BI: menos medidas repetidas

João Barros 05/07/2026 7 min

Se já construiu um modelo no Power BI com alguma dimensão, conhece o problema: começa com uma medida de Vendas, depois precisa da versão acumulada no ano, da comparação com o período anterior, do crescimento percentual... e, sem dar por isso, tem quarenta medidas que são quase todas a mesma fórmula com um pequeno embrulho de time intelligence à volta.

Essa "explosão de medidas" é um dos maiores travões à manutenção de um modelo. Cada nova métrica de negócio multiplica-se por cada variação temporal, e qualquer correção obriga a repetir a mesma alteração em dezenas de sítios. Os grupos de cálculo (calculation groups) existem precisamente para resolver isto: permitem escrever a lógica de transformação uma só vez e aplicá-la a qualquer medida.

Neste guia explicamos o que são, o problema concreto que resolvem, como funcionam por dentro, como criá-los passo a passo e que armadilhas evitar. Os exemplos usam DAX e assumem um modelo com uma tabela de datas — o cenário mais comum onde os grupos de cálculo brilham.

O que são grupos de cálculo

Um grupo de cálculo é um objeto do modelo que contém um conjunto de itens de cálculo. Cada item é uma transformação reutilizável, escrita em DAX, que se aplica à medida que estiver a ser avaliada no visual. Em vez de criar Vendas YTD, Margem YTD, Unidades YTD, cria um único item "YTD" e ele passa a funcionar com qualquer uma dessas medidas.

Grupos de cálculo no Power BI: menos medidas repetidas

Na prática, o grupo de cálculo aparece como uma tabela com uma coluna (por exemplo, "Cálculo Temporal") cujos valores são os itens ("Atual", "YTD", "Período anterior", "Variação %"). O utilizador arrasta essa coluna para um segmentador ou para as colunas de uma matriz e passa a alternar a lógica sem que existam medidas físicas para cada combinação.

O problema que resolvem: a explosão de medidas

Imagine cinco métricas de base (vendas, margem, unidades, clientes, ticket médio) e seis variações temporais (atual, YTD, MTD, período homólogo, variação absoluta, variação percentual). Sem grupos de cálculo, isto são trinta medidas — e cada uma repete a mesma estrutura de CALCULATE com um filtro temporal diferente.

O custo não é só escrever trinta medidas. É mantê-las: mudar a definição de "vendas líquidas" implica tocar em seis medidas; adicionar uma sétima variação temporal implica criar mais cinco. Com um grupo de cálculo, tem cinco medidas de base e seis itens de cálculo — onze objetos em vez de trinta — e cada mudança acontece num único lugar.

Como funcionam por dentro: SELECTEDMEASURE()

A peça central é a função SELECTEDMEASURE(). Dentro de um item de cálculo, ela representa "a medida que estiver em contexto" — seja Vendas, Margem ou outra qualquer. O item define o que fazer com essa medida, sem saber qual é.

Um item "YTD" escreve-se assim:

  • CALCULATE( SELECTEDMEASURE(), DATESYTD( 'Calendário'[Data] ) )

Quando o utilizador coloca a medida Vendas num visual e seleciona o item "YTD", o motor substitui SELECTEDMEASURE() por Vendas e avalia o acumulado do ano. A mesma expressão serve para Margem ou Unidades. Escreveu a lógica uma vez; aplica-se a todas.

Como criar um grupo de cálculo, passo a passo

Há duas formas de criar grupos de cálculo. A mais direta hoje é dentro do próprio Power BI Desktop: na vista de Modelo, a partir das versões de 2024, existe o botão Grupo de cálculo no friso; ao criá-lo, adiciona itens e escreve o DAX de cada um. A alternativa clássica, usada há anos em contextos empresariais, é o Tabular Editor, uma ferramenta externa que continua a ser a preferida para modelos grandes.

Independentemente da ferramenta, o fluxo é o mesmo: criar o grupo, dar-lhe um nome de coluna claro, adicionar cada item de cálculo com a sua expressão em DAX, definir a ordem (ordinal) em que aparecem e, se necessário, o texto de formatação. Antes de começar, garanta que o modelo tem uma tabela de datas marcada como tal — os itens de time intelligence dependem dela.

Exemplo prático: um seletor temporal completo

Suponha que quer um único segmentador que troque entre valor atual, acumulado do ano e comparação homóloga. Cria um grupo "Cálculo Temporal" com estes itens:

  • Atual: SELECTEDMEASURE()
  • YTD: CALCULATE( SELECTEDMEASURE(), DATESYTD( 'Calendário'[Data] ) )
  • Homólogo: CALCULATE( SELECTEDMEASURE(), SAMEPERIODLASTYEAR( 'Calendário'[Data] ) )
  • Variação %: DIVIDE( SELECTEDMEASURE() - CALCULATE( SELECTEDMEASURE(), SAMEPERIODLASTYEAR( 'Calendário'[Data] ) ), CALCULATE( SELECTEDMEASURE(), SAMEPERIODLASTYEAR( 'Calendário'[Data] ) ) )

Com estes quatro itens, qualquer medida do modelo ganha instantaneamente quatro perspetivas temporais. Um relatório inteiro passa a depender de meia dúzia de medidas de base em vez de uma floresta de variantes.

Format strings dinâmicos

Um detalhe que faz diferença: cada item de cálculo pode definir o seu próprio formato. O item "Variação %" deve mostrar-se como percentagem, enquanto "Atual" mostra euros. Nos grupos de cálculo, define uma expressão de formato por item (por exemplo, "0.0%" para a variação), e o número aparece corretamente formatado sem medidas adicionais. Sem isto, uma percentagem apareceria como um valor monetário e confundiria a leitura.

Precedência quando há vários grupos

Pode ter mais do que um grupo de cálculo — por exemplo, um para tempo e outro para moeda ou para tipo de valor. Quando dois grupos se aplicam à mesma medida, a ordem importa: aplicar primeiro a conversão de moeda e depois o acumulado do ano dá um resultado diferente da ordem inversa. Essa ordem é controlada pela precedência de cada grupo, um número que define quem é avaliado primeiro. Definir a precedência de forma consciente evita resultados difíceis de explicar.

Erros comuns e boas práticas

O primeiro erro é misturar medidas implícitas com grupos de cálculo. Um grupo só transforma medidas explícitas; se o utilizador arrastar um campo numérico e deixar o Power BI somar automaticamente, o item de cálculo não se aplica de forma fiável. A boa prática é desativar as agregações implícitas e trabalhar sempre com medidas nomeadas.

Outros pontos a vigiar:

  • Dar nomes claros aos itens — o utilizador vê-os num segmentador, não são só código.
  • Definir a ordem (ordinal) para que "Atual" apareça antes de "YTD", e não por ordem alfabética.
  • Testar com várias medidas, não só com aquela em que pensou ao escrever o item.
  • Documentar a precedência quando há mais de um grupo, para quem vier a seguir.

Mini-caso: de 60 medidas a 12

Uma empresa de serviços mantinha um modelo com cerca de sessenta medidas, quase todas variações temporais de seis indicadores. Cada fecho mensal trazia o mesmo ritual: alguém pedia "o mesmo, mas para outra métrica" e nasciam mais seis medidas. O ficheiro estava lento de manter e ninguém tinha a certeza de que todas as variantes usavam a mesma lógica.

A equipa reescreveu o modelo com dois grupos de cálculo — um temporal, com seis itens, e um de formato de valor. As sessenta medidas passaram a doze de base. O tempo para adicionar uma nova métrica caiu de "meia manhã a copiar e colar" para "escrever uma medida"; e, porque a lógica temporal vivia num único sítio, desapareceram as inconsistências entre variantes. Não houve nova tecnologia envolvida — apenas o objeto certo para o problema certo.

Na prática

Se o seu modelo tem famílias de medidas que só diferem numa transformação repetida — tempo, moeda, tipo de valor — os grupos de cálculo são quase sempre a resposta. Comece pequeno: um grupo temporal com três ou quatro itens, testado com duas ou três medidas de base. Ganhe confiança com SELECTEDMEASURE(), cuide dos formatos e da ordem, e só depois avance para vários grupos e precedências. O objetivo não é ter menos medidas por vaidade — é ter um modelo onde uma mudança se faz num sítio e vale para tudo.

← Voltar aos insights
Vamos conversar?

Pronto para transformar os seus dados?

Marque uma reunião gratuita de 30 minutos e descubra como podemos ajudar a sua equipa a tomar melhores decisões.

Agendar Reunião Gratuita
bConcepts