mygems

Cómo filtrar un archivo CSV y quedarte solo con las filas que necesitas

Filtra un CSV por un valor, un rango o varias condiciones y guarda solo esas filas. Excel, Sheets, línea de comandos y celular, con las trampas de cada uno.

Por mygems ·

Filtrar un CSV son dos trabajos que se suelen tratar como uno: ver solo las filas que coinciden y guardar solo esas filas en un archivo nuevo. Todas las herramientas hacen bien lo primero. Lo segundo es donde están las trampas, porque una hoja de cálculo que te muestra 40 filas filtradas guardará sin problema las 40.000.

La respuesta rápida

  • Ver las filas que coinciden: Excel o Sheets, Datos → Filtro, elige los valores.
  • Guardar solo las filas que coinciden: filtra, selecciona las filas visibles, cópialas en una hoja nueva y guarda esa hoja. O usa una herramienta que escriba directamente el resultado filtrado.
  • Archivo grande o tarea repetible: un solo comando, csvgrep, mlr o DuckDB, más abajo.
  • En el celular: una app de CSV con un panel de filtros de verdad, para no hacerlo sobre una hoja de cálculo convertida.

En Excel

  1. Haz clic en cualquier celda de los datos y presiona Ctrl+Mayús+L (⌘+Mayús+F en Mac), o ve a Datos → Filtro.
  2. Usa la flecha del encabezado de una columna para elegir valores, o Filtros de número / Filtros de texto para condiciones como mayor que o contiene.
  3. Combina filtros entre columnas: cada uno reduce más el resultado.

Para guardar solo las filas filtradas: selecciona el rango visible, copia, pega en una hoja nueva y guarda esa hoja como CSV. Cuando copias un rango con un autofiltro aplicado, Excel copia solo las filas visibles.

La trampa: si guardas como CSV la propia hoja filtrada, se escriben todas las filas, también las ocultas. El filtro es una vista, no un cambio en los datos.

O entre columnas (filas donde el país es Alemania o los ingresos superan 10.000) no se puede con el autofiltro, que solo combina las columnas con Y. Usa Datos → Avanzadas con un rango de criterios, donde las condiciones en filas distintas se combinan con O, y marca Copiar a otro lugar para escribir el resultado en otra parte en un solo paso.

Y como se trata de un CSV: si contiene ID, códigos postales o números largos, ábrelo con una importación en lugar de un doble clic, o los valores por los que filtras quizá ya estén alterados. Consulta cómo evitar que Excel cambie los datos de tu CSV.

En Google Sheets

Datos → Crear un filtro funciona como el de Excel. Pero Sheets tiene algo más útil para esto, la función FILTER, que escribe las filas que coinciden en otro lugar y las mantiene actualizadas:

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

Cada condición adicional se combina con Y. Para O, súmalas: (C2:C="Europe")+(C2:C="Asia"). Pon esa fórmula en una pestaña nueva y esa pestaña es tu archivo filtrado: Archivo → Descargar → CSV mientras esté activa.

En la línea de comandos

Para archivos demasiado grandes para una hoja de cálculo, o un filtro que vas a ejecutar cada semana, un comando es más rápido que hacer clics y da siempre la misma respuesta.

grep tienta y falla. Busca texto en cualquier parte de la línea, así que grep Europe también encuentra una fila cuyas notas dicen "not Europe". Descarta la fila de encabezado. Y awk -F, separa en cada coma, incluidas las que están dentro de campos entrecomillados. Usa una herramienta que entienda CSV.

csvkit, coincidencia exacta o patrón en una columna:

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

Miller, para condiciones:

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

DuckDB, para todo lo que SQL pueda expresar y para archivos de cualquier tamaño:

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

Las tres conservan el encabezado, respetan las comillas y escriben solo las filas que coinciden. La guía de SQL sobre un CSV profundiza con DuckDB.

Errores de filtrado que dan filas equivocadas

Todos devuelven un resultado de apariencia razonable, y eso es lo que los hace peligrosos.

  • Mayúsculas y espacios. Germany, germany y Germany (con un espacio al final) son tres valores distintos para la mayoría de los filtros. Mira los valores distintos de la columna antes de filtrar por uno.
  • Números guardados como texto. revenue > 10000 compara texto cuando la columna es de texto, y "9000" > "10000" es verdadero en orden alfabético. Asegúrate de que la herramienta vea la columna como números.
  • Fechas en formatos mezclados. 03/04/2026 es marzo en una exportación y abril en otra. Filtra por una columna de fechas solo después de comprobar cuál es.
  • Celdas vacías. ¿Una celda vacía es cero, desconocido o no aplicable? Los filtros suelen excluir las celdas vacías de las condiciones "menor que", sin avisar.

En el celular

Convertir un CSV en una hoja de cálculo en el celular para filtrarlo trae todos los problemas anteriores, más una pantalla pequeña. Una app de CSV con su propio filtro trabaja sobre el archivo tal como está.

En Smart CSV Viewer, Filter abre un panel sobre la tabla. Agrega condiciones por columna; los operadores siguen el tipo de la columna, así que una columna numérica compara números y una de fechas compara fechas. El botón te dice cuántas filas quedarán, Apply · 4 rows, antes de confirmar. Para algo rápido, mantén presionada cualquier celda y elige Filter by this value.

El panel de filtros con dos condiciones, Continent es igual a Europe y Budget es menor que 2000, y un botón que dice Apply, 4 rows
Condiciones, con el conteo antes de aplicar
La tabla filtrada a 9 de 30 filas, todas en Europa, con la barra de filtros bajo la barra superior
El resultado: 9 de 30 filas

Edit as SQL convierte las condiciones en una consulta que puedes modificar a mano. Para llevar el resultado a otro lugar, selecciona las filas y copia: la copia respeta tu filtro y se pega en una hoja de cálculo como celdas reales. También puedes pedir filas con palabras normales al asistente de IA, que solo envía los nombres de tus columnas.

CSV File Viewer - Smart CSViPhone y iPad · Android

Un panel de filtros hecho para CSV en iPhone y Android: condiciones con tipos, el conteo de filas que coinciden antes de aplicar, SQL cuando lo quieras y nada se sube a ningún servidor.

Qué hace

Combinar condiciones con grupos match any o match none es una función Pro; las condiciones Y simples son gratis.

Preguntas

¿Cómo filtro un archivo CSV y guardo solo las filas filtradas?
En Excel o Google Sheets, aplica el filtro, selecciona y copia las filas visibles, pégalas en una hoja nueva y guarda esa hoja como CSV. Si guardas directamente la hoja filtrada, se escriben todas las filas, también las ocultas. En la línea de comandos, csvgrep, Miller o DuckDB escriben solo las filas que coinciden en un solo paso.
¿Puedo filtrar un CSV sin Excel?
Sí. Google Sheets filtra un CSV gratis, las herramientas de línea de comandos como csvkit, Miller y DuckDB filtran archivos de cualquier tamaño, y las apps de CSV para celular filtran el archivo directamente sin convertirlo.
¿Por qué grep da las filas equivocadas al filtrar un CSV?
grep busca texto en cualquier parte de la línea, no en una columna concreta, así que recoge filas donde la palabra aparece en otro campo. También descarta el encabezado. awk con la coma como separador falla con los campos entrecomillados que contienen comas. Usa en su lugar una herramienta que entienda CSV.
¿Cómo filtro un CSV con condiciones O en Excel?
El autofiltro solo combina columnas con Y. Para una O entre columnas, usa Datos → Avanzadas con un rango de criterios, poniendo cada alternativa en su propia fila, y elige Copiar a otro lugar para escribir el resultado en otra parte.
¿Por qué mi filtro numérico devuelve las filas equivocadas?
Probablemente la columna está guardada como texto, así que los valores se comparan alfabéticamente: '9000' se ordena después de '10000'. Convierte la columna a números o usa una herramienta que la trate como numérica.

mygems — Crea CSV Editor y Smart CSV Viewer, dos apps que existen porque las hojas de cálculo se rinden con los archivos grandes.