Orden aleatorio en Excel

Expertos.

Espero que me puedan ayudar, tengo una lista de nombres en el rango B2:B10. En el rango F2:F10 tengo un numero que indica la cantidad de veces que se debe repetir el nombre.

Por ejemplo:

Juan 2

Francisco 4

Lili 3

Lo que necesito ya sea con formula o con una macro, es que desde la celda C2 hacia abajo, se genere una lista que repita los nombres de acuerdo a la cantidad que indica la columna F y que los ordene aleatoriamente.

Por ejemplo:

Juan

Francisco

Lili

Francisco

Lili

Juan

Francisco

Lili

Francisco

Espero que me puedan ayudar.

Muchas gracias !!!

1 respuesta

Respuesta
1

Podría ser con una macro, te la preparo y te la envío.

Saludos. Dante Amor

Te anexo la macro

Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: nombres
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Dim num As New Collection
Dim con As New Collection
Sub nombres()
'Por.DAM
u = Range("B" & Rows.Count).End(xlUp).Row
Range("C2:C" & Range("C" & Rows.Count).End(xlUp).Row).ClearContents
For i = 2 To u
    For j = 1 To Cells(i, "F")
        Addnum Evaluate("=RANDBETWEEN(1," & u + 100 & ")"), Cells(i, "B")
    Next
Next
For i = 1 To num.Count
    Cells(i + 1, "C") = con(i)
Next
Set num = Nothing
Set con = Nothing
End Sub
Sub Addnum(n, m)
'Por.DAM
    For i = 1 To num.Count
        If num(i) > n Then 'si el número almacenado es mayor lo almacena antes
            num.Add n, Before:=i
            con.Add m, Before:=i
            Exit Sub
        End If
    Next
    num.Add n
    con.Add m
End Sub

Saludos.Dante Amor
Si es lo que necesitas.

OOhhh que buena !! me resulto de maravilla!! Muchas gracias !

Pero se me agregó un nuevo problema, resulta que ahora en el rango A2:A10 tengo los números de Identidad de cada persona. como se puede ajustar para que la nueva lista que se genera incluya los números de identidad??

algo así.

De esto:

A B F


000123 Juan 2
000456 Francisco 4
000789 Lili 3

A esto:

C D

000123 Juan
000456 Francisco
000789 Lili
000456 Francisco
000789 Lili
000123 Juan
000456 Francisco
000789 Lili
000456 Francisco

Ojala me puedas ayudar, muchas gracias por todo !

Tengo que modificar la macro, podrías finalizar esta pregunta y crear una nueva para la nueva petición.

Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas