sábado, 12 de octubre de 2013

Ordenar un millón de valores

Descargue el fichero: Ordena_un_millon.xlsm

Podemos ordenar un millón de valores numéricos con VBA en un tiempo bastante aceptable.

En mi portatil (i7, 8Gb RAM) cada una de las dos macros tarda 2 segundos aproximadamente.


Sub genera_aleatorios_en_columna_A()
Dim i As Long
Dim R As Range
Dim A
Set R = Range("A1:A1000000")
A = R
Randomize
For i = 1 To 1000000
   A(i, 1) = Rnd
Next i
R = A
End Sub

Sub ordena_columna_A()
Columns("A:A").Sort key1:=Range("A1"), _
      order1:=xlAscending, Header:=xlNo
End Sub


Nota

La línea

R = A

equivale a

Range("A1:A1000000") = A

También puede interesarle ...

lunes, 16 de septiembre de 2013

Ventas del periodo

Descargar el archivo: caso_ventasperiodo.xlsx

Vamos a resolver un caso práctico.

Se trata de determinar las ventas del periodo para un cliente concreto.



miércoles, 4 de septiembre de 2013

Rellenar Series

Veremos  varias formas de rellenar Series, tanto manualmente como utilizando los iconos de Excel.

Series lineales, geométricas, cronológicas y de autorrelleno.

También veremos como acumular. Realizaremos el acumulado de una columna.




En la segunda parte del vídeo se ven aspectos más avanzados. Estableceremos una tendencia con valores no periódicos y se comprueba que los resultados obtenidos se ajustan a una recta de regresión. Se utiliza la función PRONOSTICO.



Al final del este segundo vídeo también se ven Listas Personalizadas que nos permiten crear nuestras propias listas personales para luego utilizar. Podríamos crear una lista personalizada con los meses en inglés o en francés.


Rellenar series entre un mínimo y un máximo


Si queremos rellenar entre un mínimo de 100 y un máximo de 1.400 en un intervalo de 6 celdas lo que debemos hacer es poner en la primera el 100 y en la segunda una fórmula que luego copiaremos hacia abajo.
La fórmula de la celda B6 es la siguiente:
=B5+($B$2-$B$1)/($B$3-1)

Comenzando en cero

Si queremos que el intervalo de 6 valores con incluya los dos extremos y que el mínimo comience en cero, la fórmula de la celda B6 se modifica ligeramente:


=B5+($B$2-$B$1)/($B$3-1)