(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo filtrar y exportar un CSV en PowerShell

João Barros 05 de July de 2026 4 min de lectura

Recibir un archivo CSV con cientos o miles de filas cuando solo necesitas una parte de los datos es una tarea diaria en cualquier equipo de datos. Con PowerShell puedes filtrar y exportar un CSV en pocos segundos, de forma repetible y sin abrir Excel. Esta guía muestra, paso a paso, cómo leer un archivo CSV, aplicar filtros a las filas y guardar solo los datos que necesitas en un nuevo archivo.

Requisitos previos

  • Windows PowerShell 5.1 o PowerShell 7 (ambos sirven; para comprobarlo, ejecuta $PSVersionTable.PSVersion).
  • Un archivo CSV con encabezado en la primera línea. Usaremos un ejemplo llamado vendas.csv.
  • Conocimientos básicos de línea de comandos (abrir una terminal y moverse entre carpetas).

Para seguir el ejemplo, crea un archivo vendas.csv con este contenido:

Data,Produto,Regiao,Quantidade
2026-01-04,Teclado,Norte,12
2026-01-05,Rato,Sul,4
2026-01-06,Monitor,Norte,25
2026-01-07,Teclado,Centro,8
2026-01-08,Monitor,Norte,3

Paso 1: Leer el CSV con Import-Csv

El primer paso para filtrar y exportar un CSV en PowerShell es cargarlo en memoria. El cmdlet Import-Csv lee el archivo y convierte cada línea en un objeto, usando el encabezado como nombres de las columnas.

$dados = Import-Csv -Path ".\vendas.csv"
$dados | Format-Table

Si tu archivo usa punto y coma como separador (habitual en CSV exportados en España o Portugal), indícalo con el parámetro -Delimiter:

$dados = Import-Csv -Path ".\vendas.csv" -Delimiter ";"

Paso 2: Filtrar las filas con Where-Object

Ahora filtramos solo las filas que importan. Where-Object recorre cada objeto y conserva los que cumplen la condición. En este ejemplo queremos solo las ventas de la región Norte con una cantidad igual o superior a 10.

$filtrado = $dados | Where-Object {
    $_.Regiao -eq "Norte" -and [int]$_.Quantidade -ge 10
}
$filtrado | Format-Table

Fíjate en el [int] antes de $_.Quantidade. Como Import-Csv lee todos los valores como texto, hay que convertirlos a número antes de comparar. Sin esa conversión, "3" se consideraría mayor que "25", porque la comparación se haría como texto.

Puedes combinar varias condiciones con -and (todas deben ser verdaderas) o -or (basta con una). Así adaptas el filtro a cualquier regla de negocio.

Paso 3: Elegir y ordenar las columnas

Antes de exportar, puedes elegir qué columnas conservar y en qué orden presentar los datos. Select-Object selecciona columnas y Sort-Object ordena los resultados, por ejemplo por la cantidad de forma descendente.

$resultado = $filtrado |
    Sort-Object { [int]$_.Quantidade } -Descending |
    Select-Object Data, Produto, Quantidade

Paso 4: Exportar a un nuevo CSV con Export-Csv

Por último, guardamos el resultado en un nuevo archivo. Export-Csv hace lo contrario de Import-Csv: convierte los objetos de nuevo en líneas de texto. Usa -NoTypeInformation para no escribir una línea extra de metadatos y -Encoding UTF8 para mantener correctos los acentos.

$resultado | Export-Csv -Path ".\vendas_norte.csv" -NoTypeInformation -Encoding UTF8

Si necesitas el resultado con punto y coma (para abrirlo directamente en un Excel en español), añade -Delimiter ";".

Consejo: guarda siempre el resultado en un archivo nuevo en lugar de sobrescribir el original. Así, si el filtro está mal, no pierdes los datos de partida.

Verificar el resultado

Para confirmar que el archivo es correcto, vuelve a leerlo con PowerShell o mira las primeras líneas:

Import-Csv ".\vendas_norte.csv" | Format-Table
Get-Content ".\vendas_norte.csv" -TotalCount 5

Deberías ver solo las dos filas de la región Norte con una cantidad igual o superior a 10 (Monitor con 25 y Teclado con 12), ordenadas de mayor a menor cantidad. Si el número de filas coincide, el filtro funcionó.

Conclusión

Con solo tres cmdlets — Import-Csv, Where-Object y Export-Csv — has automatizado una tarea que, hecha a mano en Excel, llevaría mucho más tiempo y sería difícil de repetir. El siguiente paso es guardar estos comandos en un archivo .ps1 para reutilizarlos siempre que llegue un nuevo archivo. ¿Qué otro filtro te sería útil en tu día a día: por fecha, por producto o por un valor mínimo de ventas?