Condividi:        

[excel] sorteggio da una lista due a due

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[excel] sorteggio da una lista due a due

Postdi Aridien » 26/04/13 10:28

Salve, il mio problema e' il seguente: ho una lista da 2 a 61 di nominativi; 2 nominativi formano una coppia; per ogni coppia di nominativi devo fare un sorteggio e per assegnare una posizione 1 o 2; esempio:

assumiamo che i nominativi siano in colonna A: a b c d e f ... z (sono i nominativi)
devo accoppiare (a con b) - (c con d) - (e con f) - (g con h) etc
e poi mettere i singoli nomi accoppiati in ordine random tra di loro (b-a) (c-d) (f-e) (g-h)

a ..................(a,b)..................................(b,a)
b
c....................(c,d).................................(c,d)
d......accoppiare.............ora random
e......valori........(e,f)......tra accoppiamento....(e,f)
f
g.....................(g,h)................................(h,g)
h


grazie per il possibile aiuto

p.s. (se vi chiedete se per caso ancora sto lavorando a quel foglio eletronico la rispsta e' si :))
Win7 + Office 2010 Ita
Aridien
Utente Junior
 
Post: 26
Iscritto il: 15/03/13 22:50

Sponsor
 

Re: [excel] sorteggio da una lista due a due

Postdi Aridien » 26/04/13 11:04

Codice: Seleziona tutto
Range("B10:O11").Select
    ActiveWorkbook.Worksheets("Inserimento").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Inserimento").Sort.SortFields.Add Key:=Range( _
        "J10:J11"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Inserimento").Sort
        .SetRange Range("B10:O11")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With


ho utilizzato questo codice e funziona, solo che dovrei ricscriverlo 30 volte (30 sono le coppie); c'e un modo per farlo fare ciclicamente?
Win7 + Office 2010 Ita
Aridien
Utente Junior
 
Post: 26
Iscritto il: 15/03/13 22:50

Re: [excel] sorteggio da una lista due a due

Postdi Aridien » 26/04/13 12:36

dimenticavo, nel codice precedente la modifica per ogni ripetizione sarebbe
b10:011 j10:j11
b12:013 j12:j13
b14:015 j14:j15
..................
b60:061 j60:j61
Win7 + Office 2010 Ita
Aridien
Utente Junior
 
Post: 26
Iscritto il: 15/03/13 22:50

Re: [excel] sorteggio da una lista due a due

Postdi Anthony47 » 26/04/13 13:02

Quindi, ferma la posizione in colonna A dei dati di partenza, in quantita' variabile; dove vuoi che vengano posizionate le coppie prodotte? E' l' ordine tra gli elementi di una coppia che vuoi variare in modo random (es a-b oppure b-a)?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [excel] sorteggio da una lista due a due

Postdi Aridien » 26/04/13 14:41

a-b in r1 s1; c-d in r2 s2; e-f in r3 s3 e cosi via;
random tra a e b; random tra c e d; random tra e e f;....
Win7 + Office 2010 Ita
Aridien
Utente Junior
 
Post: 26
Iscritto il: 15/03/13 22:50

Re: [excel] sorteggio da una lista due a due

Postdi Anthony47 » 26/04/13 15:00

Quindi probabilmente
Codice: Seleziona tutto
Sub rerand()
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row Step 2
myRand = Rnd()
    If myRand <= 0.5 Then
        Range("R1").Offset(I / 2 - 1, 0) = Cells(I, 1)
        Range("R1").Offset(I / 2 - 1, 1) = Cells(I + 1, 1)
    Else
        Range("R1").Offset(I / 2 - 1, 0) = Cells(I + 1, 1)
        Range("R1").Offset(I / 2 - 1, 1) = Cells(I, 1)
    End If
Next I
End Sub

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[excel] sorteggio da una lista due a due":


Chi c’è in linea

Visitano il forum: Nessuno e 76 ospiti