top of page

Usando a função FILTER no DAX

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”.




Clique com o botão direito do mouse e depois em nova medida
Criando uma nova medida no Power BI

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.

Exibição da medida criada anteriormente
Nova medida Qtde Employee criada com sucesso

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”.



Exibindo os dados filtrados em uma tabela
Exibindo os dados filtrados em uma tabela

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"}) )

Exibindo os dados filtrados com IN em uma tabela
Exibindo os dados filtrados com IN em uma tabela

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" )) 

Exibindo os dados filtrados com IN e OR em uma tabela
Exibindo os dados filtrados com IN e OR em uma tabela

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" ))
 

Exibindo os dados filtrados com AND em uma tabela
Exibindo os dados filtrados com AND em uma tabela


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" 
 ) 
    ) 
 

Resultado do filtro em tabelas diferentes
Resultado do filtro em tabelas diferentes

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


INFORMAÇÕES IMPORTANTES:

Somos uma empresa totalmente digital. Utilize nosso formulário de contato que nossa equipe retornara a mensagem o mais breve possível por e-mail, celular ou whatsapp.Se preferir, mande um direct pelo nosso Instagram ( @eunati_net )

  • Instagram
Logo escrito em azul eunaTI com fundo branco

© 2021 - Gerando resultados com base em dados

bottom of page