Funzioni RAND e RANDBETWEEN per generare numeri casuali in Excel

  • Condividi Questo
Michael Brown

L'esercitazione spiega le specificità dell'algoritmo del generatore di numeri casuali di Excel e dimostra come utilizzare le funzioni RAND e RANDBETWEEN per generare numeri casuali, date, password e altre stringhe di testo in Excel.

Prima di addentrarci nelle diverse tecniche di generazione di numeri casuali in Excel, definiamo cosa sono in realtà. In parole povere, i dati casuali sono una serie di numeri, lettere o altri simboli privi di qualsiasi schema.

La casualità trova diverse applicazioni nella crittografia, nella statistica, nelle lotterie, nel gioco d'azzardo e in molti altri campi. E poiché è sempre stata richiesta, fin dall'antichità esistono vari metodi per creare numeri casuali, come il lancio di monete, il lancio di dadi, il mescolamento di carte da gioco e così via. Naturalmente, in questo tutorial non ci baseremo su tecniche così "esotiche" e ci concentreremo suquello che il generatore di numeri casuali di Excel ha da offrire.

    Generatore di numeri casuali di Excel: le basi

    Sebbene il generatore di casualità di Excel superi tutti i test standard di casualità, non genera vero numeri a caso, ma non cancellateli subito :) Pseudo-casuale I numeri prodotti dalle funzioni casuali di Excel vanno bene per molti scopi.

    Diamo un'occhiata più da vicino all'algoritmo del generatore casuale di Excel, in modo da sapere cosa ci si può aspettare da esso e cosa no.

    Come la maggior parte dei programmi per computer, il generatore di numeri casuali di Excel produce numeri pseudocasuali utilizzando alcune formule matematiche. Ciò significa che, in teoria, i numeri casuali generati da Excel sono prevedibili, a patto che si conoscano tutti i dettagli dell'algoritmo del generatore. Questo è il motivo per cui non è mai stato documentato e difficilmente lo sarà mai. Ebbene, cosa sappiamo del generatore di numeri casuali di Excel?

    • Le funzioni RAND e RANDBETWEEN di Excel generano numeri pseudocasuali a partire dai valori di Uniforme distribuzione Una distribuzione uniforme, detta anche rettangolare, in cui c'è la stessa probabilità per tutti i valori che una variabile casuale può assumere. Un buon esempio di distribuzione uniforme è il lancio di un singolo dado. Il risultato del lancio è costituito da sei valori possibili (1, 2, 3, 4, 5, 6) e ognuno di questi valori ha la stessa probabilità di verificarsi. Per una spiegazione più scientifica, consultare wolfram.com.
    • Non c'è modo di alimentare le funzioni RAND o RANDBETWEEN di Excel, che si dice vengano inizializzate dall'ora di sistema del computer. Tecnicamente, una funzione seme è il punto di partenza per la generazione di una sequenza di numeri casuali. Ogni volta che viene richiamata una funzione casuale di Excel, viene utilizzato un nuovo seme che restituisce una sequenza casuale unica. In altre parole, quando si utilizza il generatore di numeri casuali di Excel, non è possibile ottenere una sequenza ripetibile con la funzione RAND o RANDBETWEEN, né con VBA, né con altri mezzi.
    • Nelle prime versioni di Excel, prima di Excel 2003, l'algoritmo di generazione casuale aveva un periodo relativamente piccolo (meno di 1 milione di sequenze di numeri casuali non ricorrenti) e falliva diversi test standard di casualità su sequenze casuali lunghe. Quindi, se qualcuno lavora ancora con una vecchia versione di Excel, è meglio che non usi la funzione RAND con modelli di simulazione di grandi dimensioni.

    Se state cercando vero Per generare dati casuali, è possibile utilizzare un generatore di numeri casuali di terze parti, come www.random.org, la cui casualità deriva dal rumore atmosferico. Offrono servizi gratuiti per generare numeri casuali, giochi e lotterie, codici colore, nomi casuali, password, stringhe alfanumeriche e altri dati casuali.

    Ok, questa introduzione tecnica piuttosto lunga finisce e passiamo alle cose pratiche e più utili.

    Funzione RAND di Excel: generare numeri reali casuali

    Il RAND di Excel è una delle due funzioni appositamente studiate per la generazione di numeri casuali e restituisce un numero decimale casuale (un numero reale) compreso tra 0 e 1. La funzione è stata progettata per generare numeri casuali.

    RAND() è una funzione volatile, il che significa che viene generato un nuovo numero casuale ogni volta che viene calcolato il foglio di lavoro, e questo avviene ogni volta che si esegue un'azione su un foglio di lavoro, ad esempio l'aggiornamento di una formula (non necessariamente la formula RAND, ma qualsiasi altra formula in un foglio), la modifica di una cella o l'inserimento di nuovi dati.

    La funzione RAND è disponibile in tutte le versioni di Excel 365 - 2000.

    Poiché la funzione RAND di Excel non ha argomenti, è sufficiente inserire =RAND() in una cella e poi copiare la formula in tutte le celle desiderate:

    Ora facciamo un passo avanti e scriviamo alcune formule RAND per generare numeri casuali in base alle condizioni.

    Formula 1. Specificare il valore limite superiore dell'intervallo

    Per generare numeri casuali compresi tra zero e qualsiasi N si moltiplica la funzione RAND per N:

    RAND()* N

    Ad esempio, per creare una sequenza di numeri casuali maggiori o uguali a 0 ma inferiori a 50, utilizzare la seguente formula:

    =RAND()*50

    Nota: il valore limite superiore non è mai incluso nella sequenza casuale restituita. Ad esempio, se si desidera ottenere numeri casuali compresi tra 0 e 10, incluso 10, la formula corretta è =RAND()*11 .

    Formula 2. Generare numeri casuali tra due numeri

    Per creare un numero casuale compreso tra due numeri specificati dall'utente, utilizzare la seguente formula RAND:

    RAND()*( B - A )+ A

    Dove A è il valore limite inferiore (il numero più piccolo) e B è il valore limite superiore (il numero più grande).

    Ad esempio, per generare numeri casuali compresi tra 10 e 50, è possibile utilizzare la seguente formula:

    =RAND()*(50-10)+10

    Nota: questa formula casuale non restituirà mai un numero uguale al numero più grande dell'intervallo specificato ( B valore).

    Formula 3. Generazione di numeri interi casuali in Excel

    Per fare in modo che la funzione RAND di Excel produca numeri interi casuali, prendete una delle formule di cui sopra e inseritela nella funzione INT.

    Per creare numeri interi casuali compresi tra 0 e 50:

    =INT(RAND()*50)

    Per generare numeri interi casuali compresi tra 10 e 50:

    =INT(RAND()*(50-10)+10)

    Funzione RANDBETWEEN di Excel: genera numeri interi casuali in un intervallo specificato.

    RANDBETWEEN è un'altra funzione fornita da Excel per la generazione di numeri casuali. Restituisce numeri casuali numeri interi nell'intervallo specificato dall'utente:

    RANDBETWEEN(bottom, top)

    Ovviamente, b pouf è il numero più basso e top è il numero più alto dell'intervallo di numeri casuali che si desidera ottenere.

    Come RAND, RANDBETWEEN di Excel è una funzione volatile e restituisce un nuovo intero casuale ogni volta che il foglio di calcolo viene ricalcolato.

    Ad esempio, per generare numeri interi casuali compresi tra 10 e 50 (inclusi 10 e 50), utilizzare la seguente formula RANDBETWEEN:

    =TRA 10 E 50

    La funzione RANDBETWEEN di Excel può creare numeri sia positivi che negativi. Ad esempio, per ottenere un elenco di numeri interi casuali da -10 a 10, inserite la seguente formula nel vostro foglio di lavoro:

    =RANDBETWEEN(-10, 10)

    La funzione RANDBETWEEN è disponibile in Excel 365 - Excel 2007. Nelle versioni precedenti, è possibile utilizzare la formula RAND dimostrata nell'esempio 3 qui sopra.

    Più avanti in questo tutorial, troverete altri esempi di formule che dimostrano come utilizzare la funzione RANDBETWEEN per generare valori casuali diversi dai numeri interi.

    Suggerimento: in Excel 365 e Excel 2021, è possibile utilizzare la funzione RANDARRAY (matrice dinamica) per restituire una matrice di numeri casuali compresi tra due numeri specificati dall'utente.

    Creare numeri casuali con cifre decimali specificate

    Sebbene la funzione RANDBEETWEEN di Excel sia stata progettata per restituire numeri interi casuali, è possibile forzarla a restituire numeri decimali casuali con il numero di cifre decimali desiderato.

    Ad esempio, per ottenere un elenco di numeri con una sola cifra decimale, si moltiplica il valore inferiore e quello superiore per 10, quindi si divide il valore restituito per 10:

    RANDBETWEEN( valore di fondo * 10, valore massimo * 10)/10

    La seguente formula RANDBETWEEN restituisce numeri decimali casuali compresi tra 1 e 50:

    =RANDBBETWEEN(1*10, 50*10)/10

    In modo analogo, per generare numeri casuali compresi tra 1 e 50 con 2 cifre decimali, si moltiplicano gli argomenti della funzione RANDBETWEEN per 100, e poi si divide il risultato per 100:

    =RANDBETWEEN(1*100, 50*100) / 100

    Come generare date casuali in Excel

    Per restituire un elenco di date casuali tra le due date indicate, utilizzare la funzione RANDBETWEEN in combinazione con DATEVALUE:

    RANDBETWEEN(VALORE DELLA DATA( data di inizio ), DATEVALUE( data di fine ))

    Ad esempio, per ottenere l'elenco delle date comprese tra il 1° giugno 2015 e il 30 giugno 2015, inserire la seguente formula nel foglio di lavoro:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))

    In alternativa, è possibile utilizzare la funzione DATE invece di DATEVALUE:

    =RANDBETWEEN(DATA(2015,6,1),DATAVALORE(2015,6,30))

    Ricordate di applicare il formato data alle celle e otterrete un elenco di date casuali simile a questo:

    Per una serie di opzioni avanzate, come la generazione di giorni feriali o weekend casuali, consultare il Generatore casuale avanzato di date.

    Come inserire tempi casuali in Excel

    Ricordando che nel sistema interno di Excel i tempi sono memorizzati come decimali, è possibile utilizzare la funzione RAND standard di Excel per inserire numeri reali casuali, e quindi applicare semplicemente il formato dell'ora alle celle:

    Per restituire tempi casuali secondo i propri criteri, sono necessarie formule casuali più specifiche, come dimostrato di seguito.

    Formula 1. Generare tempi casuali nell'intervallo specificato

    Per inserire tempi casuali tra due tempi specificati, utilizzare la funzione TEMPO o VALORE TEMPO insieme a RAND di Excel:

    TEMPO( ora di inizio )+RAND() * (TEMPO( ora di inizio ) - TEMPO( ora di fine )) TIMEVALUE( ora di inizio )+RAND() * (VALORE TEMPORALE( ora di inizio ) - TIMEVALUE( ora di fine ))

    Ad esempio, per inserire un orario casuale tra le 6:00 e le 17:30, è possibile utilizzare una delle seguenti formule:

    =ORA(6,0,0) + RAND() * (ORA(17,30,0) - ORA(6,0,0))

    =VALORE ORARIO("6:00") + RAND() * (VALORE ORARIO("17:30") - VALORE ORARIO("6:00"))

    Formula 2. Generazione di date e orari casuali

    Per creare un elenco di casuali date e orari utilizzare una combinazione di funzioni RANDBETWEEN e DATEVALUE:

    RANDBETWEEN(VALORE DELLA DATA( data di inizio) , DATEVALUE( data di fine )) + RANDBETWEEN(VALORE TEMPORALE( ora di inizio ) * 10000, VALORE TEMPORALE( ora di fine ) * 10000)/10000

    Supponendo di voler inserire date casuali tra il 1° giugno 2015 e il 30 giugno 2015 con un orario compreso tra le 7:30 e le 18:00, la formula seguente funzionerà a meraviglia:

    =RANDBETWEEN(DATEVALUE("1-giugno-2015"), DATEVALUE("30-giugno-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000

    È inoltre possibile fornire date e orari utilizzando rispettivamente le funzioni DATA e ORA:

    =RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000

    Generazione di lettere casuali in Excel

    Per restituire una lettera casuale, è necessaria la combinazione di tre diverse funzioni:

    =CHAR(RANDBETWEEN(CODICE("A"),CODICE("Z")))

    Dove A è il primo carattere e il carattere Z è l'ultimo carattere dell'intervallo di lettere che si desidera includere (in ordine alfabetico).

    Nella formula precedente:

    • CODE restituisce i codici numerici ANSI per le lettere specificate.
    • RANDBETWEEN prende i numeri restituiti dalle funzioni CODE come valori inferiori e superiori dell'intervallo.
    • CHAR converte i codici ANSI casuali restituiti da RANDBETWEEN nelle lettere corrispondenti.

    Nota: poiché i codici ANSI sono diversi per i caratteri MAIUSCOLI e quelli minuscoli, la formula è sensibile alle maiuscole e alle minuscole .

    Se qualcuno ricorda a memoria la tabella dei codici dei caratteri ANSI, nulla vieta di fornire i codici direttamente alla funzione RANDBETWEEN.

    Ad esempio, per ottenere un'immagine casuale Lettere maiuscole tra A (codice ANSI 65) e Z (codice ANSI 90), si scrive:

    =CHAR(RANDBETWEEN(65, 90))

    Per generare lettere minuscole da a (codice ANSI 97) a z (codice ANSI 122), si utilizza la seguente formula:

    =CHAR(RANDBETWEEN(97, 122))

    Per inserire un carattere speciale casuale, come ! " # $ % & ' ( ) * + , - . /, utilizzare la funzione RANDBETWEEN con l'opzione fondo impostato su 33 (codice ANSI per "!") e il parametro top impostato su 47 (codice ANSI per "/").

    =CHAR(RANDBETWEEN(33,47))

    Generazione di stringhe di testo e password in Excel

    Per creare una stringa di testo casuale in Excel, è sufficiente concatenare diverse funzioni CHAR / RANDBEETWEEN.

    Ad esempio, per generare un elenco di password composto da 4 caratteri, si può utilizzare una formula simile a questa:

    =RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))

    Per rendere la formula più compatta, ho fornito i codici ANSI direttamente nella formula. Le quattro funzioni restituiscono i seguenti valori casuali:

    • RANDBETWEEN(0,9) - restituisce numeri casuali compresi tra 0 e 9.
    • CHAR(RANDBETWEEN(65,90)) - restituisce lettere casuali in MAIUSCOLO tra A e Z .
    • CHAR(RANDBETWEEN(97, 122)) - restituisce lettere minuscole casuali tra a e z .
    • CHAR(RANDBETWEEN(33,47)) - restituisce caratteri speciali casuali.

    Le stringhe di testo generate con la formula di cui sopra sarebbero qualcosa di simile a " 4Np# " o " 2Yu& ".

    Una parola di cautela! Se si usa una formula simile per creare password casuali, queste non saranno forti. Naturalmente, nulla vieta di generare stringhe di testo più lunghe concatenando più funzioni CHAR / RANDBETWEEN. Tuttavia, è impossibile randomizzare l'ordine dei caratteri, cioè la prima funzione restituisce sempre un numero, la seconda una lettera maiuscola e così via.

    Se cercate un generatore avanzato di password casuali in Excel in grado di produrre stringhe di testo di qualsiasi lunghezza e modello, potete verificare le funzionalità di Advanced Random Generator for test strings.

    Inoltre, tenete presente che le stringhe di testo generate con la formula precedente cambieranno ogni volta che il foglio di lavoro verrà ricalcolato. Per garantire che le stringhe o le password rimangano invariate una volta create, dovrete impedire alla funzione RANDBETWEEN di aggiornare i valori, il che ci porta direttamente alla sezione successiva.

    Come evitare che RAND e RANDBETWEEN vengano ricalcolati

    Se volete ottenere un insieme permanente di numeri, date o stringhe di testo casuali che non cambieranno ogni volta che il foglio viene ricalcolato, utilizzate una delle seguenti tecniche:

    1. Per impedire che le funzioni RAND o RANDBETWEEN vengano ricalcolate in una cella selezionare la cella, passare alla barra della formula e premere F9 per sostituire la formula con il suo valore.
    2. Per evitare che una funzione casuale di Excel venga ricalcolata, utilizzate la funzione Incolla speciale> Valori. Selezionate tutte le celle con la formula casuale, premete Ctrl + C per copiarle, quindi fate clic con il tasto destro del mouse sull'intervallo selezionato e fate clic su Incolla speciale > Valori .

    Per saperne di più su questa tecnica per "congelare" i numeri casuali, vedere Come sostituire le formule con i valori.

    Come generare numeri casuali unici in Excel

    Nessuna delle funzioni casuali di Excel è in grado di produrre valori casuali unici. Se si vuole creare un elenco di numeri casuali senza duplicati , eseguire i seguenti passaggi:

    1. Usare la funzione RAND o RANDBETWEEN per generare un elenco di numeri casuali. Creare più valori di quelli effettivamente necessari, perché alcuni saranno duplicati da eliminare in seguito.
    2. Convertire le formule in valori come spiegato sopra.
    3. Rimuovete i valori duplicati utilizzando lo strumento integrato di Excel o il nostro avanzato Duplicate Remover for Excel.

    Altre soluzioni si trovano in questo tutorial: Come generare numeri casuali senza duplicati.

    Generatore di numeri casuali avanzato per Excel

    Ora che sapete come utilizzare le funzioni casuali in Excel, vi mostrerò un modo più rapido, semplice e privo di formule per creare un elenco di numeri, date o stringhe di testo casuali nei vostri fogli di lavoro.

    AbleBits Random Generator for Excel è stato progettato come alternativa più potente e facile da usare alle funzioni RAND e RANDBETWEEN di Excel. Funziona con tutte le versioni di Microsoft Excel 2019, 2016, 2013, 2010, 2007 e 2003 e risolve la maggior parte dei problemi di qualità e usabilità delle funzioni casuali standard.

    Algoritmo del generatore di numeri casuali AbleBits

    Prima di mostrare il nostro Generatore casuale in azione, vorrei fornire alcune note chiave sul suo algoritmo, in modo che sappiate esattamente cosa vi stiamo offrendo.

    • Il generatore di numeri casuali AbleBits per Excel si basa sull'algoritmo Mersenne Twister, considerato uno standard industriale per la pseudo-casualizzazione di alta qualità.
    • Utilizziamo la versione MT19937 che produce una sequenza normalmente distribuita di numeri interi a 32 bit con un periodo molto lungo di 2^19937 - 1, più che sufficiente per tutti gli scenari immaginabili.
    • I numeri casuali generati con questo metodo sono di altissima qualità. Il generatore di numeri casuali ha superato con successo numerosi test di casualità statistica, tra cui i noti test NIST Statistical Test Suite e Diehard e alcuni test di casualità TestU01 Crush.

    A differenza delle funzioni casuali di Excel, il nostro Generatore di numeri casuali crea valori casuali permanenti che non cambiano quando un foglio di calcolo viene ricalcolato.

    Come già detto, questo generatore di numeri casuali avanzato per Excel offre un modo privo di formule (e quindi di errori :) per creare vari valori casuali, come ad esempio:

    • Numeri interi o decimali casuali, compresi i numeri unici
    • Date casuali (giorni lavorativi, fine settimana o entrambi, e opzionalmente date uniche)
    • Stringhe di testo casuali, comprese le password di una determinata lunghezza e modello, o per maschera
    • Valori booleani casuali di VERO e FALSO
    • Selezione casuale da elenchi personalizzati

    E ora, come promesso, vediamo il Generatore di numeri casuali in azione.

    Generare numeri casuali in Excel

    Con AbleBits Random Number Generator, creare un elenco di numeri casuali è facile come fare clic sul pulsante Generare pulsante.

    Generazione di numeri interi casuali unici

    Tutto ciò che si deve fare è selezionare l'intervallo da popolare con numeri interi casuali, impostare i valori inferiore e superiore e, facoltativamente, controllare l'opzione Valori unici scatola.

    Generazione di numeri reali casuali (decimali)

    In modo analogo, è possibile generare una serie di numeri decimali casuali nell'intervallo specificato.

    Creare date casuali in Excel

    Per le date, il nostro Generatore di numeri casuali offre le seguenti opzioni:

    • Generare date casuali per un periodo di tempo specifico - si inserisce la data di fondo nel campo Da e la data superiore nella casella A scatola.
    • Includere i giorni feriali, i fine settimana o entrambi.
    • Generare date uniche.

    Generare stringhe di testo e password casuali

    Oltre a numeri e date casuali, con questo Generatore casuale è possibile creare facilmente stringhe alfanumeriche casuali con determinati set di caratteri. La lunghezza massima delle stringhe è di 99 caratteri, il che consente di generare password davvero forti.

    Un'opzione unica fornita dal generatore di numeri casuali di AbleBits è la creazione di stringhe di testo casuali per maschera È una funzione molto utile per generare identificatori univoci globali (GUID), codici postali, SKU e così via.

    Ad esempio, per ottenere un elenco di GUID casuali, si seleziona il set di caratteri esadecimali e si digita ????????-????-????-???????????? nel campo Maschera come mostrato nella schermata:

    Se siete interessati a provare il nostro Generatore casuale, potete scaricarlo qui sotto come parte della nostra Ultimate Suite per Excel.

    Download disponibili

    Esempi di formule casuali (file .xlsx)

    Ultimate Suite 14 giorni versione completamente funzionale (file .exe)

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.