Orden aleatorio en Excel 2.0

Expertos.


Espero que me puedan ayudar, tengo una lista
de nombres en el rango B2:B10. Y en el Rango A2:A10 tengo los números de identidad de esas personas, y en el rango F2:F10 tengo un numero que
indica la cantidad de veces que se debe repetir el nombre y el numero de identidad.


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

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 !

1 Respuesta

Respuesta
1

Cambia la macro anterior por esta:

Dim num As New Collection
Dim con As New Collection
Dim ide As New Collection
Sub nombres()
'Por.DAM
u = Range("B" & Rows.Count).End(xlUp).Row
Range("C2:D" & 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"), Cells(i, "A")
    Next
Next
For i = 1 To num.Count
    Cells(i + 1, "C") = ide(i)
    Cells(i + 1, "D") = con(i)
Next
Set num = Nothing
Set con = Nothing
Set ide = Nothing
End Sub
Sub Addnum(n, m, k)
'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
            ide.Add k, Before:=i
            Exit Sub
        End If
    Next
    num.Add n
    con.Add m
    ide.Add k
End Sub

Saludos. Dante Amor
No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas