Ler em inglês

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