Joviano

Bem vindo ao

Blog do Jovi!

O blog do Jovi tem como objetivo ajudar você com suas dúvidas, além de expandir seu conhecimento através da informação.

Filtrar Linhas com vários CONTÉM no Power Query

Se você já se viu numa planilha enorme, cheia de dados, e precisou filtrar várias linhas que contêm fragmentos de texto específicos, provavelmente bateu de frente com o OR no Power Query. Vamos ser sinceros: o “OR” pode até funcionar, mas quando você precisa fazer filtros com muitos “contém” (ou like, como diríamos em SQL), o resultado pode ser bem frustrante — lentidão, filas intermináveis de processamento e uma performance que só desanima.

Mas calma, porque tem jeito de evitar essa dor de cabeça. A sacada está em criar uma lista de fragmentos, em vez de ficar usando OR repetidamente, e fazer uma varredura eficiente com a função certa. E isso tudo sem precisar duplicar suas linhas ou gastar tempo precioso. É sobre isso que a gente vai falar neste artigo: como filtrar linhas no Power Query usando uma lista de “contém”, sem comprometer a performance, deixando o OR para trás.

O Problema: A Lentidão do “OR” e o Desafio de Filtrar Vários Fragmentos

Imagine o seguinte cenário: você tem uma tabela gigante, com milhares de linhas, e precisa filtrar todas as ocorrências de fragmentos específicos em uma coluna de texto. Pode ser uma lista de produtos, descrições de transações ou até registros de notas fiscais. Você precisa encontrar linhas que contenham termos como “ano”, “jov”, “ET”, entre outros. O desafio é que esses fragmentos podem aparecer em qualquer parte do texto, e você quer apenas as linhas onde eles estão presentes.

O jeito tradicional que muita gente tenta primeiro é o bom e velho OR no Power Query. E aí o que acontece? A consulta fica mais lenta do que um trânsito na hora do rush. O Power Query, ao utilizar o OR repetidamente, acaba verificando cada fragmento individualmente, um por um, em todas as linhas da tabela. Aí, meu amigo, se você tem uma quantidade grande de dados e de fragmentos para filtrar, já pode se preparar para esperar.

Mas o OR não é o único caminho. E nem o melhor. O problema todo está em como ele processa as informações — o Power Query acaba repetindo o trabalho várias vezes, linha por linha, o que é totalmente ineficiente. O que você precisa é de uma solução que faça a verificação de todos esses fragmentos de uma vez só e com desempenho otimizado.

1. Modo Fácil: Filtrando Fragmentos com Expansão de Linhas

No modo fácil, a solução é bem direta e simples de aplicar. O foco aqui é expandir as linhas da tabela de forma que cada linha seja duplicada para cada fragmento de texto que você está buscando. Pode parecer meio “bruto”, mas é efetivo para situações em que o volume de dados não é um problema tão grande.

Passo a Passo:

  • Primeiro, você adiciona uma coluna de índice para garantir que cada linha tenha uma identificação única.
  • Depois, cria uma nova coluna que repete a lista de fragmentos que você quer buscar em todas as linhas da tabela.
  • Ao expandir essa nova coluna, cada fragmento aparece repetidamente em todas as linhas, o que permite você aplicar o filtro sem precisar mexer diretamente nos dados originais.
  • O último passo é remover as duplicatas e filtrar apenas as linhas que contêm os fragmentos desejados.

Esse processo é muito útil quando você precisa de resultados rápidos e está lidando com um volume de dados moderado. No entanto, como ele cria muitas linhas duplicadas, o desempenho pode sofrer em tabelas maiores.

Esse “todos para todos” fiz nesse vídeo, em um exemplo de criação de tabela de campeonato de futebol.

2. Modo Avançado: Loop com Linguagem M

Agora, se você já está em um nível mais avançado e quer uma solução mais robusta, a linguagem M do Power Query pode salvar o dia. Aqui, utilizamos loops para fazer o trabalho pesado. A ideia é verificar cada fragmento, filtrando as linhas da tabela uma a uma, sem a necessidade de duplicar dados.

Vantagens:

  • Eficiência: O loop vai passando pelos dados e filtrando fragmentos de maneira seletiva, mantendo apenas as linhas necessárias.
  • Performance: Em tabelas com milhares de linhas, essa abordagem é mais rápida, pois não duplica as informações.
  • Flexibilidade: Você pode aplicar isso em diferentes cenários de busca, sejam números ou pedaços de texto.

Como funciona: O loop faz com que o Power Query percorra cada fragmento de texto e compare com as linhas da tabela. As linhas que contém o fragmento são mantidas, enquanto as outras são descartadas. E o melhor de tudo: o processo vai “limpando” a tabela a cada rodada, o que melhora o desempenho.

Mas, claro, essa técnica exige um conhecimento mais profundo da linguagem M, pois estamos trabalhando diretamente com código. Não se assuste: para quem está familiarizado com o básico do Power Query, é um pequeno passo para aprender e aplicar loops.

Aqui nessa playlist falo mais sobre loops no Power Query.

3. Filtragem com Funções de Lista: Simplicidade + Eficiência

A terceira solução une o melhor dos dois mundos: a simplicidade da primeira abordagem com o poder das funções de lista, algo que ainda é muito subutilizado no Power Query, mas que pode salvar vidas — ou, no mínimo, transformar completamente a maneira como você filtra grandes volumes de dados.

Aqui, a mágica acontece ao usar listas e a função List.AnyTrue, que faz uma varredura em cada linha para verificar se qualquer fragmento da sua lista aparece ali. Parece simples? E é! Essa solução traz a eficiência de filtrar sem precisar duplicar linhas ou rodar loops complexos, e você ainda mantém o desempenho da sua planilha nas alturas.

Como funciona:

  • Primeiro, você cria uma lista com os fragmentos de texto que deseja buscar. Em vez de aplicar filtros individuais com “contém” e “OR” — o que, como vimos, é muito ineficiente —, você cria uma coluna que verifica cada fragmento.
  • A função List.AnyTrue entra em ação para percorrer sua lista e retornar “verdadeiro” para qualquer linha que contenha pelo menos um dos fragmentos. Ou seja, se qualquer parte do texto bater com algum dos seus fragmentos, aquela linha é mantida no resultado final.

Essa abordagem é uma solução extremamente eficiente para quem trabalha com grandes volumes de dados. Ela combina a simplicidade de não precisar mexer em código complexo com a força das funções de lista, que muitas vezes passam despercebidas, mas são capazes de transformar completamente o jeito como você faz suas análises no Power Query.

O Power Query Vai Além do Clique do Mouse: Desbloqueie o Potencial da Linguagem M

Muita gente se acostuma a usar o Power Query apenas com o clique do mouse, arrastando e soltando campos, criando colunas e aplicando filtros básicos. Isso já ajuda bastante e resolve boa parte dos problemas do dia a dia. Mas o Power Query tem muito mais a oferecer do que simples interações visuais. Por trás dessa interface amigável, existe um mundo inteiro de possibilidades esperando para ser explorado — e ele se chama linguagem M.

A linguagem M abre as portas para personalizações e automações que você nem imaginava serem possíveis. Com ela, você pode:

  • Criar filtros e regras muito mais eficientes do que os disponíveis na interface.
  • Automatizar processos que exigiriam dezenas de cliques, tornando-os rápidos e dinâmicos.
  • Aplicar funções avançadas que deixam suas consultas mais poderosas e otimizadas, especialmente em grandes volumes de dados.

Ao explorar o que a linguagem M pode fazer, você passa a controlar o Power Query de verdade, expandindo suas funcionalidades e otimizando cada aspecto do seu trabalho. É como sair da “superfície” e mergulhar fundo em um oceano de oportunidades.

Automatizando com a Formação Power Query 2.0

Se você quer realmente dominar o Power Query e deixar o clique do mouse para tarefas básicas, a Formação Power Query 2.0 é o próximo passo. Nesta formação, você vai aprender não só a criar filtros eficientes como os que mostramos aqui, mas também a explorar toda a potência da linguagem M, SQL, DAX e até Python para automatizar tarefas complexas com facilidade.

E o melhor de tudo: essa aula sobre como filtrar linhas no Power Query com múltiplos “contém” usando funções de lista está disponível exclusivamente na Formação Power Query 2.0. Além disso, você terá acesso a uma série de conteúdos que vão te levar ao próximo nível, seja automatizando consultas, construindo dashboards complexos ou otimizando o desempenho das suas planilhas de maneira profissional.

vários contém no power query

Se você está cansado de perder tempo com cliques e quer realmente turbinar suas habilidades, essa é a hora de dar o próximo passo.

Conclusão

Automatizar filtros no Power Query é uma necessidade crescente para quem trabalha com grandes volumes de dados. A possibilidade de transformar uma tarefa manual em um processo automático pode fazer toda a diferença na sua produtividade. Com as técnicas que exploramos — seja o modo básico, o loop avançado ou a filtragem com listas —, você está preparado para enfrentar qualquer desafio de filtragem de dados no Power Query.

Continue aprendendo e, se você ainda não faz parte da nossa comunidade, considere se inscrever na Formação Power Query 2.0 para dominar de vez essas e outras técnicas que vão te poupar tempo e dores de cabeça no futuro.

Forte Abraço

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Receba conteúdos do Jovi!

Digite seu interesse abaixo:

Quer Aprender sobre Power Query?

Conheça nossa formação e tudo que você pode aprender com ela.

Mais conteúdos gratuitos para você!

Power Query

Coluna Dinâmica: Python versus Power Query

Transformar dados brutos em informações organizadas é uma habilidade fundamental para quem trabalha com análise de dados. Se você precisa reorganizar uma tabela, onde os meses devem se tornar colunas

Leia mais

Quem sabe AUTOMATIZAR, ganha mais $

OPA, vejo que você é novo por aqui!

Temos um presente de boas vindas para os amantes de Blog!

E ai FERA?!

Não vou atrapalhar tua leitura deste super artigo.

Só quero te dizer que por ser um visitante novo aqui no site, nosso sistema está programado para te enviar um cupom de desconto para a FORMAÇÃO POWER QUERY 2.0, que é um pacotão de cursos do JOVI, com mais de 300 horas de conteúdo.

Informe seus dados a seguir, que te enviaremos as instruções para resgate desse cupom exclusivo.

Após enviar, pode fechar essa janela, que seu presente já está em processamento.

MUITO + que Power Query

Aprenda também SQL, DAX, Python e outras ferramentas que vão te fazer assumir posição de destaque em sua empresa.

Solicite a EMENTA CURRICULAR da FORMAÇÃO