Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um cálculo visual é um cálculo DAX definido e executado diretamente em um visual. Os cálculos visuais facilitam a criação de cálculos que antes eram difíceis de serem criados, o que resulta em um DAX mais simples, manutenção simplificada e melhor desempenho.
Aqui está um exemplo de cálculo visual que define uma soma em execução para o Valor de Vendas. Observe que o DAX necessário é simples:
Running sum = RUNNINGSUM([Sales Amount])
Um cálculo pode fazer referência a qualquer dado no visual, incluindo colunas, medidas ou outros cálculos visuais. Essa capacidade elimina a complexidade do modelo semântico e simplifica o processo de escrita do 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álculos no DAX:
- Os cálculos visuais não são armazenados no modelo e, em vez disso, são armazenados no visual. Isso significa que os cálculos visuais só podem se referir ao que está no visual. Qualquer coisa no modelo deve ser adicionada ao visual antes que o cálculo visual possa se referir a ele, liberando os cálculos visuais de se preocuparem com a complexidade do contexto do filtro e do modelo.
- Cálculos visuais combinam a simplicidade do contexto de colunas calculadas com a flexibilidade de cálculo sob demanda das medidas.
- Em comparação com as medidas, os cálculos visuais operam em dados agregados, em vez de no nível de detalhes, o que geralmente leva a benefícios de desempenho. Quando um cálculo pode ser alcançado por uma nova medida ou um cálculo visual, este último geralmente resulta em melhor desempenho.
- Traduzindo corretamente o sentido do texto original, ficaria assim: Como os cálculos visuais fazem parte do visual, eles podem se referir à estrutura visual, o que proporciona mais flexibilidade.
Para obter uma comparação mais detalhada das formas de adicionar cálculos no Power BI, consulte Usando opções de cálculos no Power BI Desktop.
Com cálculos visuais, você pode:
- Adicionar cálculos visuais aos seus relatórios
- Ocultar determinados campos
- Criar cálculos visuais rapidamente usando modelos
- Fazer cálculos visuais flexíveis consultando os eixos do visual
As seções a seguir fornecem detalhes sobre como cada um dos elementos, descritos nos marcadores anteriores, funcionam com cálculos visuais.
Como adicionar um cálculo visual
Para adicionar um cálculo visual, selecione um visual e, em seguida, selecione o botão Novo cálculo na faixa de opções:
A janela de cálculos visuais é aberta no modo de Edição. A tela modo de Edição consiste em três seções principais, conforme mostrado de cima para baixo na imagem a seguir:
- A versão prévia do visual que mostra o visual com o qual você está trabalhando
- Uma barra de fórmulas onde você pode adicionar cálculos visuais
- A matriz visual que mostra os dados no visual e exibe os resultados dos cálculos visuais à medida que você os adiciona. Qualquer estilo ou tema aplicado ao seu visual não é aplicado à matriz visual.
Para adicionar um cálculo visual, digite a expressão na barra de fórmulas. Por exemplo, em um visual que contém Valor das Vendas e Custo Total do Produto por Ano Fiscal, você pode adicionar um cálculo visual que calcula o lucro de cada ano digitando:
Profit = [Sales Amount] – [Total Product Cost]
Por padrão, a maioria dos cálculos visuais em um visual é avaliada linha por linha, como uma coluna calculada. No exemplo anterior, em cada linha da matriz visual, subtraem-se o Valor de Vendas Atual e o Custo Total do Produto , sendo o resultado retornado na coluna Lucro. Embora possível, não há necessidade de adicionar uma função de agregação como SUM como você faria em uma medida. Na verdade, é melhor não adicionar esses agregados quando eles não são necessários, para que você possa distinguir mais facilmente entre medidas e expressões de cálculo visual.
À medida que você adiciona cálculos visuais, eles são mostrados na lista de campos no visual:
Além disso, o cálculo visual é apresentado no gráfico:
Você pode usar muitas funções DAX existentes em cálculos visuais. Funções específicas para cálculos visuais também estão disponíveis. Como os cálculos visuais funcionam dentro dos limites da matriz visual, funções que dependem de relações de modelo, como USERELATIONSHIP, RELATED ou RELATEDTABLE , não podem ser usadas.
Como ocultar campos do visual
No modo de edição de cálculos visuais, você pode ocultar campos do visual da mesma forma que pode ocultar colunas e tabelas no modo de exibição de modelagem. Por exemplo, se você quiser mostrar apenas o cálculo visual de Lucro, poderá ocultar o Valor de Vendas e o custo de Lucro Total da exibição:
Ocultar campos não os remove do visual ou da matriz visual, para que seus cálculos visuais ainda possam se referir a eles e continuar funcionando. Um campo oculto ainda é mostrado na matriz visual, mas não é mostrado no visual resultante. É recomendável incluir apenas campos ocultos se eles forem necessários para que seus cálculos visuais funcionem.
Utilizando modelos
Os cálculos visuais incluem modelos para facilitar a escrita de cálculos comuns. Você pode encontrar modelos selecionando o botão de modelo e escolhendo um modelo para trabalhar:
Você também pode criar um cálculo visual padronizado na faixa de opções clicando na parte inferior do botão Novo Cálculo Visual.
Os seguintes modelos estão disponíveis:
- Soma acumulada Calcula a soma dos valores, adicionando o valor atual aos valores anteriores. Usa a função RUNNINGSUM.
- 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 função MOVINGAVERAGE.
- Porcentagem do pai. Calcula a porcentagem de um valor em relação ao seu pai. Usa a função COLLAPSE.
- Percentual do total geral. Calcula a porcentagem de um valor em relação a todos os valores, usando a função COLLAPSEALL.
- Média de filhos. Calcula o valor médio do conjunto de valores filho. Usa a função EXPAND.
- Em comparação com o anterior. Compara um valor com um valor anterior, usando a função PREVIOUS.
- Em comparação com o próximo. Compara um valor com um valor subsequente, usando a função NEXT.
- Em comparação com o primeiro. Compara um valor com o primeiro valor, usando a função FIRST.
- Em comparação com o último. Compara um valor com o último valor, usando a função LAST.
- Busque um valor levando em consideração o contexto. Localize um valor ou avalie uma expressão na matriz visual dentro do contexto atual, usando a LOOKUP função.
- Busque um valor incluindo totais. Localize um valor ou avalie uma expressão na matriz visual com totais, usando a LOOKUPWITHTOTALS função.
A seleção de um modelo insere o modelo na barra de fórmulas. Você pode usar esses modelos como pontos de partida. Você também pode adicionar suas próprias expressões sem depender de modelos.
Seletores de parâmetro
Os seletores de parâmetro facilitam a seleção de valores para parâmetros em funções de cálculo visual. Por exemplo, aqui carregamos o modelo Pesquisar valor com totais:
Você também pode ativar os seletores de parâmetros usando o atalho de teclado CTRL+SPACE .
Axis
Muitas funções têm um parâmetro Axis opcional, que só pode ser usado em cálculos visuais. Axis influencia como o cálculo visual atravessa a matriz visual. O parâmetro Axis é definido como o primeiro eixo no visual por padrão. Para muitos visuais, o primeiro eixo é ROWS, o que significa que o cálculo visual é avaliado linha por linha na matriz visual, de cima para baixo. A tabela a seguir mostra os valores válidos para o parâmetro Axis:
| Ícone Axis | nome Axis | Descrição |
|---|---|---|
|
ROWS | Calcula verticalmente ao longo das linhas de cima para baixo. |
|
COLUMNS | Calcula horizontalmente através das colunas da esquerda para a direita. |
|
ROWS COLUMNS | Calcula verticalmente entre 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. |
Observação
Se você especificar um eixo que não está presente no visual, esse eixo será ignorado.
Reset
Muitas funções têm um parâmetro Reset opcional que está disponível apenas em cálculos visuais. Reset influencia se e quando a função redefine seu valor para 0 ou alterna para um escopo diferente ao atravessar a matriz visual. Isso é feito ao particionar a coluna de destino. À medida que os cálculos são realizados dentro de uma partição, a forma como a coluna é dividida em partições determina se um cálculo é redefinido.
O parâmetro Reset é definido como NONE por padrão, o que significa que o cálculo visual nunca é reiniciado.
O Reset parâmetro aceita diferentes tipos de valores:
- Inteiros
- referências de coluna
- Sinônimos especiais: HIGHESTPARENT, , LOWESTPARENTNONE
Em todos os casos, ele especifica um único nível na hierarquia de cálculo visual (vamos chamá-lo de nível de destino). No entanto, a forma como esse nível é interpretado no cálculo pode variar.
O Reset comportamento opera em dois modos diferentes: absoluto e relativo.
Ao usar valores inteiros para o parâmetro ou seus equivalentes NONEe HIGHESTPARENTLOWESTPARENT, você pode escolher entre esses dois modos por meio do sinal do inteiro: valores positivos executam uma redefinição no modo absoluto e valores negativos executam uma redefinição no modo relativo (e zero não faz nenhuma redefinição, o comportamento padrão).
Se você especificar uma referência de coluna, estará operando também no modo absoluto. Esses valores determinam como a coluna de destino é particionada e, portanto, se ela será redefinida. Esses dois modos são descritos na seção a seguir:
Modo absoluto
Esse modo indica que o cálculo deve ser particionado pela coluna de destino e todos aqueles acima dele, e isso se aplica em todos os níveis no cálculo. Em níveis acima do destino (em que a coluna de destino não está presente e possivelmente outras), o cálculo é particionado pelas colunas restantes disponíveis. O valor inteiro positivo identifica a coluna de destino a partir da parte superior (a coluna superior é 1, a próxima é 2, etc.). Ele sobe para N (o número de colunas na hierarquia) e todos os valores mais altos são reduzidos. Como alternativa, também é possível especificar a coluna diretamente.
Por exemplo, considere um cálculo visual com esses níveis de hierarquia: Ano, Trimestre, Mês e Dia. A tabela a seguir mostra como o cálculo será particionado 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 do dia | Ano | Trimestre e Ano | Mês, Trimestre e Ano | Dia, Mês, Trimestre e Ano |
| Nível mensal | Ano | Trimestre e Ano | Mês, Trimestre e Ano | Mês, Trimestre e Ano |
| Nível do trimestre | Ano | Trimestre e Ano | Trimestre e Ano | Trimestre e Ano |
| Nível de ano | Ano | Ano | Ano | Ano |
| Nível total geral | Nenhum | Nenhum | Nenhum | Nenhum |
Modo relativo
Dado um valor inteiro negativo –X, em cada nível, o cálculo é particionado por todas as colunas que estejam X níveis ou mais acima na hierarquia (ou não particionado, caso tal nível não exista). Os valores válidos para esse modo estão entre -1 e -N+1 (em que N é o número de colunas na hierarquia) e todos os valores inferiores são cortados. Novamente, considere o cálculo visual descrito anteriormente. A tabela abaixo mostra como o cálculo será particionado em cada nível, dependendo do valor de Reset.
| Nível/valor | Reset = -1 | Reset = -2 | Reset = -3 |
|---|---|---|---|
| Nível do dia | Mês, Trimestre e Ano | Trimestre e Ano | Ano |
| Nível mensal | Trimestre e Ano | Ano | Nenhum |
| Nível do trimestre | Ano | Nenhum | Nenhum |
| Nível de ano | Nenhum | Nenhum | Nenhum |
| Nível total geral | Nenhum | Nenhum | Nenhum |
Sinônimos
Reset também fornece os seguintes sinônimos:
- NONE é o valor padrão. Ele não redefine o cálculo e é equivalente a 0.
- HIGHESTPARENT executa um reset absoluto pelo nível superior e é equivalente a 1.
- LOWESTPARENT realiza uma redefinição relativa diretamente pelo pai imediato, sendo equivalente a -1.
Exemplos de uso Reset
Por exemplo, considere o cálculo visual descrito anteriormente. Os cálculos visuais são equivalentes e retornam a soma de Valor de Vendas que é reiniciada para cada ano, independentemente do nível em que o cálculo é avaliado (consulte o modo absoluto):
RUNNINGSUM([Sales Amount], HIGHESTPARENT)
RUNNINGSUM([Sales Amount], 1)
RUNNINGSUM([Sales Amount], [Year])
Em contraste, os cálculos visuais a seguir retornam a soma de Valor de Vendas que inicia do zero para cada nível superior imediato, dependendo do nível em que o cálculo é avaliado (consulte a seção sobre modo relativo).
RUNNINGSUM([Sales Amount], LOWESTPARENT)
RUNNINGSUM([Sales Amount], -1)
Por fim, esse cálculo visual não é redefinido e continua adicionando o Valor de Vendas para cada dia aos valores anteriores, sem reiniciar do zero.
RUNNINGSUM([Sales Amount])
Axis, Reset, OrderBy e PartitionBy
Os parâmetros Axis, Reset, OrderBy (aceitam ORDERBY) e PartitionBy (aceita PARTITIONBY) podem ser usados para influenciar a forma como um cálculo é avaliado. Nem todos precisam ser especificados e podem ser usados em combinação entre si. Nem todas as funções as fornecem, pois as funções exclusivas de cálculos visuais não fornecem um PartitionBy parâmetro. As funções de janela fornecem apenas um Reset parâmetro se usado em um cálculo visual. O Relation parâmetro em funções de janela está disponível independentemente se usado em um cálculo visual ou não, mas aceita apenas um Axis se usado em um cálculo visual.
Axis e Reset referenciam a estrutura visual. Os parâmetros OrderBy e PartitionBy podem ser usados em colunas calculadas, medidas e cálculos visuais e referem-se a campos. Embora eles executem a mesma função, eles são diferentes no nível de abstração fornecido; fazer referência à estrutura visual é mais flexível do que a referência explícita a campos usando OrderBy ou PartitionBy.
Reset espera que haja vários níveis no eixo. Caso você não tenha vários níveis no eixo, porque há apenas um campo ou vários campos em um único nível no eixo, você pode usar PartitionBy.
Você pode pensar em OrderBy e PartitionBy como fixando referências de campos ao especificar explicitamente, onde Axis e Reset são independentes de campo – eles se referem à estrutura e quaisquer campos que estejam presentes na estrutura em uso.
Funções disponíveis
Você pode usar muitas funções DAX existentes em cálculos visuais. Como os cálculos visuais funcionam dentro dos limites da matriz visual, funções que dependem de relacionamentos de modelo, 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 dessas funções são atalhos mais fáceis de usar para funções de janela DAX.
| Função | Descrição | Exemplo | Atalho para |
|---|---|---|---|
| COLLAPSE | O cálculo é avaliado em um nível mais alto do eixo. | Porcentagem do pai = DIVIDE([Sales Amount], COLLAPSE([Sales Amount], ROWS)) | N/D |
| COLLAPSEALL | O cálculo é avaliado no nível total do eixo. | Porcentagem do total geral = DIVIDE([Sales Amount], COLLAPSEALL([Sales Amount], ROWS)) | N/D |
| EXPAND | O cálculo é avaliado em um nível mais baixo do eixo. | Média de filhos = EXPAND(AVERAGE([Sales Amount]), ROWS) | N/D |
| EXPANDALL | O cálculo é avaliado no nível de folha no eixo. | Média do nível da folha = EXPANDALL(AVERAGE([Valor das vendas]), ROWS) | N/D |
| FIRST | Refere-se à primeira linha de um eixo. | ProfitVSFirst = [Lucro] – FIRST([Lucro]) | INDEX(1) |
| ISATLEVEL | Relata se uma coluna especificada está presente no nível atual. | IsFiscalYearAtLevel = ISATLEVEL([Ano Fiscal]) | N/D |
| LAST | Refere-se à última linha de um eixo. | ProfitVSLast = [Lucro] – LAST([Lucro]) | INDEX(-1) |
| LOOKUP | Avalie a expressão na matriz visual usando o contexto atual. | LookupSalesFor2025WithContext = LOOKUP(SOMA([Vendas]) e [Ano], "2025") | N/D |
| LOOKUPWITHTOTALS | Avaliar a expressão em uma matriz visual com totais. | LookupSalesFor2025WithTotals = LOOKUPWITHTOTALS(SUM([Vendas]), [Ano], "2025") | N/D |
| MOVINGAVERAGE | Adiciona uma média móvel em um eixo. | MovingAverageSales = MOVINGAVERAGE([Valor de Vendas], 2) | WINDOW |
| NEXT | Refere-se a uma próxima linha de um eixo. | LucroVSPróximo = [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((RANGE1), [Valor de Vendas]) | WINDOW |
| RUNNINGSUM | Adiciona uma soma de execução em um eixo. | RunningSumSales = RUNNINGSUM([Valor de Vendas]) | WINDOW |
Formatação de cálculos visuais
Você pode formatar um cálculo visual usando tipos de dados e opções de formatação. Você também pode definir uma string de formato para nível visual personalizado. Use as opções de Formato de dados na seção Geral do painel de formatação do seu visual para definir o formato:
Exemplo 1: Usando o cálculo visual para retornar um código de cor Hex para formatação condicional
Etapa 1: Selecione o visual em que você deseja usar a formatação condicional em:
Etapa 2: Selecione o botão Novo cálculo visual na Guia Página Inicial :
Etapa 3: escrever seu cálculo visual. Aqui está uma instrução IF para retornar verde ou vermelho com base em uma medida que seja maior que 0,5.
Conditional Hex Code = IF ( [Progress] > .5, "#5BA300", "#E91C1C" )
Etapa 4: Expanda o painel Formatação e selecione Propriedades:
Etapa 5: expanda a seção Formato de Dados , selecione seu cálculo visual e defina o Tipo de Dados e o formato como Texto:
Etapa 6: antes de sair do editor de cálculo visual, selecione o ícone de ocultação ao lado do cálculo visual na seção de build para ocultá-lo:
Etapa 7: Use-a em uma seção de formatação condicional:
Etapa 8: Saia do editor de cálculo visual clicando no botão Voltar para relatório :
Etapa 9: Aproveite seu visual formatado condicionalmente!
Considerações e limitações
Tipos visuais sem suporte
Cálculos visuais e campos ocultos não funcionam com os seguintes visuais:
- Slicer, visual R, visual do Python
- Principais influenciadores, árvore de decomposição, Q&A, narrativa inteligente
- Métricas, Relatório Paginado, Power Apps, Power Automate
- Visões de Múltiplos Pequenos, Eixo de Animação no Gráfico de Dispersão
- Visuais personalizados
Recursos sem suporte
Os seguintes recursos não estão disponíveis com cálculos visuais:
- Filtragem, classificação ou alteração de agregações
- Auto-referenciação (um cálculo não pode se referenciar a si próprio)
- Copiar/colar ou reutilizar entre visuais
- Categorias de dados, limites de dados ou itens de exibição sem dados
- Cadeias de caracteres de formato dinâmico (não podem definir ou usar como cadeia de caracteres de formato)
- Personalização de cálculos visuais ou campos ocultos
- Visualize os registros com navegação detalhada
- IntelliSense no Power BI Embedded
Limitações de publicação e compartilhamento
- Não é possível fixar em dashboards
- Não é possível usar Publicar na Web
- As exportações de dados excluem os resultados do cálculo visual; campos ocultos aparecem apenas em exportações de dados subjacentes
Outras limitações
- Os parâmetros de campo funcionam com cálculos visuais, mas têm algumas limitações.
- As conexões dinâmicas com o SQL Server Analysis Services exigem a versão 2025 ou posterior.
Conteúdo relacionado
Para obter mais informações sobre como usar cálculos visuais, consulte os seguintes recursos: