Come generare numeri casuali in Excel senza ripetizioni

  • Condividi Questo
Michael Brown

In questo articolo discuteremo alcune formule diverse per randomizzare in Excel senza ripetere i numeri. Inoltre, vi mostreremo un generatore casuale universale in grado di produrre un elenco di numeri, date e stringhe casuali senza ripetizioni.

Come probabilmente sapete, Microsoft Excel dispone di diverse funzioni per la generazione di numeri casuali, come RAND, RANDBETWEEN e RANDARRAY. Tuttavia, non è garantito che il risultato di qualsiasi funzione sia privo di duplicati.

Questo tutorial spiega alcune formule per creare un elenco di numeri casuali univoci. Si prega di prestare attenzione al fatto che alcune formule funzionano solo nell'ultima versione di Excel 365 e 2021, mentre altre possono essere utilizzate in qualsiasi versione di Excel 2019, Excel 2016, Excel 2013 e precedenti.

    Ottenere un elenco di numeri casuali unici con passo predefinito

    Funziona solo in Excel 365 e Excel 2021 che supportano gli array dinamici.

    Se si dispone dell'ultima versione di Excel, il modo più semplice per ottenere una elenco di numeri casuali unici è quello di combinare 3 nuove funzioni di array dinamico: SORTBY, SEQUENCE e RANDARRAY:

    SORTBY(SEQUENZA( n ), RANDARRAY( n ))

    Dove n è il numero di valori casuali che si desidera ottenere.

    Per esempio, per creare un elenco di 5 numeri casuali, usare 5 per n :

    =SORTBY(SEQUENZA(5), RANDARRAY(5))

    Inserite la formula nella cella più in alto, premete il tasto Invio e i risultati si distribuiranno automaticamente sul numero di celle specificato.

    Come si può vedere nella schermata sottostante, questa formula è in realtà ordina i numeri da 1 a 5 in ordine casuale Se avete bisogno di un generatore di numeri casuali classico senza ripetizioni, consultate gli altri esempi che seguono.

    Tutti gli altri argomenti sono lasciati ai loro valori predefiniti, il che significa che l'elenco inizierà da 1 e sarà incrementato di 1. Se si desidera un primo numero e un incremento diversi, impostare i propri valori per il terzo ( inizio ) e 4° ( passo ) della funzione SEQUENCE.

    Ad esempio, per partire da 100 e incrementare di 10, utilizzare questa formula:

    =SORTBY(SEQUENZA(5, , 100, 10), RANDARRAY(5))

    Come funziona questa formula:

    Lavorando dall'interno verso l'esterno, ecco cosa fa la formula:

    • La funzione SEQUENZA crea un array di numeri sequenziali basati sul valore iniziale specificato o predefinito e su una dimensione di passo crescente. Questa sequenza viene inviata al file array argomento di SORTBY.
    • La funzione RANDARRAY crea un array di numeri casuali della stessa dimensione della sequenza (5 righe, 1 colonna nel nostro caso). I valori minimo e massimo non sono importanti, quindi possiamo lasciarli predefiniti. Questo array viene inserito nella variabile per_array argomento di SORTBY.
    • La funzione SORTBY ordina i numeri sequenziali generati da SEQUENCE utilizzando un array di numeri casuali prodotti da RANDARRAY.

    Tenete presente che questa semplice formula crea un elenco di numeri casuali non ripetuti con un valore di passo predefinito Per aggirare questa limitazione, utilizzare una versione avanzata della formula descritta di seguito.

    Generare un elenco di numeri casuali senza duplicati

    Funziona solo in Excel 365 e Excel 2021 che supportano gli array dinamici.

    Per generare numeri casuali in Excel senza duplicati, utilizzate una delle formule generiche riportate di seguito.

    Numeri interi casuali :

    INDICE(UNIQUE(RANDARRAY( n ^2, 1, min , massimo , TRUE)), SEQUENZA( n ))

    Decimali casuali :

    INDICE(UNIQUE(RANDARRAY( n ^2, 1, min , massimo , FALSE)), SEQUENZA( n ))

    Dove:

    • N è il numero di valori da generare.
    • Min è il valore minimo.
    • Massimo è il valore massimo.

    Ad esempio, per creare un elenco di 5 numeri interi casuali da 1 a 100 senza ripetizioni, utilizzare questa formula:

    =INDICE(UNIQUE(RANDARRAY(5^2, 1, 1, 100, TRUE)), SEQUENZA(5))

    Per generare 5 unici casuali numeri decimali , inserire FALSE nell'ultimo argomento di RANDARRAY o omettere questo argomento:

    =INDICE(UNIQUE(RANDARRAY(5^2, 1, 1, 100)), SEQUENZA(5))

    Come funziona questa formula:

    A prima vista la formula può sembrare un po' complicata, ma a uno sguardo più attento la sua logica è molto semplice:

    • La funzione RANDARRAY crea un array di numeri casuali in base ai valori min e max specificati dall'utente. Per determinare il numero di valori da generare, si eleva il numero di univoci desiderato alla potenza di 2. Poiché l'array risultante potrebbe avere non si sa quanti duplicati, è necessario fornire un array sufficiente di valori da cui UNIQUE possa scegliere. In questo esempio, abbiamo bisogno di solo 5 univocima diamo a RANDARRAY l'istruzione di produrre 25 (5^2) numeri casuali.
    • La funzione UNIQUE rimuove tutti i duplicati e "dà in pasto" a INDEX un array privo di duplicati.
    • Dall'array passato da UNIQUE, la funzione INDEX estrae il primo n valori specificati da SEQUENCE (5 numeri nel nostro caso). Poiché i valori sono già in ordine casuale, non importa quali sopravvivano.

    Nota: su array molto grandi, questa formula potrebbe essere un po' lenta. Ad esempio, per ottenere un elenco di 1.000 numeri unici come risultato finale, RANDARRAY dovrebbe generare internamente un array di 1.000.000 di numeri casuali (1000^2). In queste situazioni, invece di elevare a potenza, si può moltiplicare n di, ad esempio, 10 o 20. Tenete presente che più piccolo è l'array passato alla funzione UNIQUE (piccolo rispetto al numero desiderato di valori casuali unici), maggiore è la possibilità che non tutte le celle dell'intervallo di spillatura vengano riempite con i risultati.

    Creare un intervallo di numeri casuali non ripetitivi in Excel

    Funziona solo in Excel 365 e Excel 2021 che supportano gli array dinamici.

    Per generare una serie di numeri casuali senza ripetizioni, è possibile utilizzare questa formula:

    INDICE(UNIQUE(RANDARRAY( n ^2, 1, min , massimo )), SEQUENZA( file , colonne ))

    Dove:

    • n è il numero di celle da riempire. Per evitare calcoli manuali, è possibile fornirlo come (n. di righe * n. di colonne). Ad esempio, per riempire 10 righe e 5 colonne, utilizzare 50^2 o (10*5)^2.
    • Righe è il numero di righe da riempire.
    • Colonne è il numero di colonne da riempire.
    • Min è il valore più basso.
    • Massimo è il valore più alto.

    Come si può notare, la formula è sostanzialmente la stessa dell'esempio precedente, con l'unica differenza della funzione SEQUENCE, che in questo caso definisce sia il numero di righe che di colonne.

    Ad esempio, per riempire un intervallo di 10 righe e 3 colonne con numeri casuali unici da 1 a 100, utilizzare questa formula:

    =INDICE(UNIQUE(RANDARRAY(30^2, 1, 1, 100)), SEQUENZA(10, 3))

    E produrrà una serie di decimali casuali senza numeri ripetuti:

    Se si ha bisogno di numeri interi, impostare l'ultimo parametro di RANDARRAY su TRUE:

    =INDICE(UNIQUE(RANDARRAY(30^2, 1, 1, 100, TRUE)), SEQUENZA(10,3))

    Come generare numeri casuali unici in Excel 2019, 2016 e precedenti

    Poiché nessuna versione diversa da Excel 365 e 2021 supporta gli array dinamici, nessuna delle soluzioni sopra descritte funziona nelle versioni precedenti di Excel. Tuttavia, ciò non significa che non ci sia alcuna soluzione, ma solo che dovrete eseguire alcuni passaggi in più:

    1. Creare un elenco di numeri casuali. In base alle proprie esigenze, utilizzare uno dei due metodi:
      • La funzione RAND per generare decimali casuali compresi tra 0 e 1, oppure
      • La funzione RANDBETWEEN produce numeri interi casuali nell'intervallo specificato dall'utente.

      Assicuratevi di generare più valori di quelli effettivamente necessari, perché alcuni saranno duplicati e verranno eliminati in seguito.

      In questo esempio, creiamo un elenco di 10 numeri interi casuali compresi tra 1 e 20 utilizzando la formula seguente:

      =TRA 1,20

      Per inserire la formula in più celle in una sola volta, selezionare tutte le celle (A2:A15 nel nostro esempio), digitare la formula nella barra della formula e premere Ctrl + Invio. Oppure si può inserire la formula nella prima cella come di consueto e poi trascinarla in tutte le celle necessarie.

      In ogni caso, il risultato sarà simile a questo:

      Come si può notare, abbiamo inserito la formula in 14 celle, anche se alla fine abbiamo bisogno solo di 10 numeri casuali unici.

    2. Modificare le formule in valori. Poiché RAND e RANDBETWEEN vengono ricalcolati a ogni modifica del foglio di lavoro, l'elenco dei numeri casuali cambierà continuamente. Per evitare che ciò accada, usare Incolla speciale> Valori per convertire le formule in valori, come spiegato in Come impedire il ricalcolo dei numeri casuali.

      Per essere sicuri di averlo fatto correttamente, selezionate un numero qualsiasi e guardate la barra della formula: ora dovrebbe visualizzare un valore, non una formula:

    3. Per eliminare i duplicati, selezionare tutti i numeri, andare alla voce Dati scheda> Strumenti per i dati e fare clic su Rimuovere i duplicati . nella Rimuovere i duplicati Per i passaggi dettagliati, vedere Come rimuovere i duplicati in Excel.

    Tutti i duplicati sono stati eliminati e ora è possibile cancellare i numeri in eccesso.

    Suggerimento: invece dello strumento integrato di Excel, è possibile utilizzare il nostro strumento avanzato di rimozione dei duplicati per Excel.

    Come impedire che i numeri casuali cambino

    Tutte le funzioni di randomizzazione di Excel, tra cui RAND, RANDBETWEEN e RANDARRAY, sono volatili, vale a dire che vengono ricalcolate ogni volta che il foglio di calcolo viene modificato. Di conseguenza, a ogni modifica vengono prodotti nuovi valori casuali. Per evitare che vengano generati automaticamente nuovi numeri, utilizzate la funzione Incolla valori speciali> per sostituire le formule con valori statici. Ecco come fare:

    1. Selezionare tutte le celle con la formula casuale e premere Ctrl + C per copiarle.
    2. Fare clic con il tasto destro del mouse sull'intervallo selezionato e fare clic su Incolla speciale > Valori In alternativa, è possibile premere Maiusc + F10 e poi V , che è la scorciatoia per questa opzione.

    Per i passaggi dettagliati, vedere Come cambiare le formule in valori in Excel.

    Generatore di numeri casuali per Excel senza ripetizioni

    Gli utenti della nostra Ultimate Suite non hanno bisogno di nessuna delle soluzioni sopra descritte perché dispongono già di un generatore casuale universale in Excel. Questo strumento può facilmente produrre un elenco di numeri interi non ripetitivi, numeri decimali, date e password uniche. Ecco come fare:

    1. Sul Strumenti Ablebits fare clic su Randomizzare > Generatore casuale .
    2. Selezionare l'intervallo da riempire con numeri casuali.
    3. Sul Generatore casuale fare quanto segue:
      • Scegliete il tipo di valore desiderato: intero, numero reale, data, booleano, elenco personalizzato o stringa (ideale per generare password uniche e forti!).
      • Impostare il Da e A valori.
      • Selezionare la voce Valori unici casella di controllo.
      • Cliccare Generare .

    L'intervallo selezionato viene riempito con numeri casuali non ripetitivi in una sola volta:

    Se siete curiosi di provare questo strumento e di esplorare altre affascinanti funzioni incluse nella nostra Ultimate Suite, potete scaricare una versione di prova.

    Ecco come randomizzare i numeri in Excel senza duplicati. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!

    Eserciziario da scaricare

    Generare numeri casuali unici in Excel (file .xlsx)

    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.