Saltar al contenido

Número de datos


Recommended Posts

publicado

Tengo archivos con información variable que puede ocupar más de una hoja de trabajo (1, 2, 3,...). Mediante una macro necesito lo siguiente:

1.- El número de filas (registros) que tiene cada archivo (uno a la vez)

2.- Obtener algunos indicadores estadísticos como la media, desviación estandard, el valor mínimo, el valor máximo de todos los datos (trabajado sobre un campo numérico específico)

3.- Mediante la generación de números aleatorios, recuperar la información del registro que corresponda a cada número aleatorio que se obtenga.

Aunque sé que Excel no es la herramienta idónea para este tipo de problemas, la verdad es que no se cuenta con otra aplicación.

Agradeceré cualquier tipo de ayuda.

Saludos al foro.

publicado

El problema es que son archivos que pesan muchísimo pues tienen más de un millón de registros y algunos llegan a màs de 3 millones. ¿Cómo le puedo hacer?

publicado

Y trabajas con millones de registros en Excel?........me temo que tienes un problema.......jejeje

En serio, crea un archivo con la estructura real e incluyes a lo máximo 100 registros ficticios.........junto con la información de lo que quieres realmente (en un cuadro de texto o algo así, por ejemplo....) y a ver si alguien te puede echar una mano, aunque ya te adelanto que no creo que haya muchos que hayan trabajado con esas cantidades de registros tan bestiales de los que hablas.......En Access, hasta yo los he visto.........pero en Excel........:dispirited:

Chao,

Tese

publicado

Tengo archivos con información variable que puede ocupar más de una hoja de trabajo (1, 2, 3,...). Mediante una macro necesito lo siguiente:

1.- El número de filas (registros) que tiene cada archivo (uno a la vez)

2.- Obtener algunos indicadores estadísticos como la media, desviación estandard, el valor mínimo, el valor máximo de todos los datos (trabajado sobre un campo numérico específico)

3.- Mediante la generación de números aleatorios, recuperar la información del registro que corresponda a cada número aleatorio que se obtenga.

Aunque sé que Excel no es la herramienta idónea para este tipo de problemas, la verdad es que no se cuenta con otra aplicación.

Agradeceré cualquier tipo de ayuda.

Concuerdo contigo! Excel no es lo mas optimo para las tareas que deseas realizar! no siendo el caso de VBA!

Trabajar con mas de tres millones de registros en un libro de excel... considero que no es adecuado en lo absoluto mejor hacerlo desde Access.... pero mencionas que solo cuentas con Excel... pero como ya mencione vaciar los registros en hojas seria inadecuado.

Pero tienes VBA... abre los archivos, carga el contenido de estas en una matriz y has los calculos pertinentes! Tese1969 menciona que se trata de una cantidad bestial de registros... veamos si mis conocimientos pueden hacer algun milagro! jajaja

Como dice Tese1969, seria de gran ayuda parte del archivo que necesitas procesar, quiero suponer que se trata de un txt o un csv.

Umm procesar 3 millones de registros sera un buen reto para tratar de hacerlo en el menor posible, asi que sube tu archivo!

publicado

Hola a todos:

Incluso a Access le van a rechinar las bielas con 3 millones de registros. Suponiendo 8 columnas por registro, estamos hablando de 24 millones de columnas, y eso es mucha columna.

Con esos volúmenes mejor MiSql o tadavía mejor SqlServer u Oracle, pero estos dos últimos hay que pagar.

Voy a intentar generar un libro con esas condiciones, y luego pasarlo a Access.

- - - - - Mensaje combinado - - - - -

.

.

.

a las 19:13

Bueno, en Excel, 3 millones de filas de 10 columnas repartidas en 3 hojas a 1 millón de filas por hojas, tarda 3 minutos en abrirse, ocupa 250 Mbytes y tarda otros tres minutos en guardarlo.

Saber el nº de filas de cada hoja es prácticamente instantáneo, calcular el máximo y el mínimo de una columna, 80 segundos por hoja. En cuanto a la desviación standard todavía no lo he mirado, pero me temo que va a ser problemático.

Aquí están las dos macros, el resultado del Máximo/Mínimo, aparece en la barra de estado de Excel.



Sub MaxMin(): On Error GoTo salvmin = 999999999
Inicio = Time


Columna = InputBox("Indicar la columna en letra", , "A")
For x = 1 To ActiveSheet.UsedRange.Rows.Count
If Range(Columna & x) > vmax Then
vmax = Range(Columna & x)
rmax = x
End If
If Range(Columna & x) < vmin Then
vmin = Range(Columna & x)
rmin = x
End If
r = x Mod 10000
If r = 0 Then
Application.ScreenUpdating = True
Debug.Print Time
Application.StatusBar = "Empieza: " & Inicio & " Fila=" & x & " F/V Máximo=" & _
rmax & "/" & vmax & " F/V Mínimo " & rmin & "/" & vmin & " Termina: " & Time
Application.ScreenUpdating = False
End If
Next
sal:
End Sub


Sub Filas()
MsgBox ActiveSheet.UsedRange.Rows.Count
End Sub


[/CODE]

publicado

Jejejeje........Macro Antonio....lástima que no estuvieras en los Juegos de Londres........como cronometrador no tenías precio!!!....jejeje

Y permíteme una maldad.........si tienes 8 columnas, son 8 columnas.........da igual los millones de filas que tengas.....jejeje

Cuidaros todos y por favor, para estos volúmenes diríjanse a otras aplicaciones......que al Excel le tostáis.......jejej

Chao,

Tese

publicado

Incluso a Access le van a rechinar las bielas con 3 millones de registros. Suponiendo 8 columnas por registro, estamos hablando de 24 millones de columnas, y eso es mucha columna.

Respecto a lo de las columnas... Tese ya hizo la maldad!

Con esos volúmenes mejor MiSql o tadavía mejor SqlServer u Oracle, pero estos dos últimos hay que pagar.

La verdad no he tenido el gusto de utilizar ninguno de los tres, pero tengo entendido que MySQL es mejor que SQLServer... eso he oido no me consta. Otra alternativa algo radical a las que propone MacroAntonio es utilizar un gestor de bd NoSQL como MongoDB (dicen que los gestores NoSQL son mas rapidos... habria que probar...)

Bueno, en Excel, 3 millones de filas de 10 columnas repartidas en 3 hojas a 1 millón de filas por hojas, tarda 3 minutos en abrirse, ocupa 250 Mbytes y tarda otros tres minutos en guardarlo.

Veo que te decantaste por implementar la solución en Excel... sigo pensando que abrir el fichero y cargar los datos en memoria es mas rápido! hace tiempo en un tema pasado dije que vba era pésimo para el procesamiento de texto, hoy retiro lo dicho! Por eso el interés de que el compañero suba un archivo con la estructura de los archivos a procesar.

En mi antiguo trabajo... unos compañeros tenían que procesar un csv de 2 gb para poder generarle reporte a P&G... ellos me contaron que trataron de abordar la solución con VBA/Excel pero que resulto ser un fracaso por que era sumamente lento, que no servia y tantas cosas negativas mas... lo ultimo que supe fue que usaron python junto con sqlLite para solucionar el problema. Yo creo que no agotaron las posibilidades de VBA/Excel ademas de que siempre han sido adoradores del software libre y Linux.... es por eso que quisiera restablecer la buena imagen de VBA/Excel.

Saludos!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.