CALCULATETABLE
Aplica-se a: Coluna calculada Tabela calculada Medida Cálculo visual
Avalia uma expressão de tabela em um contexto de filtro modificado.
Nota
Há também a função CALCULAR . Ele executa exatamente a mesma funcionalidade, exceto que modifica o contexto de filtro aplicado a uma expressão que retorna um valor escalar.
Sintaxe
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
Parâmetros
Termo | Definição |
---|---|
expressão | A expressão da tabela a ser avaliada. |
filter1, filter2,... | (Opcional) Expressões booleanas ou expressões de tabela que definem filtros ou funções modificadoras de filtro. |
A expressão usada como o primeiro parâmetro deve ser uma tabela modelo ou uma função que retorna uma tabela.
Os filtros podem ser:
- Expressões de filtro booleano
- Expressões de filtro de tabela
- Funções de modificação do filtro
Quando há vários filtros, eles são avaliados usando o operador lógico AND. Isso significa que todas as condições devem ser VERDADEIRAS ao mesmo tempo.
Expressões de filtro booleano
Um filtro de expressão booleana é uma expressão que é avaliada como VERDADEIRA ou FALSA. Existem várias regras que devem cumprir:
- Eles podem fazer referência a apenas uma única coluna.
- Não podem fazer referência a medidas.
- Eles não podem usar uma função CALCULATE aninhada.
A partir da versão de setembro de 2021 do Power BI Desktop, o seguinte também se aplica:
- Eles não podem usar funções que verificam ou retornam uma tabela, a menos que sejam passadas como argumentos para funções de agregação.
- Eles podem conter uma função de agregação que retorna um valor escalar.
Expressão do filtro de tabela
Um filtro de expressão de tabela aplica um objeto de tabela como um filtro. Pode ser uma referência a uma tabela de modelo, mas é mais provável que seja uma função que retorna um objeto de tabela. Você pode usar a função FILTER para aplicar condições de filtro complexas, incluindo aquelas que não podem ser definidas por uma expressão de filtro booleano.
Funções modificadoras de filtro
As funções do modificador de filtros permitem que você faça mais do que simplesmente adicionar filtros. Eles fornecem controle adicional ao modificar o contexto do filtro.
Function | Propósito |
---|---|
REMOVERFILTROS | Remova todos os filtros ou filtros de uma ou mais colunas de uma tabela ou de todas as colunas de uma única tabela. |
TODOS OS 1, ALLEXCEPT, ALLNOBLANKROW | Remova filtros de uma ou mais colunas ou de todas as colunas de uma única tabela. |
MANTERFILTROS | Adicione filtro sem remover filtros existentes nas mesmas colunas. |
USERELACIONAMENTO | Envolva uma relação inativa entre colunas relacionadas, caso em que a relação ativa se tornará automaticamente inativa. |
FILTRO CRUZADO | Modifique a direção do filtro (de ambos para um ou de um para ambos) ou desative uma relação. |
1 A função ALL e suas variantes se comportam como modificadores de filtro e como funções que retornam objetos de tabela. Se a função REMOVEFILTERS for suportada pela sua ferramenta, é melhor usá-la para remover filtros.
Valor devolvido
Uma tabela de valores.
Observações
Quando expressões de filtro são fornecidas, a função CALCULATETABLE modifica o contexto do filtro para avaliar a expressão. Para cada expressão de filtro, há dois resultados padrão possíveis quando a expressão de filtro não é encapsulada na função KEEPFILTERS:
- Se as colunas (ou tabelas) não estiverem no contexto do filtro, novos filtros serão adicionados ao contexto do filtro para avaliar a expressão.
- Se as colunas (ou tabelas) já estiverem no contexto do filtro, os filtros existentes serão substituídos pelos novos filtros para avaliar a expressão CALCULATETABLE.
Esta função não é suportada para utilização no modo DirectQuery quando utilizada em colunas calculadas ou regras de segurança ao nível da linha (RLS).
Exemplo
O exemplo a seguir usa a função CALCULATETABLE para obter a soma das vendas pela Internet para 2006. Este valor é posteriormente utilizado para calcular o rácio das vendas pela Internet em comparação com todas as vendas para o ano de 2006.
A seguinte fórmula:
= SUMX(
CALCULATETABLE(
'InternetSales_USD',
'DateTime'[CalendarYear] = 2006
),
[SalesAmount_USD]
)
Isso resulta na tabela a seguir:
Rótulos de linha | Internet SalesAmount_USD | CalculateTable 2006 Vendas pela Internet | Relação Vendas pela Internet para 2006 |
---|---|---|---|
2005 | $2.627.031,40 | $5.681.440,58 | 0,46 |
2006 | $5.681.440,58 | $5.681.440,58 | 1,00 |
2007 | $8,705,066.67 | $5.681.440,58 | 1.53 |
2008 | $9.041.288,80 | $5.681.440,58 | 1.59 |
Total Geral | $26.054.827,45 | $5.681.440,58 | 4.59 |