Filtrar dados em fórmulas DAX

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

Esta seção descreve como criar filtros em fórmulas de expressões de análise de dados (DAX). Você pode criar filtros dentro de fórmulas, para restringir os valores dos dados de origem que são usados em cálculos. Você pode fazer isso especificando uma tabela como entrada para a fórmula e, em seguida, definindo uma expressão de filtro. A expressão de filtro que você fornecer é usada para os dados da consulta e retornar apenas um subconjunto dos dados de origem. O filtro é aplicado dinamicamente cada 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 (
filtro ('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 em uma tabela.

  • A segunda parte da fórmula, FILTER(table, expression),informa ao SUMX quais dados a serem usados. SUMX requer uma tabela ou uma expressão que resulta em uma tabela. Aqui, em vez de usar todos os dados em uma tabela, use a função FILTER para especificar qual das linhas da tabela serão usados.

    A expressão filtro tem duas partes: a primeira parte nomes a tabela à qual o filtro se aplica. A segunda parte define uma expressão para usar como a condição do filtro. Nesse caso, você está filtrando revendedores que vendeu mais de 5 unidades e produtos que custam mais de r $100. O operador, & &, é um operador lógico AND, que indica que duas partes da condição devem ser verdadeiras para a linha deve pertencer 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 FILTER, que retornam uma tabela, nunca retornam a tabela ou as linhas diretamente, mas sempre estão inseridas em outra função. Para saber mais sobre FILTER 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 em busca de valores específicos, é possível retornar um conjunto exclusivo de valores de outra tabela ou coluna. Isso pode ser útil quando você quer contar o número de valores exclusivos em uma coluna ou usar uma lista de valores exclusivos para outras operações. O DAX fornece duas funções para o retorno de valores distintos: a Função DISTINCT e a Função VALUES.

  • 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 de 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 associadas por uma relação e um valor está ausente em uma tabela e presentes na outra. 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 de Power Pivot, o contexto é a linha atual e seus valores. Se você estiver trabalhando em uma tabela dinâmica ou gráfico dinâmico, o contexto significa que o conjunto ou subconjunto de dados definido pelo operações como divisão ou filtragem. O design da tabela dinâmica ou gráfico dinâmico também impõe seu próprio contexto. Por exemplo, se você criar uma tabela dinâmica que agrupa as vendas por região e o ano, somente os dados que se aplica a essas regiões e anos aparecem na tabela dinâmica. Portanto quaisquer medidas que você adicionar à tabela dinâmica são calculadas no contexto de títulos de coluna e linha além de quaisquer 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 na tabela para a função que está realizando a operação de agregação ou outra. Se você usar uma ou mais colunas, em vez de uma tabela, como argumentos para ALL, a função de ALL retorna todas as linhas, ignorando qualquer 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 [Quantidade]) / SUMX (vendas [Quantidade], filtro (vendas, ALL(Products)))

  • 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 quaisquer filtros que podem ser aplicados à tabela Products .

Para saber mais e também ver exemplos detalhados, confira o tópico sobre a função ALL.

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

A função ALLEXCEPT também substitui filtros existentes, mas você pode especificar que alguns desses filtros devem ser preservados. As colunas nomeadas como argumentos para a função ALLEXCEPT especificam quais colunas continuarão a ser filtradas. Se você quer substituir filtros da maioria das colunas, mas não de todas, ALLEXCEPT é mais conveniente que ALL. A função ALLEXCEPT é particularmente útil quando você está criando Tabelas Dinâmicas que podem ser filtradas em várias colunas diferentes e quer controlar os valores usados na fórmula. Para saber mais e ver um exemplo detalhado de como usar a função ALLEXCEPT em uma Tabela Dinâmica, confira o tópico sobre a função ALLEXCEPT.

Início da página

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Expanda suas habilidades
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.

×