Lotteria di Natale

Anonimo
2024-12-21T15:45:39+00:00

Buona sera a tutti,

vorrei organizzare una lotteria a bordo di una nave con 25 premi da assegnare.

La mia idea è questa:

l'equipaggio è composto da 185 persone e vorrei fare in modo da dare i premi a personale bisognoso e non il management di bordo.

Pertanto per rendere la lotteria credibile ho pensato di creare due liste, la prima con tutto il personale mentre la seconda con il management escluso.

Per fare questo avevo pensato di usare VBA con la funzione random ad esempio:

Estraggo un nome dalla prima tabella e la incollo su un foglio nuovo ad esempio nella cella A1 e poi cancello il nome per evitare il ripetersi dello stesso.

Estraggo un nome dalla seconda tabella e la incollo in C1 e cancello anche qui il nome per evitare il ripertesi dello stesso.

Quando sia nella colonna A che nella colonna C compare lo stesso nome ho avuto il primo vincitore e così via fino al 25 vincitore.

In questo modo, avendo solo nella prima tabella tutto il personale ci potrebbe essere l'estrazione di un nome del management ma mai la vittoria del premio perchè detto nome manca nella seconda tabella e quindi l'estrazione risulterebbe abbastanza veritiera.

Non so se mi sono spiegato nel mio complesso discorso e se è una cosa fattibile con VBA.

Anticipatamente ringrazio

Giuseppe

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2024-12-23T17:05:17+00:00

Ciao Giuseppe,

ti metto un file dove simulo due diversi tipi di estrazione.

Una prima simulazione non elimina mai i nominativi dal primo elenco presente nella tabella "Elenco Concorrenti".

Viene fatta una "estrazione" casuale dei nominativi sia della prima tabella che della seconda "Elenco Concorrenti Vincenti" (che rappresenterebbe l'elenco dei nominativi dei "non management"). Nell'esempio noterai che manca un certo numero di "nominativi".

In questo caso per avere 25 vincitori, considerando la doppia corrispondenza, ci possono volere alcune migliaia di estrazioni.

Una seconda simulazione elimina i nominativi estratti (dalla prima lista).

Ma in questo caso potresti avere, come avevo prospettato, casi in cui non hai alcun vincitore dopo che sono stati estratti, almeno una volta, tutti i nominativi presenti nella lista completa.

Ti metto il link al file per poterci "giocare": File Test Lotteria

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2024-12-23T08:21:12+00:00

    Ciao Giuseppe,

    ora la cosa mi sembra abbia un senso.

    Ma rimangono ancora dei dubbi.

    Per ottenere quello che chiedi, per prima cosa, occorrerebbe una doppia estrazione per una "serie" di estrazione.

    Se ho inteso tu faresti una estrazione casuale che potrebbe far uscire anche un soggetto "management".

    Ma poi faresti una seconda estrazione e in questa seconda, in pratica, faresti in modo che non esca mai un soggetto "management".

    Poi rimane il problema che eliminando i nominativi, anche quelli per i quali vorresti la possibile vittoria, potresti avere estrazioni senza vincitori.

    Partiamo dal tuo esempio.

    Estrai Pluto come prima estrazione. Hai un nome che potrebbe vincere. Ma devi fare una seconda estrazione di "conferma". Esce minnie.

    In questa prima serie di estrazioni, composta a sua volte da due estrazioni, non ha vinto nessuno (pluto<>minnie).

    Ma se elimini pluto e minnie alla prossima serie rimarrebbero pippo e topolino che non dovrebbero vincere.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2024-12-21T22:13:32+00:00

    Ciao

    un esempio con il 365

    =LET(E;FILTRO(A1:A20;DESTRA(A1:A20;12)<>"(management)");INDICE(E;INDICE(UNICI(MATR.CASUALE(CONTA.VALORI(E);1;1;CONTA.VALORI(E);VERO));SEQUENZA(6))))

    ma ha il solito problema del ricalcolo

    lo dovresti mettere in manuale altrimenti ad ogni operazione cambia

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2024-12-21T19:10:18+00:00

    Ciao Casanmaner,

    un po' non ci sentiamo.

    Ti ringrazio dei sempre utili suggerimenti e tengo a precisare che ho omesso un passaggio fondamentale:

    Elenco 1:

    pippo (management)

    pluto

    topolino (management)

    minnie

    elenco 2:

    pluto

    minnie

    Cioè nell'eleco 2 tolgo coloro che non dovranno vincere.

    A questo punto potrebbe uscire per casualità una persona del management (renderebbe l'estrazione più veritiera) ma sicuramente non vincerebbe mai, mentre pluto e minnie hanno la possibilità di essere estratti 2 volte e vincere il premio.

    Spero di essere stato più chiaro ed in un aiuto da parte tua .

    Ovviamente dall'elenco uno ad ogni estrazione il nome deve essere tolto dall'elenco altrimenti potrebbe uscire nuovamente

    Ciao

    Giuseppe

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2024-12-21T18:40:53+00:00

    Ma non si fa prima a preparare solo dei bigliettini con i nominativi del personale "non management" e metterli in un sacchetto :D :D :D :D

    l'equipaggio è composto da 185 persone e vorrei fare in modo da dare i premi a personale bisognoso e non il management di bordo.

    Pertanto per rendere la lotteria credibile ho pensato di creare due liste, la prima con tutto il personale mentre la seconda con il management escluso.

    Per fare questo avevo pensato di usare VBA con la funzione random ad esempio:

    Estraggo un nome dalla prima tabella e la incollo su un foglio nuovo ad esempio nella cella A1 e poi cancello il nome per evitare il ripetersi dello stesso.

    Estraggo un nome dalla seconda tabella e la incollo in C1 e cancello anche qui il nome per evitare il ripertesi dello stesso.

    Quando sia nella colonna A che nella colonna C compare lo stesso nome ho avuto il primo vincitore e così via fino al 25 vincitore.

    In questo modo, avendo solo nella prima tabella tutto il personale ci potrebbe essere l'estrazione di un nome del management ma mai la vittoria del premio perchè detto nome manca nella seconda tabella e quindi l'estrazione risulterebbe abbastanza veritiera.

    Non so se mi sono spiegato nel mio complesso discorso e se è una cosa fattibile con VBA.

    A parte le battute ma se dopo aver estratto un nominativo dal primo elenco, che comprende tutti i nomi, e un nominativo dal secondo elenco, che contiene il management, la corrispondenza tra A1 e C1 non potrà che essere con un nominativo del management.

    E quindi il vincitore sarà proprio un management.

    Inoltre potresti

    Esempio basico dove hai solo due soggetti di cui uno "management"

    Elenco 1 (tutti)

    Tizio

    Caio

    Elenco 2 (management)

    Caio

    Perché ci possa essere corrispondenza occorrerebbe che sia dal primo elenco che dal secondo venga estratto Caio.

    Dovresti avere che alla prima estrazione da ciascun elenco venga pescato Caio così che A1=C1.

    Ma Caio è, appunto, "management".

    Inoltre potresti anche avere il caso che nessun vincitore potrebbe esserci perché non hai mai l'estrazione dello stesso nominativo:

    Ad esempio fai una prima estrazione dall'elenco 1 e potrebbe uscire Tizio (che verrebbe eliminato). Fai l'estrazione dall'elenco 2 e, in questo caso inevitabilmente, esce Caio (che verrebbe eliminato).

    Non c'è un vincitore perché A1<>C1

    Fai una seconda estrazione dall'elenco 1 ed esce Tizio (inevitabilmente perché è rimasto solo quel nominativo).

    Dal secondo elenco non può esserci alcun nome estratto.

    Quindi in A1 hai un nome e in C1 non hai nulla.

    Non c'è un vincitore perché A1<>C1

    La risposta è stata utile?

    0 commenti Nessun commento