Filtrar dados em fórmulas DAX

Observação: Desejamos fornecer o conteúdo da Ajuda mais recente no seu idioma da forma mais rápida possível. Esta página foi traduzida de forma automatizada e pode conter imprecisões ou erros gramaticais. Nosso objetivo é que este conteúdo seja útil para você. As informações foram úteis? Dê sua opinião no final desta página. Aqui está o artigo em inglês para facilitar a referência.

Esta seção descreve como criar filtros em fórmulas de Data Analysis Expressions (DAX). Você pode criar filtros em fórmulas para restringir os valores dos dados de origem que são usados em cálculos. Você faz isso especificando uma tabela como uma entrada para a fórmula e, em seguida, definindo uma expressão de filtro. A expressão de filtro que você fornece é usada para consultar os dados e retornar apenas um subconjunto dos dados de origem. O filtro é aplicado dinamicamente toda vez que você atualiza os resultados da fórmula, dependendo do contexto atual dos seus dados.

Neste artigo

Criando um filtro em uma tabela usada em uma fórmula

Filtros que removem duplicatas

Como o contexto afeta filtros

Removendo filtros

Substituindo todos os filtros com a função ALL

Substituindo filtros específicos com a função ALLEXCEPT

Criando um filtro em uma tabela usada em uma fórmula

Você pode aplicar filtros em fórmulas que usam uma tabela como entrada. Em vez de inserir um nome de tabela, você usa a função FILTER para definir um subconjunto de linhas da tabela especificada. Em seguida, esse subconjunto é transmitido a outra função, para operações como agregações personalizadas.

Por exemplo, suponha que você tenha uma tabela de dados contendo informações de pedidos sobre revendedores e queira calcular quanto cada um desses revendedores vendeu. Porém, você quer mostrar o valor de vendas apenas para os revendedores que venderam várias unidades dos seus produtos mais caros. A fórmula a seguir, baseada em uma pasta de trabalho de amostra DAX, mostra um exemplo de como você pode criar esse cálculo usando um filtro:

= SUMX (
     FILTER (' ResellerSales_USD ', ' ResellerSales_USD ' [quantidade] > 5 &&
     ' ResellerSales_USD ' [ProductStandardCost_USD] > 100),
     ' ResellerSales_USD ' [SalesAmt]
     )

  • A primeira parte da fórmula especifica uma das funções de agregação de Power Pivot, que usa uma tabela como um argumento. SUMX calcula uma soma sobre uma tabela.

  • A segunda parte da fórmula, FILTER(table, expression),informa ao SUMX quais dados usar. SUMX requer uma tabela ou expressão que resulte em uma tabela. Aqui, em vez de usar todos os dados em uma tabela, você usa a função FILTER para especificar quais linhas da tabela serão usadas.

    A expressão de filtro tem duas partes: a primeira parte nomeia a tabela à qual o filtro se aplica. A segunda parte define uma expressão a ser usada como a condição de filtro. Nesse caso, você está filtrando em revendedores que vendeu mais de 5 unidades e produtos que custam mais de $100. O operador, &&, é um operador lógico e, que indica que ambas as partes da condição devem ser verdadeiras para que a linha pertença ao subconjunto filtrado.

  • A terceira parte da fórmula informa à função SUMX quais valores devem ser somados. Nesse caso, você está usando apenas o valor de vendas.

    Observe que funções como filtro, que retornam uma tabela, nunca retornam a tabela ou linhas diretamente, mas são sempre inseridas em outra função. Para obter mais informações sobre filtros e outras funções usadas para filtragem, incluindo mais exemplos, consulte funções de filtro (DAX).

    Observação: A expressão de filtro é afetada pelo contexto no qual ela é usada. Por exemplo, se você usar um filtro em uma medida, e esta for usada em uma Tabela Dinâmica ou em um Gráfico Dinâmico, talvez o subconjunto de dados retornado seja afetado por filtros adicionais ou segmentações de dados que o usuário tenha aplicado à Tabela Dinâmica. Para saber mais sobre contexto, veja o tópico sobre contexto em fórmulas DAX.

Filtros que removem duplicatas

Além de filtrar valores específicos, você pode retornar um conjunto exclusivo de valores de outra tabela ou coluna. Isso pode ser útil quando você deseja contar o número de valores exclusivos em uma coluna ou usar uma lista de valores exclusivos para outras operações. DAX fornece duas funções para retornar valores distintos: função DISTINCT e função valores.

  • A função DISTINCT examina uma única coluna que você especifica como argumento para essa função e retorna uma nova coluna contendo apenas os valores distintos.

  • A função valores também retorna uma lista de valores exclusivos, mas também retorna o membro desconhecido. Isso é útil quando você usa valores de duas tabelas que são unidas por uma relação, e um valor está ausente em uma tabela e presente no outro. Para obter mais informações sobre o membro desconhecido, consulte contexto em fórmulas DAX.

Ambas as funções retornam uma coluna inteira de valores e, portanto, você pode usá-las para obter uma lista de valores que, em seguida, é transmitida a outra função. Por exemplo, é possível usar a seguinte fórmula para obter uma lista de produtos distintos vendidos por um determinado revendedor, usando a chave de produto exclusiva, e depois contar os produtos nessa lista usando a função COUNTROWS:

= COUNTROWS (DISTINCT (' ResellerSales_USD ' [ProductKey]))

Início da página

Como o contexto afeta filtros

Quando você adiciona uma fórmula DAX a uma tabela dinâmica ou gráfico dinâmico, os resultados da fórmula podem ser afetados pelo contexto. Se você estiver trabalhando em uma tabela do Power Pivot, o contexto será a linha atual e seus valores. Se você estiver trabalhando em uma tabela dinâmica ou gráfico dinâmico, o contexto significa o conjunto ou subconjunto de dados definido por operações como divisão ou filtragem. O design da tabela dinâmica ou do gráfico dinâmico também impõe seu próprio contexto. Por exemplo, se você criar uma tabela dinâmica que agrupe as vendas por região e ano, apenas os dados que se aplicam a essas regiões e anos aparecerão na tabela dinâmica. Portanto, qualquer medida que você adicionar à tabela dinâmica é calculada no contexto dos títulos de coluna e linha, além de todos os filtros na fórmula de medida.

Para saber mais, veja o tópico sobre contexto em fórmulas DAX.

Início da página

Removendo filtros

Ao trabalhar com fórmulas complexas, talvez você queira saber exatamente quais são os filtros atuais ou queira modificar a parte de filtros dessas fórmulas. O DAX fornece várias funções que permitem remover filtros e controlar quais colunas são mantidas como parte do contexto de filtro atual. Esta seção fornece uma visão geral de como essas funções afetam resultados em um fórmula.

Substituindo todos os filtros com a função ALL

Você pode usar a função ALL para substituir quaisquer filtros que foram aplicados anteriormente e retornar todas as linhas da tabela à função que está executando a agregação ou outra operação. Se você usar uma ou mais colunas, em vez de uma tabela, como argumentos para ALL, a função ALL retornará todas as linhas, ignorando todos os filtros de contexto.

Observação: Caso você já esteja familiarizado com a terminologia de bancos de dados relacionais, pode imaginar ALL com gerando uma junção externa esquerda natural de todas as tabelas.

Por exemplo, suponha que você tenha as tabelas Sales e Products e queira criar uma fórmula que irá calcular a soma das vendas do produto atual dividida pelas vendas de todos os produtos. É necessário levar em consideração o fato de que, se a fórmula for usada em uma medida, o usuário da Tabela Dinâmica talvez esteja usando uma segmentação de dados para filtrar um produto específico, com o nome do produto nas linhas. Portanto, para obter o valor real do denominador, independentemente de filtros ou segmentações de dados, você deve adicionar a função ALL para substituir qualquer filtro. A fórmula a seguir é um exemplo de como usar ALL para substituir os efeitos de filtros anteriores:

= SOMA (vendas [valor])/SUMX (vendas [valor], filtro (vendas, todos (produtos)))

  • A primeira parte da fórmula, SUM (Sales[Amount]), calcula o numerador.

  • A soma leva em consideração o contexto atual, significando que, se você adicionar a fórmula a uma coluna calculada, o contexto de linha será aplicado e, se adicionar a fórmula a uma Tabela Dinâmica como uma medida, todos os filtros aplicados a essa Tabela Dinâmica (o contexto de filtro) serão aplicados.

  • A segunda parte da fórmula, calcula o denominador. A função ALL substitui todos os filtros que podem ser aplicados à tabela Products .

Para obter mais informações, incluindo exemplos detalhados, consulte função All.

Substituindo filtros específicos com a função ALLEXCEPT

A função doEXCEPT também substitui os filtros existentes, mas você pode especificar que alguns dos filtros existentes devem ser preservados. As colunas que você nomear como argumentos para a função subEXCEPT especificam quais colunas continuarão a ser filtradas. Se você quiser substituir os filtros da maioria das colunas, mas nem todos, todos, exceto são mais convenientes do que todos. A função doEXCEPT é particularmente útil quando você está criando tabelas dinâmicas que podem ser filtradas em muitas colunas diferentes, e você deseja controlar os valores que são usados na fórmula. Para obter mais informações, incluindo um exemplo detalhado de como usar createEXCEPT em uma tabela dinâmica, consulte função alexcept.

Início da Página

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×