Ya no me quedan neuronas vivas

16/02/2004 - 16:48 por Andrés Farias | Informe spam
Hola a todos
Tengo un dilema que no he podido resolver. Espero que me puedan ayudar.
(enviaré adjunto de 17,5 Kb)
Tengo unos códigos numéricos asociados a productos que van de 1 a 50, y
tengo que completar una tabla de asignaciones con solamente 10 de ellos
elegidos al azar, sin criterio alguno de selección.
Quiero lograr una fórmula que me permita realizar esta selección
aleatoriamente pero sin que se repitan los valores elegidos, ya sea mediante
un botón, macro o un simple F9.
Hasta el momento he intentado con las siguientes fórmulas y combinaciones de
ellas sin lograr dar con el resultado requerido:
JERARQUIA()
ALEATORIO()
K.ESIMO.MAYOR()
BUSCARV()
BUSCARH()
ELEGIR()
SI()
CONTARA()
LOS.POLLITOS.DICEN.PIO.PIO.PIO() (¡medida desesperada!)
Ojala alguien tenga ya resuelto este drama anteriormente y me pueda
compartir su experiencia.
Eternamente agradecido.
Andrés Farias.cl
AMD Athlon 2000
Dual Boot
MotherBoard Integrada de la más ordinaria
Windows XP Pro SP1 + Win2k Server SP4
Tower sin tapas y cables sueltos por doquier.
 

Leer las respuestas

#1 Fernando Arroyo
16/02/2004 - 17:49 | Informe spam
Hace algunas semanas se planteó una consulta similar, si bien en este caso era para obtener 6 números aleatorios y no repetidos de la serie 1-49 (probablemente para la lotería española llamada primitiva). Yo escribí un pequeño sub, y lo he retocado por si puede servirte:

Sub Aleatorio10_50()
Dim v As Byte, s As String, m As Variant
'Crear la matriz con los 6 números
Do
v = Int((50 - 1 + 1) * Rnd + 1)
If InStr(s, Right("0" & v, 2)) = 0 Then
s = s & IIf(Len(s) = 0, "", ",") & Right("0" & v, 2)
End If
m = Split(s, ",")
If UBound(m) = 10 Then Exit Do
Loop

'Volcar matriz a hoja
For v = 1 To 10
Worksheets("Hoja1").Range("G" & v + 5) = m(v - 1)
Next v

'Ordenar rango A1:A6
Worksheets("Hoja1").[E6:G15].Sort _
Key1:=Range("G6"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Lo he probado un par de veces y parece que funciona, pero no estará de más que tú lo pruebes más a fondo antes de fiarte de que trabaja bien.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Andrés Farias" <andresfariasARROBAmsnPUNTOcom> escribió en el mensaje news:
Hola a todos
Tengo un dilema que no he podido resolver. Espero que me puedan ayudar.
(enviaré adjunto de 17,5 Kb)
Tengo unos códigos numéricos asociados a productos que van de 1 a 50, y
tengo que completar una tabla de asignaciones con solamente 10 de ellos
elegidos al azar, sin criterio alguno de selección.
Quiero lograr una fórmula que me permita realizar esta selección
aleatoriamente pero sin que se repitan los valores elegidos, ya sea mediante
un botón, macro o un simple F9.
Hasta el momento he intentado con las siguientes fórmulas y combinaciones de
ellas sin lograr dar con el resultado requerido:
JERARQUIA()
ALEATORIO()
K.ESIMO.MAYOR()
BUSCARV()
BUSCARH()
ELEGIR()
SI()
CONTARA()
LOS.POLLITOS.DICEN.PIO.PIO.PIO() (¡medida desesperada!)
Ojala alguien tenga ya resuelto este drama anteriormente y me pueda
compartir su experiencia.
Eternamente agradecido.
Andrés Farias.cl
AMD Athlon 2000
Dual Boot
MotherBoard Integrada de la más ordinaria
Windows XP Pro SP1 + Win2k Server SP4
Tower sin tapas y cables sueltos por doquier.


Preguntas similares