CALCULATETABLE
Aplica-se a:Coluna calculadaTabela calculadaMeasureCálculo visual
Avalia uma expressão de tabela em um contexto de filter modificado.
Observação
Há também a função CALCULATE. Ele executa exatamente a mesma funcionalidade
Sintaxe
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
Parâmetros
Vigência | Definição |
---|---|
expression |
A expressão da tabela a ser avaliada. |
filter1, filter2,… |
(Opcional) Expressões booleanas or expressões de tabela que definem filters, orfilter funções modificadoras. |
A expressão usada como parâmetro first deve ser uma tabela modelo or uma função que retorna uma tabela.
Filters pode ser:
- Expressões filter booleanas
- Tabela filter expressões
- 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 filter booleanas
Uma expressão booleana filter é uma expressão que avalia a TRUE
orFALSE
. 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 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 uma valueescalar.
Tabela filter expressão
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 de filter complexas, incluindo aquelas que não podem ser definidas por uma expressão filter booleana.
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 | Finalidade |
---|---|
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 all colunas de uma única tabela. |
KEEPFILTERS | Adicione filter sem remover filters existentes nas mesmas colunas. |
USERELATIONSHIP | Envolva uma relação inativa entre related colunas, caso em que a relação ativa se tornará automaticamente inativa. |
CROSSFILTER | Modifique filter direção (de ambos para únicos, or de único para ambos) or desative um relacionamento. |
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 for suportada pela sua ferramenta, é melhor usá-la para remover filters.
Regresso value
Uma tabela de values.
Comentários
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, novas filters serão adicionadas ao contexto filter para evaluate a expressão.
- If as colunas (or tabelas) já estiverem no contexto filter, o filters existente será substituído pelo novo filters para evaluate a expressão CALCULATETABLE.
Esta função not é suportada para uso no modo DirectQuery quando usada em colunas calculadas or regras de segurança em nível de linha (RLS).
Exemplo
O exemplo a seguir usa a função CALCULATETABLE para obter o sum de vendas pela Internet para 2006. Este value é mais tarde utilizado para calculate o rácio das vendas pela Internet em comparação com as vendas de all no 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 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 |