Importación de archivos de datos enormes (Microsoft Excel)
Excel tiene un límite en la cantidad de filas que puede tener en una hoja de trabajo: hasta 65.535. Sin embargo, es muy posible tener un archivo de datos sin procesar que tenga más filas que este. Si necesita importar ese archivo a Excel, hacerlo puede parecer casi imposible sin actualizar a Excel 2007 o una versión posterior. (Esas versiones posteriores superaron el límite de 65.535 filas). Sin embargo, hay un par de cosas que puede hacer.
Una posibilidad es hacer copias del archivo de texto sin formato (el que desea importar) y luego reducir el tamaño de cada archivo. Por ejemplo, si tiene un total de 110.000 filas que necesita importar a Excel y está operando por debajo del límite de 65.535 filas, puede hacer dos copias del archivo de texto sin formato. Elimine la segunda mitad del primer archivo de texto y la primera mitad del segundo. Por lo tanto, puede importar el primer archivo (ahora 55,000 filas) en una hoja de trabajo y el segundo archivo (también 55,000 filas)
en el segundo.
Si no desea dividir sus archivos de entrada, podría considerar importar el archivo a Access. A diferencia de Excel, Access prácticamente no tiene límite en la cantidad de filas que puede importar. A continuación, puede trabajar con el archivo en Access o exportar partes del archivo para usar en Excel.
Finalmente, puede usar una macro para importar los registros en el archivo fuente grande. Hay muchas formas de hacer esto, pero la idea básica detrás de cualquier enfoque es buscar cada fila del archivo fuente y colocarla en una nueva fila de una hoja de trabajo. La macro debe realizar un seguimiento de cuántas filas está colocada y cambiar a una nueva hoja de trabajo, si es necesario.
Public Sub LoadFile() Dim strLine As String Dim I As Long Dim J As Long Dim iLen As Integer Dim iSh As Integer Dim lL As Long Dim sDelim As String Dim MaxSize As Long sDelim = Chr(9) MaxSize = 65000 I = 0 Open "C:\MyDir\MyFile.txt" For Input As #5 Do While Not EOF(5) iSh = (I / MaxSize) + 1 lL = I Mod MaxSize Line Input #5, strLine If Right(strLine, 1) <> sDelim Then strLine = Trim(strLine) & sDelim End If J = 0 Do While Len(strLine) > 1 iLen = InStr(strLine, sDelim) Worksheets("Sheet" & iSh).Offset(lL, J).Value = _ Trim(Left(strLine, iLen - 1)) strLine = Trim(Right(strLine, Len(strLine) - iLen)) J = J + 1 Loop I = I + 1 Loop Close #5 End Sub
La macro asume que ya tiene suficientes hojas de trabajo en su libro de trabajo para contener los datos, y que están numeradas Hoja1, Hoja2, Hoja3, etc. Dos variables que querrá verificar en el programa son las configuraciones de sDelim y MaxSize. El primero especifica qué carácter se utiliza como delimitador de campo en la información que se está leyendo. El segundo especifica el número máximo de filas que desea en cada hoja de trabajo. (No establezca MaxSize mayor que lo que permita su versión de Excel).
Finalmente, tenga en cuenta que la macro abre el archivo de texto MyFile.txt. Querrá cambiar esta instrucción Open para que abra el archivo fuente real que desea importar.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (2533) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.