Impara Excel a Casa Tua - 100% Online

Non mi piace trattare di gioco d’azzardo quindi chiunque abbia bosognio di un “sistema di vincita” personalizzato è gentilmente invitato fin da subito ad assumere un freelencer da questo sito: http://bit.ly/2LSTt7G
Non provate a scrivermi in privato o nei commenti, non faccio le previsioni e non le può fare neppure Excel.

Con questo articolo rispondo alla domanda su come “calcolare i numeri vincenti del lotto“. Purtroppo, Excel NON può fare questa cosa, mi dicono però che Wanna Marchi ci possa riuscire. Excel, al massimo può generare dei numeri casuali o tenere traccia di quanti soldi stai “investendo” in scommesse.

Il problema principale di un generatore di numeri casuali su Excel è evitare la ripetizione dei numeri all’interno di una serie, infatti nel superenalotto non ci possono essere valori ripetuti. Si tratta di un problema che tutti devono affrontare, io sono riuscito a superarlo con una macro, e attendo che la Funzione Lambda sia disponibile anche per il resto dei mortali per fare eventualmente la seconda parte di questo articolo.
Forse non lo sai, ma la generazione di numeri casuali senza ripetizioni è veramente difficile da eseuire con Excel. Io sono felice di aver capito come fare e sono felice di mostrartelo.

Guarda il video: Programma Superenalotto Excel

 

Download gratuito

Ho creato un file Excel per generare numeri da giocare al lotto:

 

Link alternativo: scarica il file 💾

Aprendolo vedrai un grande pulsante “Inizia”, cliccandolo chiederà quante combinazioni vuoi generare. In ogni riga (serie) generata non ci sono valori ripetuti, però ovviamente lo stesso numero può essere presente in diverse righe.

superenalotto-excel

 

Quella che vedi in azione è una Macro in VBA. Per prima cosa, se non sei esperto di VBA meglio non metterci mano. Se invece sei curioso di sapere di più sul VBA puoi cliccare questo link e vedere la Masterclassi di MasterExcel per imparare il linguaggio VBA.

Il Codice

Aprendo il codice VBA dall’editor, come puoi vedere, ci sono dei commenti, in modo che potrai orientarti bene nel codice.

programma-superenalotto-excel

All’inizio chiede quante combinazioni vuoi, poi viene fatto un controllo per vedere se è stato inserito un numero intero (valore valido – e non numeri decimali o testi).

Controllo in Input

Il controllo viene effettuato tramite una If Not. Simile alla Funzione NON di Excel, quindi la conosci. La variabile ControllaMI viene arrotondata e sottratta a sé stessa. Se il risultato della sottrazione è diverso da zero allora è un numero decimale, quindi blocca tutto.

Se passa il controllo, allora la macro assegna a comb il valore ControllaMI, e si prosegue.

Crezione delle serie

La variabile comb è quante volte deve ripetere il ciclo, quindi quante combinazioni vuoi. Parte da 1 e poi se ho detto che voglio una sola combinazione, si ferma, altrimenti continua nel creare nuove serie di numeri da giocare, fino a quando comb non raggiunge il valore massimo fornito appena abbiamo fatto girare la macro.

Dentro questo ciclo però, abbiamo anche un altro ciclo ovvero quello di creazione dei numeri casuali senza ripetizione. Lo eseguiamo con la funzione build in del VBA, del tutto simile alla funzione casuale di Excel:

WorksheetFunction.RandBetween

In questo caso dobbiamo specificare tra 1 e 90 perché appunto nel superenalotto non possiamo giocare altri numeri.

Generati i 6 numeri casuali, ecco che ci troviamo il problema delle eventuali ripetizioni. Nel gioco del superenalotto non si possono avere ripetizioni. Questo è un problema annoso. Io l’ho risolto con un controllo e un ciclo indefinito. In particolare il controllo è eseguito da una Conta Se di Excel in maniera molto creativa:

=CONTA.SE($A$1:$F$1;A1)

Questa funzione è poi trascinata con l’autoriempimento (autofil) di Excel, non verso il basso ma verso destra.

Soccuessivamente somma i risultati delle Conta Se usando una funzione Somma. Questa formula restituisce valore 6 se non ci sono ripetizioni. Quindi se ci sono ripetizioni non da 6. Ergo, se non restitutisce 6 io ho impostato il ciclo di creazione dei una serie di numeri casuale fino a che non restituisce 6, grazie appunto al ciclo indefinito Do.

Se la somma non è uguale a 6, vuol dire che c’è qualche ripetizione o qualche altro problema, quindi cancella la serie che ha creato e riparte in loop finché non trova la variabile c = 6.

Questa macro è il modo migliore che io abbia ideato per non avere ripetizioni nella generazione di numeri casuali. Se vuoi puoi mettere mano al codice, ti serve conoscere il VBA e per impararlo, ti consiglio questo corso: MasterClass di VBA <– Clicca Qui!