Microsoft Excel es excelente en tantas tareas diarias. Pero de vez en cuando te encuentras con uno de sus defectos: el tamaño de una hoja de cálculo. Siga leyendo para descubrir cómo reducir el tamaño de una hoja de cálculo de Excel o dividir un archivo CSV grande en varios archivos.
¿Por qué dividir un CSV grande en varios archivos?
Quizás esté pensando: "¿Por qué tendría que dividir un archivo de Excel grande en varios archivos más pequeños?" Es una pregunta interesante, especialmente porque Excel tiene un límite de filas de hoja de cálculo de 1,048,576.
Más de 1 millón de filas suena fenomenal. Sin embargo, alcanzar el límite de filas es más fácil de lo que cree, especialmente durante ciertas tareas. Por ejemplo, si realiza marketing por correo electrónico, puede importar un archivo CSV que contenga millones de direcciones de correo electrónico.
El único problema es, ¿cómo maneja una hoja de cálculo con tantas direcciones? Además, ¿qué pasa si alguien te envía un CSV que ya está por encima del límite (de otro programa)?
Si eso suena como un problema que probablemente enfrentará, consulte las siguientes cinco formas de dividir un archivo CSV o Excel grande en varios archivos más pequeños.
¿No tienes a mano un archivo CSV grande pero quieres jugar en casa? Estoy usando el conjunto de datos de investigación abierta de COVID-19 en los ejemplos, que también puede descargar y usar.
1. Dividir archivos CSV usando un programa
Existen varios programas divisores de CSV útiles. Aquí hay dos de los mejores. Sin embargo, una advertencia justa, ya que estos programas funcionan, a veces se encuentran con problemas de memoria, que es un problema común para los programas de división de CSV.
Free Huge CSV Splitter es una herramienta básica de división de CSV. Ingresa el archivo CSV que desea dividir, el número de líneas que desea usar y luego selecciona Dividir archivo . El recuento de líneas determina el número de archivos de salida con los que termina.
CSV Splitter es la segunda herramienta. Ofrece prácticamente la misma funcionalidad que Free Huge CSV Splitter, aunque con un diseño un poco más elegante. Divide su CSV en pequeños fragmentos rápidamente, lo que le permite determinar el número de líneas que desea utilizar.
2. Use un archivo por lotes
A continuación, cree un archivo por lotes programable . Puede usar un archivo por lotes para procesar el CSV en fragmentos más pequeños, personalizando el archivo para entregar diferentes fragmentos.
Abra un nuevo documento de texto, luego copie y pegue lo siguiente:
@echo off
setlocal ENABLEDELAYEDEXPANSION
REM Edit this value to change the name of the file that needs splitting. Include the extension.
SET BFN=HCAHPSHospital.csv
REM Edit this value to change the number of lines per file.
SET LPF=2500
REM Edit this value to change the name of each short file. It will be followed by a number indicating where it is in the list.
SET SFN=HosptialSplitFile
REM Do not change beyond this line.
SET SFX=%BFN:~-3%
SET /A LineNum=0
SET /A FileNum=1
For /F "delims==" %%l in (%BFN%) Do (
SET /A LineNum+=1
echo %%l >> %SFN%!FileNum!.%SFX%
if !LineNum! EQU !LPF! (
SET /A LineNum=0
SET /A FileNum+=1
)
)
endlocal
Pause
Deberá configurar el archivo por lotes antes de ejecutarlo. Le diré lo que hace cada comando, y puede modificarlo para adaptarlo al tamaño de su archivo por lotes, así como a la salida requerida.
"SET BFN=" debe apuntar al CSV que necesitas desglosar
" SET LPF=" es el número de filas a las que le gustaría limitar su nuevo archivo
"SET SFN=" es el nuevo esquema de nombres para sus archivos divididos
Una vez que haya ingresado sus variables, diríjase a Archivo > Guardar como . Elija un nombre de archivo y seleccione Guardar . Luego, seleccione su archivo de texto recién guardado y presione F2 para cambiarle el nombre. Reemplace la extensión .txt con .bat y presione OK cuando aparezca la advertencia. Ahora, puede dividir su archivo CSV grande en archivos de salida más pequeños.
3. Use un script de PowerShell para dividir un archivo CSV
Puede usar archivos por lotes para una amplia gama de tareas diarias . Pero los scripts de PowerShell son más rápidos , especialmente para este tipo de procesamiento y división.
El siguiente script corta rápidamente su CSV grande en archivos más pequeños.
Primero, presione CTRL + X para abrir el menú de energía de Windows, luego seleccione PowerShell . Si PowerShell no es una opción, ingrese powershell en la barra de búsqueda del menú Inicio y seleccione la mejor coincidencia.
Ahora, copie y pegue el siguiente script:
$InputFilename = Get-Content 'C:\file\location'
$OutputFilenamePattern = 'output_done_'
$LineLimit = 50000
$line = 0
$i = 0
$file = 0
$start = 0
while ($line -le $InputFilename.Length) {
if ($i -eq $LineLimit -Or $line -eq $InputFilename.Length) {
$file++
$Filename = "$OutputFilenamePattern$file.csv"
$InputFilename[$start..($line-1)] | Out-File $Filename -Force
$start = $line;
$i = 0
Write-Host "$Filename"
}
$i++;
$line++
}
Reemplace la ubicación del archivo en la primera línea con su archivo CSV, luego ejecute el script. El script genera los archivos CSV más pequeños en su directorio de usuario. Por ejemplo, mis archivos CSV se encuentran en C:\Users\Gavin con el nombre de archivo output_done_1.csv . Puede cambiar el nombre de salida modificando la línea $OutputFilenamePattern = 'output_done_' .
Puede encontrar el guión original en SPJeff .
4. Dividir un CSV grande con Power Pivot
Su penúltima solución para dividir un archivo CSV grande en partes pequeñas en realidad no lo descompone. Más bien, le permite cargar su archivo CSV masivo en Excel y usar la herramienta Power Pivot para abrirlo. Así es; puede ignorar efectivamente el límite de línea de Excel y administrar el archivo dentro del programa.
Para lograrlo, cree un enlace de datos al archivo CSV y luego use Power Pivot para administrar el contenido. Para obtener una explicación completa y un tutorial, lea el blog de José Barreto que detalla el proceso.
En resumen, Barreto crea una tabla dinámica utilizando “hasta 8,5 millones de filas sin ningún problema”. La imagen de arriba proviene de la publicación del blog, que muestra un total de 2 millones de filas en uso en Excel.
Recuerde, este proceso no divide el CSV en partes pequeñas. Sin embargo, significa que puede manipular el CSV en Excel, que es una alternativa muy útil. Si necesita más consejos, descubra cómo usar una tabla dinámica para el análisis de datos .
5. Dividir CSV grandes en línea usando Split CSV
También hay servicios en línea que dividen su gran archivo CSV en partes más pequeñas. Una de esas opciones es Split CSV , un divisor CSV en línea gratuito.
Split CSV manejó bien el conjunto de datos COVID-19, dividiéndolo en partes útiles. Al igual que con otras herramientas, usted define el recuento de líneas para cada archivo y deja que se divida. Sin embargo, no tenía un archivo CSV grande a mano para probar y, como tal, su experiencia puede variar.
Split CSV también incluye opciones premium. Por una tarifa de suscripción, puede usar un delimitador personalizado , elegir una selección de tipos de archivos de salida, eliminar ciertos caracteres de los archivos de salida y eliminar líneas duplicadas.
Divida sus archivos CSV en fragmentos fácilmente manejables
Ahora tiene cinco soluciones para dividir sus archivos CSV en pequeños bits, haciéndolos fáciles de administrar. Las soluciones varían en cuanto a la velocidad y el tamaño de los archivos CSV que pueden administrar, por lo que es posible que deba experimentar para encontrar la solución que mejor se adapte a sus necesidades. ¿Y la mejor parte de todo? Estas técnicas de división de CSV funcionan en Windows 10 y Windows 11. ¡Incluso puede usar la herramienta de división de CSV en línea en macOS y Linux!