mygems

Como filtrar um arquivo CSV e manter só as linhas de que você precisa

Filtre um CSV por valor, intervalo ou várias condições e salve só essas linhas. Excel, Sheets, linha de comando e celular, com as armadilhas de cada um.

Por mygems ·

Filtrar um CSV são dois trabalhos que as pessoas tratam como um só: ver apenas as linhas que correspondem e salvar apenas essas linhas em um novo arquivo. Toda ferramenta faz bem o primeiro. O segundo é onde estão as armadilhas, porque uma planilha que mostra 40 linhas filtradas vai salvar tranquilamente as 40.000.

A resposta rápida

  • Ver as linhas que correspondem: Excel ou Sheets, Dados → Filtro, escolha os valores.
  • Salvar só as linhas que correspondem: filtre, selecione as linhas visíveis, copie para uma nova planilha e salve essa. Ou use uma ferramenta que grave o resultado filtrado diretamente.
  • Arquivo grande ou tarefa repetida: um único comando, csvgrep, mlr ou DuckDB, mais abaixo.
  • No celular: um app de CSV com um painel de filtros de verdade, para você não fazer isso em uma planilha convertida.

No Excel

  1. Clique em qualquer célula dos dados e pressione Ctrl+Shift+L (⌘+Shift+F no Mac), ou vá em Dados → Filtro.
  2. Use a seta no cabeçalho de uma coluna para escolher valores, ou Filtros de Número / Filtros de Texto para condições como maior que ou contém.
  3. Combine filtros entre colunas: cada um restringe ainda mais o resultado.

Para salvar apenas as linhas filtradas: selecione o intervalo visível, copie, cole em uma nova planilha e salve essa como CSV. Quando você copia um intervalo com um AutoFiltro aplicado, o Excel copia só as linhas visíveis.

A armadilha: salvar a própria planilha filtrada como CSV grava todas as linhas, inclusive as ocultas. O filtro é uma visualização, não uma alteração dos dados.

OU entre colunas (linhas em que o país é Alemanha ou a receita passa de 10.000) não é possível com o AutoFiltro, que só combina colunas com E. Use Dados → Avançado com um intervalo de critérios, em que condições em linhas separadas são combinadas com OU, e marque Copiar para outro local para gravar o resultado em outro lugar em uma só etapa.

E como isto é um CSV: se ele tiver IDs, CEPs ou números longos, abra-o com uma importação em vez de um clique duplo, ou os valores pelos quais você filtra podem já ter sido alterados. Veja como impedir que o Excel altere os dados do seu CSV.

No Google Sheets

Dados → Criar um filtro funciona como o do Excel. Mas o Sheets tem algo mais útil para isso, a função FILTER, que grava as linhas correspondentes em outro lugar e as mantém atualizadas:

=FILTER(A2:F, C2:C="Europe", E2:E<2000)

Cada condição extra é combinada com E. Para OU, some-as: (C2:C="Europe")+(C2:C="Asia"). Coloque essa fórmula em uma nova aba, e essa aba é o seu arquivo filtrado: Arquivo → Fazer download → CSV enquanto ela estiver ativa.

Na linha de comando

Para arquivos grandes demais para uma planilha, ou um filtro que você vai rodar toda semana, um comando é mais rápido que clicar e dá sempre a mesma resposta.

O grep é tentador e errado. Ele encontra texto em qualquer parte da linha, então grep Europe também pega uma linha cujas observações dizem "not Europe". Ele descarta a linha de cabeçalho. E awk -F, divide em toda vírgula, inclusive nas que estão dentro de campos entre aspas. Use uma ferramenta que entenda CSV.

csvkit, correspondência exata ou padrão em uma coluna:

csvgrep -c country -m "Germany" in.csv > germany.csv
csvgrep -c email -r "@example\.com$" in.csv > example.csv

Miller, para condições:

mlr --csv filter '$country == "Germany" && $revenue > 10000' in.csv > out.csv

DuckDB, para tudo o que o SQL consegue expressar e para arquivos de qualquer tamanho:

duckdb -c "COPY (SELECT * FROM 'in.csv' WHERE country = 'Germany' AND revenue > 10000) TO 'out.csv'"

As três mantêm o cabeçalho, respeitam as aspas e gravam apenas as linhas correspondentes. O guia de SQL em um CSV vai além com o DuckDB.

Erros de filtragem que dão as linhas erradas

Todos devolvem um resultado com aparência plausível, e é isso que os torna perigosos.

  • Maiúsculas e espaços. Germany, germany e Germany (com espaço no final) são três valores diferentes para a maioria dos filtros. Olhe os valores distintos da coluna antes de filtrar por um deles.
  • Números armazenados como texto. revenue > 10000 compara texto quando a coluna é de texto, e "9000" > "10000" é verdadeiro em ordem alfabética. Garanta que a ferramenta enxergue a coluna como números.
  • Datas em formatos misturados. 03/04/2026 é março em uma exportação e abril em outra. Filtre por uma coluna de datas só depois de conferir qual é.
  • Células em branco. Uma célula vazia é zero, desconhecido ou não se aplica? Os filtros costumam excluir células em branco das condições "menor que", sem avisar.

No celular

Converter um CSV em planilha no celular para filtrá-lo traz todos os problemas acima, mais uma tela pequena. Um app de CSV com filtro próprio trabalha com o arquivo como ele é.

No Smart CSV Viewer, Filter abre um painel sobre a tabela. Adicione condições por coluna; os operadores seguem o tipo da coluna, então uma coluna numérica compara números e uma coluna de datas compara datas. O botão informa quantas linhas vão restar, Apply · 4 rows, antes de você confirmar. Para algo rápido, segure qualquer célula e escolha Filter by this value.

O painel de filtros com duas condições, Continent é igual a Europe e Budget é menor que 2000, e um botão com o texto Apply, 4 rows
As condições, com a contagem antes de aplicar
A tabela filtrada em 9 de 30 linhas, todas na Europa, com a barra de filtro exibida abaixo da barra superior
O resultado: 9 de 30 linhas

Edit as SQL transforma as condições em uma consulta que você pode alterar à mão. Para levar o resultado a outro lugar, selecione as linhas e copie: a cópia segue o seu filtro e é colada em uma planilha como células de verdade. Você também pode pedir linhas em linguagem comum ao assistente de IA, que envia apenas os nomes das suas colunas.

CSV File Viewer - Smart CSViPhone e iPad · Android

Um painel de filtros feito para CSV no iPhone e no Android: condições tipadas, a contagem de linhas correspondentes antes de aplicar, SQL quando você quiser e nada é enviado para a internet.

O que ele faz

Combinar condições com grupos match any ou match none é um recurso Pro; condições E simples são gratuitas.

Perguntas

Como filtro um arquivo CSV e salvo apenas as linhas filtradas?
No Excel ou no Google Sheets, aplique o filtro, selecione e copie as linhas visíveis, cole em uma nova planilha e salve essa planilha como CSV. Salvar diretamente a planilha filtrada grava todas as linhas, inclusive as ocultas. Na linha de comando, csvgrep, Miller ou DuckDB gravam apenas as linhas correspondentes em uma só etapa.
Posso filtrar um CSV sem o Excel?
Sim. O Google Sheets filtra um CSV de graça, ferramentas de linha de comando como csvkit, Miller e DuckDB filtram arquivos de qualquer tamanho, e apps de CSV para celular filtram o arquivo diretamente, sem convertê-lo.
Por que o grep dá as linhas erradas ao filtrar um CSV?
O grep encontra texto em qualquer parte da linha, não em uma coluna específica, então pega linhas em que a palavra aparece em outro campo. Ele também descarta o cabeçalho. O awk com vírgula como separador erra nos campos entre aspas que contêm vírgulas. Use no lugar uma ferramenta que entenda CSV.
Como filtro um CSV com condições OU no Excel?
O AutoFiltro só combina colunas com E. Para OU entre colunas, use Dados → Avançado com um intervalo de critérios, colocando cada alternativa em sua própria linha, e escolha Copiar para outro local para gravar o resultado em outro lugar.
Por que o meu filtro de números devolve as linhas erradas?
A coluna provavelmente está armazenada como texto, então os valores são comparados em ordem alfabética: '9000' vem depois de '10000'. Converta a coluna para números ou use uma ferramenta que a trate como numérica.

mygems — Cria o CSV Editor e o Smart CSV Viewer, dois apps que existem porque as planilhas desistem de arquivos grandes.