Função CALCULATETABLE (DAX)
Avalia uma expressão de tabela em um contexto modificado pelos filtros fornecidos.
Sintaxe
CALCULATETABLE(<expression>,<filter1>,<filter2>,…)
Parâmetros
Termo |
Definição |
---|---|
Expression |
A expressão de tabela a ser avaliada |
filter1,filter2,… |
Uma expressão Booleana ou uma expressão de tabela que define um filtro |
A expressão usada como o primeiro parâmetro deve ser uma função que retorna uma tabela.
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 Booliana pode usar qualquer função que procure um único valor, ou que calcule um valor escalar.
Valor de retorno
Uma tabela de valores.
Comentários
A função CALCULATETABLE altera o contexto no qual os dados são filtrados e avalia 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.
Essa função é um sinônimo para a função RELATEDTABLE.
Exemplo
O exemplo a seguir usa a função CALCULATETABLE para obter a soma de vendas pela Internet para 2002. Esse valor é usado posteriormente para calcular a razão das vendas pela Internet comparada com todas as vendas do ano de 2002.
A tabela a seguir mostra os resultados da fórmula a seguir.
Rótulos de Linha |
Internet SalesAmount_USD |
CalculateTable 2002 Internet Sales |
Internet Sales to 2002 ratio |
---|---|---|---|
2001 |
$2,627,031.40 |
$5,681,440.58 |
0.46 |
2002 |
$5,681,440.58 |
$5,681,440.58 |
1.00 |
2003 |
$8,705,066.67 |
$5,681,440.58 |
1.53 |
2004 |
$9,041,288.80 |
$5,681,440.58 |
1.59 |
Grand Total |
$26,054,827.45 |
$5,681,440.58 |
4.59 |
=SUMX( CALCULATETABLE('InternetSales_USD', 'DateTime'[CalendarYear]=2002)
, [SalesAmount_USD])