Share via


Função CALCULATE (DAX)

Avalia uma expressão em um contexto que é modificado pelos filtros especificados.

Sintaxe

CALCULATE(<expression>,<filter1>,<filter2>…)

Parâmetros

Termo

Definição

expression

A expressão a ser avaliada.

filter1,filter2,…

(opcional) Uma lista separada por vírgulas de expressões booliana ou uma expressão de tabela que define um filtro.

A expressão usada como o primeiro parâmetro é essencialmente igual a uma medida.

Estas restrições se aplicam a expressões Booleanas que são usadas como argumentos:

  • A expressão não pode referenciar uma medida.

  • A expressão não pode usar uma função CALCULATE aninhada.

  • A expressão não pode usar funções que examinem uma tabela ou retornem uma tabela, inclusive funções de agregação.

Entretanto, uma expressão Booleana pode usar qualquer função que procure um único valor, ou que calcule um valor escalar.

Valor de retorno

O valor que é o resultado da expressão.

Comentários

Se os dados foram filtrados, a função CALCULATE alterará o contexto no qual os dados são filtrados e avaliará a expressão no novo contexto especificado. Para cada coluna usada em um argumento de filtro, será removido qualquer filtro existente nessa coluna, e o filtro usado no argumento de filtro será aplicado.

Exemplo

Para calcular o índice de vendas do revendedor atual nas vendas de todos os revendedores, você adiciona à Tabela Dinâmica uma medida que calcula a soma das vendas para a célula atual (o numerador) e, em seguida, divide essa soma pelo total de vendas de todos os revendedores. Para garantir que o denominador permaneça o mesmo, independentemente de como a Tabela Dinâmica possa estar filtrando ou agrupando os dados, a parte da fórmula que representa o denominador deverá usar a função ALL para limpar quaisquer filtros e criar o total correto.

A tabela a seguir mostra os resultados quando a nova medida, All Reseller Sales Ratio, é criada com a fórmula mostrada na seção de código.

Para ver como isso funciona, adicione o campo CalendarYear à área Rótulos de Linha da Tabela Dinâmica e, em seguida, adicione o campo ProductCategoryName à área Rótulos de Coluna. Depois adicione a nova medida à área Valores da Tabela Dinâmica. Para exibir os números como percentuais, aplique a formatação de número percentual à área da Tabela Dinâmica que contém a nova medida, All Reseller Sales Ratio.

All Reseller Sales

Rótulos de Coluna

 

 

 

 

Rótulos de Linha

Accessories

Bikes

Clothing

Components

Grand Total

2001

0.02%

9.10%

0.04%

0.75%

9.91%

2002

0.11%

24.71%

0.60%

4.48%

29.90%

2003

0.36%

31.71%

1.07%

6.79%

39.93%

2004

0.20%

16.95%

0.48%

2.63%

20.26%

Grand Total

0.70%

82.47%

2.18%

14.65%

100.00%

=( SUM('ResellerSales_USD'[SalesAmount_USD]))
 /CALCULATE( SUM('ResellerSales_USD'[SalesAmount_USD])
           ,ALL('ResellerSales_USD'))

A expressão CALCULATE no denominador permite que a expressão de soma inclua todas as linhas no cálculo. Isso substitui os filtros implícitos para CalendarYear e ProductCategoryName que existem para a parte do numerador da expressão.

Funções relacionadas

Enquanto a função CALCULATE requer como primeiro argumento uma expressão que retorna um único valor, a função CALCULATETABLE aceita uma tabela de valores.

Consulte também

Referência

Outros recursos