Incrementar uso de recursos de EXcel...

27/07/2009 - 19:18 por Víctor | Informe spam
Buenos días.

¿Cómo puedo incrementar el uso de recursos para Excel?.

Me explico:
Últimamente he utilizado sort en archivos de más de 32,000 líneas.
Una vez ordenado los datos, elimino líneas duplicadas Y ESTE PROCESO TARDA
MUCHO.

Al abrir el administrador de tareas de windows observo en la pestaña
"Procesos" activo el programa -EXCEL.EXE- pero NUNCA PASA DE 50% DE USO DE
CPU (no realizo otra actividad), tengo que esperar a veces hasta más de 1
hora.

Que puedo hacer? para que este proceso repetitivo (con diferentes tipos de
archivos) se más rápido...

Preguntas similare

Leer las respuestas

#1 Bart
28/07/2009 - 03:16 | Informe spam
Hola Victor:

Le comento mi caso por si de pronto le sirve en algo. Actualmente utilizo
Office 2007, pero como es lógico inicialmente todos mis archivos estaban en
versión 2003, manejo hojas un poco grandes, el solo hecho de salvar tomaba su
tiempo y eso ni se diga de eliminar o insertar filas/columnas, porque seguia
manteniendo los archivos en versión 2003. Una vez probé con cambiarlos a la
versión 2007 y además de reducir muchísimo el tamaño, el tiempo de respuesta
mejoró infinitamente.

Espero que este comentario le sirva en algo.

Saludos,

Bart
Respuesta Responder a este mensaje
#2 Víctor
28/07/2009 - 21:11 | Informe spam
en EXCEL 2003.

- Descargo información de una base de datos.
(Los registros están por fecha y hora, algunas fechas están duplicadas
(ene-jun/09). Cantidad de líneas promedio 23,500)
- Ordeno datos de las columnas de fechas y de la horas.
- Con la función [=SI(A3¢,"ok"] etiqueto los registros duplicados.
- Con autofiltro selecciono todo lo indicado con "ok"
Selecciono todas las líneas con "ok" borro y "elimino".
Este proceso se lleva demasiado tiempo.
- Revisando el administrador de tareas, la aplicación EXCEL.exe nunca pasa o
excede de 50% de uso de CPU.
- En la computadora no realizo otra cosa más.
Cierro aplicaciones que no estén en uso.
- Después de eliminar todo registro duplicado, la cantidad aproximadamente
de líneas al final son de 17,500.

Espero haberme explicado adecuadamente.

"Héctor Miguel" wrote:

hola, Víctor !

> Como puedo incrementar el uso de recursos para Excel?.
> Me explico:
> ultimamente he utilizado sort en archivos de mas de 32,000 lineas.
> Una vez ordenado los datos, elimino lineas duplicadas Y ESTE PROCESO TARDA MUCHO...

prueba exponiendo "el proceso" con el que eliminas lineas duplicadas (?????)

saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
29/07/2009 - 21:31 | Informe spam
hola, Víctor !

al filtrar ~23,500 lineas para quedar solo ~17,500 y eliminar ~6,000 filas (es probable/seguro que)
se estan generando varios rangos NO contiguos que exceden el limite de 2048 areas "manejables" por excel (???)

en algunos procesos hay un "precio que pagar" (consumo de recursos como tiempo, memoria, etc.)
cuando se combinan filtrados con funciones "volatiles" y/o formulas con rangos "auto-ajustables"

haciendo algunas pruebas con una BD (inventada) de ~35,000 registros (11 columnas mas titulos en la fila 1)
el siguiente procedimiento se toma ~12 minutos en eliminar ~23,300 registros (por areas limitadas a 2,000)
los restantes ~11,700 corresponden a los registros NO duplicados y/o los que aparecen en su primera vez
(ya no seria como comntaste en tu consulta original un proceso de mas de una hora) :))

haz algunas pruebas y, si cualquier duda (o informacion adiiconal)... comentas ?
saludos,
hector.

Sub Eimina_por_Areas()
Dim modCalculo, Fila As Long, Elimina As Range
With Application: modCalculo = .Calculation
.Calculation = xlCalculationManual: .ScreenUpdating = False: End With
With Range("a1").CurrentRegion
.Sort .Cells(2, 1), xlAscending, .Cells(2, 2), , xlAscending, , , xlYes: End With
Re_inicia:
Set Elimina = Nothing
For Fila = 2 To [a65536].End(xlUp).Row
If Evaluate("countif(a2:a" & Fila & ",a" & Fila & ")") > 1 Then
Set Elimina = Union(IIf(Elimina Is Nothing, Range("a" & Fila), Elimina), Range("a" & Fila))
If Elimina.Areas.Count > 2000 Then Elimina.EntireRow.Delete: GoTo Re_inicia
End If: Next: If Not Elimina Is Nothing Then Elimina.EntireRow.Delete: Set Elimina = Nothing
Debug.Print ActiveSheet.UsedRange.Address
Application.Calculation = modCalculo
End Sub

__ OP __
en EXCEL 2003.
- Descargo informacion de una base de datos.
(Los registros estan por fecha y hora, algunas fechas estan duplicadas (ene-jun/09).
Cantidad de lineas promedio 23,500)
- Ordeno datos de las columnas de fechas y de la horas.
- Con la funcion [=SI(A3¢,"ok"] etiqueto los registros duplicados.
- Con autofiltro selecciono todo lo indicado con "ok"
Selecciono todas las là­neas con "ok" borro y "elimino".
Este proceso se lleva demasiado tiempo.
- Revisando el administrador de tareas, la aplicacion EXCEL.exe nunca pasa o excede de 50% de uso de CPU.
- En la computadora no realizo otra cosa mas.
Cierro aplicaciones que no estan en uso.
- Despues de eliminar todo registro duplicado, la cantidad aproximadamente de lineas al final son de 17,500.

Espero haberme explicado adecuadamente.



__ previos __
Como puedo incrementar el uso de recursos para Excel?.
Me explico:
ultimamente he utilizado sort en archivos de mas de 32,000 lineas.
Una vez ordenado los datos, elimino lineas duplicadas Y ESTE PROCESO TARDA MUCHO...



prueba exponiendo "el proceso" con el que eliminas lineas duplicadas (?????)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida