CALCULATETABLE
aplica-se a:coluna calculadatabela calculadaMeasurecálculo visual
Avalia uma expressão de tabela em um contexto de filter modificado.
Nota
Há também a função CALCULATE. Ele executa exatamente a mesma funcionalidade, except modifica o contexto filter aplicado a uma expressão que retorna um escalar value.
Sintaxe
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
Parâmetros
Prazo | Definição |
---|---|
expression |
A expressão de tabela a ser avaliada. |
filter1, filter2,… |
(Opcional) Expressões boolianas or expressões de tabela que definem filters, orfilter funções modificadoras. |
A expressão usada como parâmetro first deve ser uma tabela de modelo or uma função que retorna uma tabela.
Filters pode ser:
- Expressões de filter boolianas
- Expressões de filter de tabela
- Filter funções de modificação
Quando há vários filters, eles são avaliados usando o operador lógico AND. Isso significa que all condições devem ser TRUE
ao mesmo time.
Expressões de filter boolianas
Uma expressão booliana filter é uma expressão que é avaliada como TRUE
orFALSE
. Há várias regras que elas devem cumprir:
- Eles podem referenciar apenas uma única coluna.
- Eles não podem referenciar medidas.
- Eles não podem usar uma função de 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 or 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 valueescalar.
Expressão filter de tabela
Uma expressão de tabela filter aplica um objeto de tabela como um filter. 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 filter complexas, incluindo aquelas que não podem ser definidas por uma expressão booliana filter.
Filter funções modificadoras
Filter funções modificadoras permitem que você faça mais do que simplesmente adicionar filters. Eles fornecem controle adicional ao modificar filter contexto.
Função | Propósito |
---|---|
REMOVEFILTERS | Remova allfilters, orfilters de uma or mais colunas de uma tabela, or de all colunas de uma única tabela. |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | Remova filters de uma or mais colunas, or de colunas all de uma única tabela. |
KEEPFILTERS | Adicione filter sem remover filters existentes nas mesmas colunas. |
USERELATIONSHIP | Envolva uma relação inativa entre colunas de related, caso em que a relação ativa ficará automaticamente inativa. |
CROSSFILTER | Modificar filter direção (de ambos para único, or de único para ambos) or desabilitar uma relação. |
1 A função ALLand suas variantes se comportam como modificadores filterand como funções que retornam objetos de tabela. If a função REMOVEFILTERS é compatível com sua ferramenta, é melhor usá-la para remover filters.
Retornar value
Uma tabela de values.
Observações
Quando filter expressões são fornecidas, a função CALCULATETABLE modifica o contexto filter para evaluate a expressão. Para cada expressão filter, há dois resultados padrão possíveis quando a expressão filter é not encapsulada na função KEEPFILTERS:
- If as colunas (or tabelas) não estiverem no contexto filter, o novo filters será adicionado ao contexto filter para evaluate a expressão.
- If as colunas (tabelasor) já estiverem no contexto filter, o filters existente será substituído pelo novo filters para evaluate a expressão CALCULATETABLE.
Essa função not tem suporte para uso no modo DirectQuery quando usada em colunas calculadas or regras de RLS (segurança em nível de linha).
Exemplo
O exemplo a seguir usa a função CALCULATETABLE para obter o sum de vendas pela Internet para 2006. Esse value é usado posteriormente para calculate a taxa de vendas pela Internet em comparação com as vendas de all para o year 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 vendas pela Internet em 2006 | Taxa de 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 | US$ 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 |
Related conteúdo
- de contexto
- função CALCULATE (DAX)
- Funções Filter (DAX)