FILTER

Retorna uma tabela que representa um subconjunto de outra tabela ou expressão.

Sintaxe

FILTER(<table>,<filter>)  

Parâmetros

Termo Definição
tabela A tabela a ser filtrada. A tabela também pode ser uma expressão que resulta em uma tabela.
filter Uma expressão booliana a ser avaliada para cada linha da tabela. Por exemplo, [Amount] > 0 ou [Region] = "France"

Valor retornado

Uma tabela que contém apenas as linhas filtradas.

Comentários

  • Você pode usar FILTER para reduzir o número de linhas na tabela com a qual você está trabalhando e usar apenas dados específicos em cálculos. FILTER não é usado de maneira independente, mas como uma função que é inserida em outras funções que exigem uma tabela como um argumento.

  • Para obter as melhores práticas ao usar FILTE, confira Evitar usar FILTER como um argumento de filtro.

Usar COUNTROWS em vez de COUNT no DAX

  • Não há suporte para a função ser usada no modo DirectQuery quando usada em regras RLS (segurança em nível de linha) ou colunas calculadas.

Exemplo

O exemplo a seguir cria um relatório de vendas pela Internet fora dos Estados Unidos usando uma medida que filtra as vendas nos Estados Unidos e, em seguida, fatiando por ano civil e categorias de produtos. Para criar essa medida, filtre a tabela, Vendas pela Internet US$, usando a Região de Vendas e, em seguida, usa a tabela filtrada em uma função SUMX.

Neste exemplo, a expressão:

FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")

Retorna uma tabela que é um subconjunto de Vendas pela Internet menos todas as linhas que pertencem ao território de vendas dos Estados Unidos. A função RELATED é o que vincula a chave de território na tabela Vendas pela Internet para SalesTerritoryCountry na tabela SalesTerritory.

A tabela a seguir demonstra a prova de conceito da medida, Vendas pela Internet NÃO EUA, a fórmula para a qual é fornecida na seção de código abaixo. A tabela compara todas as vendas pela Internet com vendas da Internet não dos EUA, para mostrar que a expressão de filtro funciona, excluindo as vendas dos Estados Unidos do cálculo.

Para recriar essa tabela, adicione o campo SalesTerritoryCountry à área Rótulos de Linha de um relatório ou uma Tabela Dinâmica.

Tabela 1. Comparando as vendas totais para os EUA versus todas as outras regiões

Rótulos de linha Internet Sales Vendas pela Internet fora dos EUA
Austrália US$ 4.999.021,84 US$ 4.999.021,84
Canadá US$ 1.343.109,10 US$ 1.343.109,10
França US$ 2.490.944,57 US$ 2.490.944,57
Alemanha US$ 2.775.195,60 US$ 2.775.195,60
Reino Unido US$ 5.057.076,55 US$ 5.057.076,55
Estados Unidos US$ 9.389.479,79
Grande Total US$ 26.054.827,45 US$ 16.665.347,67

A tabela de relatório final mostra os resultados quando você cria uma Tabela Dinâmica usando a medida, Vendas pela Internet NÃO EUA. Adicione o campo, CalendarYear, à área Rótulos de Linha da Tabela Dinâmica e adicione o campo, ProductCategoryName, à área Rótulos de Coluna.

Tabela 2. Comparando vendas não dos EUA por categorias de produtos

Rótulos de linha Acessórios Bikes Clothing Grande Total
2005 US$ 1.526.481,95 US$ 1.526.481,95
2006 US$ 3.554.744,04 US$ 3.554.744,04
2007 US$ 156.480,18 US$ 5.640.106,05 US$ 70.142,77 US$ 5.866.729,00
2008 US$ 228.159,45 US$ 5.386.558,19 US$ 102.675,04 US$ 5.717.392,68
Grande Total US$ 384.639,63 US$ 16.107.890,23 US$ 172.817,81 US$ 16.665.347,67
SUMX(FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")  
     ,'InternetSales_USD'[SalesAmount_USD])  

Funções de filtro
Função ALL
Função ALLEXCEPT