Excel - Ayuda código aleatorio

 
Vista:

Ayuda código aleatorio

Publicado por Calima (16 intervenciones) el 23/08/2007 16:50:53
hola, necesito ayuda:
He estado leyendo y veo que han habido preguntas pero no encuentro nada que me sirva.
El tema es que tengo una serie de 10 numeros de los cuales tengo que generar series aleatorias SIN REPETICIÓN de 6, pero no se me ocurre que código usar para ello. Si que podría hacerlo utilizando fórmulas "manuales" pero es que hay 210!!! combinaciones posibles.

POr ejemplo:
Números:
1,2,3,4,5,6,7,8,9,10

Serie 1: 1,3,5,7,9,10
Serie 2: 1,3,5,7,8,9

....

Alguien me puede ayudar? GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda código aleatorio

Publicado por Calima (16 intervenciones) el 23/08/2007 18:05:37
Aclaro, porque le estoy dando vueltas y me he dado cuenta, que los 10 números de lso que deben salir las series de 6 no son fijos, es decir, es un rango de otra hoja. Antes he puesto el 1 al 10 y eso ya lo he logrado con la 10*RAND() pero no me sirve porque tienen q ser los números de una determinada columna que pueden variar. Es decir, podrían ser del tipo:
7
23
14
35
59
61
2
8
12

y lo que debería hacer sería combinar esos 10 entre si en series de 6 SIN REPETICIÓN.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por José Luis (700 intervenciones) el 23/08/2007 18:55:19
Para hacer eso es necesario crear una función de usuario (VBA).
¿cómo andas de programación?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por Calima (16 intervenciones) el 23/08/2007 19:39:38
en vba me voy defendiendo gracias a leer y al ensayo error y a unas pocas nociones voy sacando algunas cosas.
es muy complicado?
he estado toda la tarde dándole vueltas a la rnd pero nada, siempre me da el mismo número y no soy capaz a marcar el rango (sólo he sido capaz de hacerlo dando un rango determinado)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por José Luis (700 intervenciones) el 23/08/2007 20:15:21
Esta función genera números enteros aleatorios sin repetición.

Hay que usarla así:

La celda D1 debe estar vacía. Copiar y pegar la fórmula entre D2 y D11
=RNDIntUnico(1;10;D$1:D1)

Generará números entre el 1 y el 10.
Muy importante, el rango D$1:D1 irá cambiando según la celda hasta D$1:D10.
es preciso que la celda inicial del rango siempre quede fija.
Si el rango es mayor que la cantidad de números a generar se indicará error, en las celdas sobrantes.

'---------Inicio código----------------
Function RNDIntUnico(ValorMin As Integer, ValorMax As Integer, RangoValidar As Range)
Dim NuevoRND As Integer
Dim Valor As Range
Dim eol As Boolean
Dim i As Long
Dim ic As Long
Dim Permutacion As Long
Dim MaxDifer As Long
'
MaxDifer = (ValorMax - ValorMin + 1)
'
' Núm máximo de combinaciones = MaxDifer!
i = 0
Permutacion = 1
For i = 2 To MaxDifer
Permutacion = Permutacion * i
Next i
'
' Control de vueltas
i = 0
' Control para continuar si no se ha llegado al máximo
ic = 0
eol = False
'
While eol = False
i = i + 1
ic = 0
'Genera el número aleatorio dentro del rango
Randomize
NuevoRND = Int(MaxDifer * Rnd + ValorMin)
'
For Each Valor In RangoValidar
eol = True
ic = ic + 1
If NuevoRND = Valor.Value Then
eol = False
Exit For
End If
Next Valor
'Si la cantidad de Números generados (ic) es menor que la
' total a generar, se debe continuar con la generación
If eol = False Then
If ic <= MaxDifer Then
eol = False
If i > Permutacion Then
RNDIntUnico = "Error"
Exit Function
End If
Else
RNDIntUnico = "Error"
Exit Function
End If
End If
Wend
'
RNDIntUnico = NuevoRND
End Function
'----------------Fin código------------------

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por Calima (16 intervenciones) el 24/08/2007 07:24:00
uff, esto es la ostia, demasiado para mi, me estás haciendo sudar ya de mañana!! Gracias, pero por lo que veo es seguiría teniendo el mismo problema es decir, el rango es aleatorio y no es seguido, es decir, son 10 números, sólo esos 10 de entre 1 y 100 y están en una determinada columna. No sé si me explico bien, pero de todos modos una función como esta no la haría yo ni en 4 años, jejeje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por José Luis (700 intervenciones) el 24/08/2007 08:26:05
Visto que estás atascado/a vamos a explicar una tontería.

La generación de los números aleatorios del 1 al 10, sirve para generar las referencias de las celdas donde están los números que deben aparecer. En tu caso, si los números con los que debes generar las series están en la columa A de la fila 2 a la 10
____[A]
[2]___7
[3]___23
[4]___14
[5]___35
[6]___59
[7]___61
[8]___2
[9]___8
[10]__12

Al generar la serie del 1 al 9 podría quedar así en B2 = RNDIntUnico(1;9;B$1:B1)
___ [B]
[2]__8
[3]__1
[4]__3
[5]__2
[6]__9
[7]__6
[8]__4
[9]__5
[10]__7

que con la función en C2 = INDIRECTO("A"&B2+1) generará una nueva combinación
___[c]
[2]___8
[3]___7
[4]___14
[5]___23
[6]___12
[7]___61
[8]___35
[9]___59
[10]__2

NOTA: en este caso NO se deben anidar las funciones de la forma INDIRECTO("A"&RNDIntUnico(1;9;B$1:B1)+1).

Otra solución sería generar una función/macro que hiciese todas las combinaciones posibles de los valores de un rango de celdas (permutaciones).
En este sitio podrás encontrar algunas macros que te servirán de ejemplo:
http://www.fcjs.urjc.es/finan/macros.htm

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por Calima (16 intervenciones) el 24/08/2007 08:29:31
Gracias voy a ver que consigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por Calima (16 intervenciones) el 24/08/2007 10:02:51
Gracias, no sé que estoy haciendo mal porque con la función que me pusiste solo me sale ¿NOMBRE? ahora estoy mirando las macros de la pg que has puesto (está genial) a ver si doy con alguna solución.

GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por José Luis (700 intervenciones) el 24/08/2007 10:33:37
¿Has creado la función RNDIntUnico?
Esa función no existe en Excel y debes crearla en un módulo de VBA en el libro donde estés realizando el trabajo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por Calima (16 intervenciones) el 24/08/2007 10:38:07
es la que me pusiste tu no?

Por otro lado, he estado a punto de cantar victoria!! crei que ya lo tenía y estaba aquí contando como lo había logrado cuando me di cuenta que no.
Con la macro de aleatorios de la pg que has puesto (que por cierto me repite valores a veces), y utilizando las funciones min y max lograba sacar los valores, pero ... claro no son los de la columna que quiero, sino que se encuentran entre el rango de los de la columna, la emoción me confundió. Seguiremos intentando.

Gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por carlos_rojas (2 intervenciones) el 23/11/2010 01:40:32
hola si me pueden ayudar, he tratado de generar una serie de numero de tres cifras en diferentes celdas, pero me ha sido imposible, si fueran en celdas consecutivas no habria problema con "rellenar serie" , esto se puede hacer en excel,,, ante todo muchas gracias..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por Luis Fernando Giraldo (803 intervenciones) el 23/11/2010 01:50:19
Carlos te invito a explicar un poco más respecto a lo que necesitas para tratar de ayudarte y si es un tema diferente al que viene a esta nota, mejor entonces iniciar una nota nueva.

Cordial saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por Carlos Rojas (2 intervenciones) el 23/11/2010 23:40:24
ok, he tratado de generar una serie de numeros consecutivos y sin que se repitan pero en diferentes celdas, he intentado con =CONCATENAR(CARACTER(ALEATORIO.ENTRE(48;57));CARACTER(ALEATORIO.ENTRE(48;57));CARACTER(ALEATORIO.ENTRE(48;57))), utilizando la tabla ascii, pero a veces se repite los numeros, te explico mejor tengo 250 hojas de calculo y quiero generar numeros, si es posible continuos y consecutivos, que bien se podrian hacer con "rellenar serie", si fueran celdas continuas, pero en mi caso son celdas discontinuas y en diferentes hojas de calculo, te agradezco tu ayuda Luis Fernando Giraldo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda código aleatorio

Publicado por Luis Fernando Giraldo (803 intervenciones) el 24/11/2010 03:28:57
Si en una primer celda por ejemplo B2 tienes la siguiente función:

=ALEATORIO.ENTRE(1;5)

y luego en otra por ejemplo D4 donde quieras un número mayor que el anterior colocas:

=B2+ALEATORIO.ENTRE(1;5)

y asi sucesivamente

=D4+ALEATORIO.ENTRE(1;5)

como cada formulación es dependiente del anterior tendras números aleatorios siempre mayores que la anterior celda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar