Partilhar via


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 modifica o contexto aplicado a uma expressão que retorna um escalar .

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 TRUEorFALSE. 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