Usando a função FILTER no DAX
- Nathália
- 13 de fev. de 2021
- 2 min de leitura
Atualizado: 19 de mar. de 2021
DAX é a linguagem de programação utilizada para criar indicadores dentro do power BI. Nesse post vamos ensina-los como usar a função FILTER. Vamos lá ?
Nesse exemplo, vamos utilizar uma conexão com o SQL Server local e o Banco de dados AdventureWorks que está disponível no site da Microsoft (clique aqui para baixar a base de dados do AdventureWorks)
1º Passo: Criando uma métrica
Por boa prática você deve criar uma métrica no power BI, para isso basta ir com o botão direito em cima da tabela e clicar em “Nova medida”.

Irá aparecer uma janela, nessa tela você consegue colocar as formulas na linguagem DAX para criação de seus indicadores.
Vamos começar fazendo uma contagem de empregados. Para isso , digite o código abaixo e aperte enter em seguida:
Qtd Employee = COUNT(Employee[BusinessEntityID])
Observe no seu lado direito que na guia campos irá aparecer a métrica que criamos.

2º Passo: Usando a função Filter
Vamos criar uma segunda métrica e filtrar somente os funcionários que trabalhem no departamento Produção.
Qtd Employee = CALCULATE([Qtd Employee],FILTER('Employee Department', 'Employee Department'[Department] ="Production"))
Observe que conseguimos aproveitar a primeira métrica criamos com a função CALCULATE utilizada anteriormente conseguimos mudar o contexto da métrica.
3º Passo: selecione a métrica criada e depois selecione a visualização de tabela.
Resultado: nossa métrica só retorna dados do Departamento “Production”.

Bônus 1 : IN, AND e OR
Dentro do Operador FILTER podemos adicionar outras condições com AND, OR, IN ou filtrar por outras colunas da tabela que incluímos no FILTER.
Qtd Employee Document Control and Production = CALCULATE([Qtd Employee],FILTER('Employee Department', 'Employee Department'[Department] IN {"Production","Document Control"}) )

Abaixo segue mais alguns exemplos utilizando a função Filter:
Utilizando a função OR (||)
Qtd Employee Production = CALCULATE([Qtd Employee],FILTER('Employee Department', 'Employee Department'[Department] IN {"Production","Document Control"} ||'Employee Department'[GroupName] = "Inventory Management" ))

Utilizando a função AND(&&)
Qtd Employee Production = CALCULATE([Qtd Employee],FILTER('Employee Department', 'Employee Department'[Department] IN {"Finance"} && 'Employee Department'[GroupName] = "Executive General and Administration" ))

Bônus 2 : Filtro em tabelas diferentes
No Exemplo abaixo estamos criando uma métrica utilizando a função filter em duas tabelas diferentes.
Qtd Employee Production =
CALCULATE([Qtd Employee],
FILTER('Employee Department', 'Employee Department'[Department] IN {"Finance"}
&& 'Employee Department'[GroupName] = "Executive General and Administration"
),
FILTER('Employee Department History',
'Employee Department History'[Department] = "Finance"
)
)

Gostaram do resultado ?
Incentive a criação de conteúdos gratuitos compartilhando esse post com um amigo e siga o nosso instagram para mais dicas @eunati_net
Para não perder nenhuma novidade, se inscreva em nossa lista de e-mails.
Para impulsionar sua carreira, agende sua aula como nossos analistas !
Preços promocionais para turmas com 2 ou mais alunos!
Comentarios