FILTER
Aplica-se a:Coluna calculadaTabela calculadaMedidaCálculo visual
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])