Cálculos visuais

Aplica-se a:✅ Power BI Desktop e serviço Power BI

Um cálculo visual é um cálculo DAX que define e executa diretamente num visual, em vez de o adicionar ao modelo semântico. Como um cálculo visual trabalha com os dados já apresentados no visual, pode expressar cálculos empresariais comuns – como totais em movimento, médias móveis e comparações período a período – sem navegar pelo contexto do filtro ou pelas relações do modelo. O resultado é geralmente um DAX mais curto, mais fácil de manter e que muitas vezes tem um desempenho melhor do que uma medida equivalente.

Este artigo explica o que são os cálculos visuais, como se comportam na matriz visual, como funcionam os parâmetros que os controlam e como diferem das medidas e colunas calculadas, para que possa decidir quando um cálculo visual é a escolha certa.

Aqui está um exemplo de cálculo visual que define uma soma em execução para o Valor de Vendas. O DAX necessário é simples:

Running sum = RUNNINGSUM([Sales Amount])

Captura de ecrã do DAX para cálculos visuais.

Um cálculo pode referir-se a quaisquer dados no visual, incluindo colunas, medidas ou outros cálculos visuais. Essa capacidade remove a complexidade do modelo semântico e simplifica o processo de escrever DAX. Você pode usar cálculos visuais para concluir cálculos comerciais comuns, como somas em execução ou médias móveis.

Os cálculos visuais diferem das outras opções de cálculo no DAX:

  • Os cálculos visuais não são armazenados no modelo. Em vez disso, armazena-os no elemento visual. Esta limitação significa que os cálculos visuais só podem referir-se ao que está no vídeo. Tem de adicionar um elemento do modelo no visual antes de o cálculo visual lhe poder fazer referência. Esta restrição liberta os cálculos visuais de se preocuparem com a complexidade do contexto do filtro e do modelo.
  • Os cálculos visuais combinam a simplicidade do contexto das colunas calculadas com a flexibilidade de cálculo sob demanda das medidas.
  • Comparando com as medidas, os cálculos visuais operam com dados agregados em vez do nível de detalhe, o que frequentemente conduz a benefícios de desempenho. Quando um cálculo pode ser realizado através de uma nova medida ou de um cálculo visual, este último conduz frequentemente a um melhor desempenho.
  • Como os cálculos visuais fazem parte do visual, eles podem se referir à estrutura visual, o que leva a mais flexibilidade.

Para uma comparação mais aprofundada das formas de adicionar cálculos no Power BI, consulte Usar opções de cálculos no Power BI Desktop.

Os visuais de tabela e matriz também disponibilizam cálculos visuais através da funcionalidade de totais personalizados, que lhe permite alterar o que a linha de total apresenta sem escrever DAX. Para mais informações, consulte os artigos visuais da tabela e da matriz .

Para aprender a adicionar ou editar um cálculo visual, veja Criar cálculos visuais.

Como funcionam os cálculos visuais

Crias cálculos visuais no modo Editar , que se abre sobre o visual selecionado. A superfície de edição tem três partes: uma pré-visualização do visual, uma barra de fórmulas para a expressão DAX e uma matriz visual que mostra os resultados à medida que se escreve.

Captura de tela mostrando áreas da tela de edição de cálculos visuais.

Como armazenas um cálculo visual no visual, ele pode referenciar qualquer coisa no visual – colunas, medidas ou outros cálculos visuais – mas nada mais no modelo. A maioria dos cálculos visuais avalia linha a linha em relação à matriz visual, pelo que funções de agregação como SUM são geralmente desnecessárias. Não podes usar funções que dependem das relações do modelo - USERELATIONSHIP, RELATED e RELATEDTABLE.

Depois de adicionar um cálculo visual, este aparece na lista de campos do visual e é apresentado no próprio visual.

Captura de ecrã dos cálculos em formato visual sendo exibidos no ecrã.

Funções DAX disponíveis em cálculos visuais

Muitas funções DAX existentes funcionam em cálculos visuais. Como os cálculos visuais funcionam dentro dos limites da matriz visual, funções que dependem de relações de modelos como USERELATIONSHIP, RELATED ou RELATEDTABLE não estão disponíveis.

Os cálculos visuais também introduzem um conjunto de funções específicas para cálculos visuais. Muitas destas funções são atalhos mais fáceis de usar para as funções da janela DAX.

Função Descrição Exemplo Atalho para
COLLAPSE O cálculo é avaliado a um nível superior do eixo. Porcentagem do pai = DIVIDE([Valor das vendas], COLLAPSE([Valor das vendas], ROWS)) N/A
COLLAPSEALL O cálculo é avaliado ao nível total do eixo. Porcentagem do total geral = DIVIDIR([Valor das vendas], COLLAPSEALL([Valor das vendas], ROWS)) N/A
EXPAND O cálculo é avaliado a um nível inferior do eixo. Média de filhos = EXPAND(MÉDIA([Valor das vendas]), ROWS) N/A
EXPANDALL O cálculo é avaliado ao nível da folha do eixo. Média do nível foliar = EXPANDALL(MÉDIA([Valor das Vendas]), ROWS) N/A
FIRST Refere-se à primeira linha de um eixo. ProfitVSFirst = [Lucro] - FIRST([Lucro]) INDEX(1)
ISATLEVEL Informa se uma coluna especificada está presente no nível atual. IsFiscalYearAtLevel = ISATLEVEL([Ano fiscal]) N/A
LAST Refere-se à última linha de um eixo. ProfitVSLast = [Lucro] - LAST([Lucro]) INDEX(-1)
LOOKUP Avalia uma expressão na matriz visual usando o contexto atual. ProcurarVendasFor2025WithContext = LOOKUP(SUM([Sales]), [Year], "2025") N/A
LOOKUPWITHTOTALS Avalia uma expressão numa matriz visual que inclui totais. LookupSalesFor2025WithTotals = LOOKUPWITHTOTALS(SOMA([Vendas]), [Ano], "2025") N/A
MOVINGAVERAGE Adiciona uma média móvel em um eixo. MovingAverageSales = MOVINGAVERAGE([ValorDeVendas], 2) WINDOW
NEXT Refere-se a uma próxima linha de um eixo. ProfitVSNext = [Lucro] - NEXT([Lucro]) OFFSET(1)
PREVIOUS Refere-se a uma linha anterior de um eixo. ProfitVSPrevious = [Lucro] - PREVIOUS([Lucro]) OFFSET(-1)
RANGE Refere-se a uma fatia de linhas de um eixo. AverageSales = AVERAGEX(RANGE(1), [Valor das vendas]) WINDOW
RUNNINGSUM Adiciona uma soma em execução em um eixo. RunningSumSales = RUNNINGSUM([Valor das vendas]) WINDOW

Parâmetros que controlam o fluxo de cálculo

Algumas funções de cálculo visual aceitam parâmetros opcionais que controlam como o cálculo percorre a matriz visual:

  • Axis e Reset são específicas para cálculos visuais. Referem-se à estrutura visual em vez de campos específicos.
  • OrderBy e PartitionBy também trabalham em colunas e medidas calculadas. Fazem referência diretamente aos campos.

As secções seguintes descrevem cada parâmetro e quando usar um em detrimento do outro.

Axis

Muitas funções têm um parâmetro opcional Axis , que só pode usar em cálculos visuais. O Axis parâmetro influencia a forma como o cálculo visual percorre a matriz visual. O parâmetro Axis tem como predefinição o primeiro eixo do elemento visual. Para muitos visuais, o primeiro eixo é ROWS, o que significa que o cálculo visual é avaliado fila a linha na matriz visual, de cima para baixo. A tabela a seguir mostra os valores válidos para o Axis parâmetro:

Axis ícone Axis Designação Descrição
ROWS Calcula verticalmente através das linhas de cima para baixo.
COLUMNS Calcula horizontalmente através das colunas da esquerda para a direita.
ROWS COLUMNS Calcula verticalmente em linhas de cima para baixo, continuando coluna por coluna da esquerda para a direita.
COLUMNS ROWS Calcula horizontalmente entre colunas da esquerda para a direita, continuando linha por linha de cima para baixo.

Nota

Se especificar um eixo que não está presente no visual, o cálculo ignora esse eixo.

Reset

Muitas funções incluem um parâmetro opcional Reset que só pode usar em cálculos visuais. O Reset parâmetro controla se e quando a função redefine o seu valor para 0 ou muda para outro âmbito enquanto percorre a matriz visual. Controla este comportamento ao particionar a coluna de destino. À medida que os cálculos ocorrem dentro de uma partição, a forma como a coluna é dividida em partições determina se um cálculo é reiniciado.

O valor padrão do Reset parâmetro é NONE, o que significa que o cálculo visual nunca reinicia.

O Reset parâmetro aceita diferentes tipos de valores:

  • Números inteiros
  • Referências das colunas
  • Sinónimos especiais: HIGHESTPARENT, LOWESTPARENT,NONE

Em todos os casos, o parâmetro especifica um único nível na hierarquia de cálculo visual (o nível-alvo). No entanto, a forma como o cálculo interpreta este nível pode variar.

O Reset comportamento opera em dois modos diferentes: absoluto e relativo.

Quando se usam valores inteiros para o parâmetro ou os seus equivalentes NONE, HIGHESTPARENT, e LOWESTPARENT, pode-se escolher entre estes dois modos pelo sinal do inteiro: valores positivos realizam um reset em modo absoluto, e valores negativos fazem um reset em modo relativo (e zero não faz reset algum, o comportamento padrão).

Se você especificar uma referência de coluna, também estará operando no modo absoluto. Esses valores determinam como a coluna de destino é particionada e, assim, se ela será redefinida. As secções seguintes descrevem estes dois modos:

Modo de reset absoluto

O modo absoluto é um comportamento do Reset parâmetro em cálculos visuais. Este modo indica que o cálculo deve ser particionado pela coluna alvo e por todas as colunas acima dela. Esta regra aplica-se a todos os níveis do cálculo. Em níveis acima da coluna alvo (onde a coluna alvo não está presente, e possivelmente outras colunas), o cálculo particiona-se pelas colunas restantes disponíveis. O valor inteiro positivo identifica a coluna alvo a partir do topo (a coluna superior é 1, a seguinte é 2, e assim sucessivamente). Ele sobe para N (o número de colunas na hierarquia), e quaisquer valores mais altos são cortados. Em alternativa, pode especificar diretamente a coluna.

Por exemplo, considere um cálculo visual com estes níveis de hierarquia: Ano, Trimestre, Mês e Dia. A tabela seguinte mostra como o cálculo se particiona em cada nível dependendo do valor de Reset:

Nível / valor Reset = 1 ou Ano Reset = 2 ou Trimestre Reset = 3 ou Mês Reset = 4 ou Dia
Nível diário Ano Trimestre e Ano Mês, Trimestre e Ano Dia, Mês, Trimestre e Ano
Nível do mês Ano Trimestre e Ano Mês, Trimestre e Ano Mês, Trimestre e Ano
Nível trimestral Ano Trimestre e Ano Trimestre e Ano Trimestre e Ano
Nível escolar Ano Ano Ano Ano
Nível total geral Nenhum Nenhum Nenhum Nenhum

Modo de reinício relativo

O modo relativo é um comportamento do Reset parâmetro em cálculos visuais. Dado um valor inteiro negativo –X, em cada nível o cálculo particiona-se por todas as colunas de níveis X ou mais acima na hierarquia (ou não particiona de todo se tal nível não existir). Os valores válidos para este modo estão entre -1 e -N+1 (onde N é o número de colunas na hierarquia), e quaisquer valores inferiores são cortados. Mais uma vez, considere um cálculo visual com estes níveis de hierarquia: Ano, Trimestre, Mês e Dia. A tabela seguinte mostra como o cálculo se particiona em cada nível dependendo do valor de Reset

Nível / valor Reset = -1 Reset = -2 Reset = -3
Nível diário Mês, Trimestre e Ano Trimestre e Ano Ano
Nível do mês Trimestre e Ano Ano Nenhum
Nível trimestral Ano Nenhum Nenhum
Nível escolar Nenhum Nenhum Nenhum
Nível total geral Nenhum Nenhum Nenhum

Sinónimos de parâmetros de redefinição

O Reset parâmetro também fornece os seguintes sinónimos:

  • NONE é o valor padrão. Ele não redefine o cálculo e é equivalente a 0.
  • HIGHESTPARENT efetua uma reposição absoluta ao nível mais alto e é equivalente a 1.
  • LOWESTPARENT Executa uma redefinição relativa pelo pai imediato e é equivalente a -1.

Exemplos de utilização do parâmetro Reset

Considere um cálculo visual com estes níveis de hierarquia: Ano, Trimestre, Mês e Dia. Os seguintes cálculos visuais são equivalentes e retornam a soma do Montante das Vendas que reinicia em cada ano, independentemente do nível em que o cálculo é avaliado (ver modo de reset absoluto):

RUNNINGSUM([Sales Amount], HIGHESTPARENT)
RUNNINGSUM([Sales Amount], 1)
RUNNINGSUM([Sales Amount], [Year])

Em contrapartida, os seguintes cálculos visuais devolvem ambos a soma de Valor de Vendas, calculada a partir de 0 para cada pai imediato, dependendo do nível em que o cálculo é avaliado (ver modo de reinício relativo).

RUNNINGSUM([Sales Amount], LOWESTPARENT)
RUNNINGSUM([Sales Amount], -1)

Por fim, esse cálculo visual não é redefinido e continua adicionando o valor Valor de vendas de cada dia aos valores anteriores, sem reiniciar.

RUNNINGSUM([Sales Amount])

OrderBy e PartitionBy

O OrderBy parâmetro aceita ORDERBY, e o PartitionBy parâmetro aceita PARTITIONBY. Ao contrário de Axis e Reset, podes usar estes parâmetros em colunas calculadas, medidas e cálculos visuais, e eles referem-se diretamente a campos.

Nem todas as funções fornecem estes parâmetros. As funções exclusivas de cálculo visual não fornecem um PartitionBy parâmetro. As funções de janela só fornecem um Reset parâmetro se as usares num cálculo visual. O Relation parâmetro nas funções de janela está disponível quer o use ou não num cálculo visual, mas só aceita um Axis se o usar num cálculo visual.

Escolha entre estes parâmetros

Não precisas de especificar todos estes parâmetros, e podes combiná-los. Para decidir que parâmetro usar:

  • Prefira Axis e Reset quando pretender um comportamento independente do campo que acompanhe a estrutura visual. Referir-se à estrutura visual é mais flexível do que referenciar campos explicitamente.
  • OrderBy Use e PartitionBy quando quiser fixar o cálculo em campos específicos, independentemente da disposição visual.
  • Use PartitionBy em vez de Reset quando o eixo tem apenas um nível. Reset espera múltiplos níveis no eixo, por isso não funciona quando há apenas um campo ou quando existem vários campos num único nível no eixo.

Seletores de parâmetros

Os seletores de parâmetros facilitam a seleção de valores para parâmetros em funções de cálculo visual. Por exemplo, na imagem seguinte, pode ver o modelo Procurar um valor com totais carregado:

Captura de tela mostrando o seletor de parâmetros.

Também pode ativar os seletores de parâmetros usando o atalho de teclado CTRL+SPACE .

Modelos visuais de cálculo

Os cálculos visuais incluem modelos para facilitar a escrita de cálculos comuns. O botão de modelos no modo de edição de cálculos visuais abre um menu de modelos disponíveis.

Captura de tela do uso de modelos para cálculos visuais.

Estão disponíveis os seguintes modelos:

  • Soma corrente. Calcula a soma dos valores, adicionando o valor atual aos valores anteriores. Usa a RUNNINGSUM função.
  • Média móvel. Calcula uma média de um conjunto de valores em uma determinada janela dividindo a soma dos valores pelo tamanho da janela. Usa a MOVINGAVERAGE função.
  • Percentagem de pais. Calcula a porcentagem de um valor em relação ao pai. Usa a COLLAPSE função.
  • Percentagem do total geral. Calcula a porcentagem de um valor em relação a todos os valores, usando a COLLAPSEALL função.
  • Média de crianças. Calcula o valor médio do conjunto de valores filho. Usa a EXPAND função.
  • Comparado com o anterior. Compara um valor com um valor anterior, usando a PREVIOUS função.
  • Contra o próximo. Compara um valor com um valor subsequente, usando a NEXT função.
  • Contra primeiro. Compara um valor com o primeiro valor, usando a função FIRST.
  • Comparado com o último. Compara um valor com o último valor, usando a função LAST.
  • Procure um valor com base no contexto. Encontre um valor ou avalie uma expressão na matriz visual dentro do contexto atual, usando a LOOKUP função.
  • Procure um valor com totais. Encontre um valor ou avalie uma expressão na matriz visual com totais, usando a LOOKUPWITHTOTALS função.

Ocultar campos no visual

No modo de edição de cálculos visuais, podes esconder campos do visual, tal como escondes colunas e tabelas na visualização de modelação. Por exemplo, para mostrar apenas o cálculo visual do Lucro , oculte o Montante das Vendas e o Custo Total do Produto da vista.

Captura de ecrã de ocultar elementos da vista de um visual.

Ocultar campos não os remove do visual ou da matriz visual, portanto, seus cálculos visuais ainda podem se referir a eles e continuar a funcionar. Um campo oculto ainda aparece na matriz visual, mas não é mostrado na imagem resultante. Só inclua campos ocultos se forem necessários para que os seus cálculos visuais funcionem.

Formatar um cálculo visual

Formate um cálculo visual usando tipos de dados e opções de formatação, ou utilizando uma cadeia de formatos de nível visual personalizada. As opções de formato de dados na secção Geral do painel de formatação controlam o formato.

Captura de tela do modo de edição de cálculos visuais mostrando um cálculo visual que retorna uma porcentagem formatada como uma porcentagem.

Considerações e limitações

Tipos visuais não suportados

Cálculos visuais e campos ocultos não funcionam com os seguintes visuais:

  • Slicer, visual R, visual em Python
  • Influenciadores Chave, Árvore de Decomposição, Perguntas e Respostas, Narrativa Inteligente
  • Métricas, Relatório Paginado, Power Apps, Power Automate
  • Múltiplos em miniatura, eixo de animação no gráfico de dispersão
  • Elementos visuais personalizados

Funcionalidades não suportadas

As seguintes funcionalidades não estão disponíveis com cálculos visuais:

Limitações de publicação e partilha

Outras limitações

  • Os parâmetros de campo funcionam com cálculos visuais, mas têm algumas limitações.
  • As ligações ativas ao SQL Server Analysis Services requerem a versão 2025 ou posterior.

Para obter mais informações sobre como usar cálculos visuais, consulte os seguintes recursos: