Sommario
L'esercitazione mostra come generare numeri casuali, ordinare casualmente un elenco, ottenere una selezione casuale e assegnare casualmente i dati ai gruppi, il tutto con una nuova funzione di array dinamico: RANDARRAY.
Come probabilmente saprete, Microsoft Excel dispone già di un paio di funzioni di randomizzazione: RAND e RANDBETWEEN. Che senso ha introdurne un'altra? In poche parole, perché è molto più potente e può sostituire entrambe le funzioni più vecchie. Oltre a impostare i propri valori massimi e minimi, consente di specificare quante righe e colonne riempire e se produrre decimali casuali oUtilizzato insieme ad altre funzioni, RANDARRAY può anche mescolare i dati e scegliere un campione casuale.
Funzione RANDARRAY di Excel
La funzione RANDARRAY di Excel restituisce una serie di numeri casuali compresi tra due numeri specificati dall'utente.
È una delle sei nuove funzioni di array dinamico introdotte in Microsoft Excel 365. Il risultato è un array dinamico che si estende automaticamente al numero di righe e colonne specificato.
La funzione ha la seguente sintassi. Si noti che tutti gli argomenti sono opzionali:
RANDARRAY([righe], [colonne], [min], [max], [numero_intero])Dove:
Righe (opzionale) - definisce il numero di righe da riempire. Se omesso, il valore predefinito è 1 riga.
Colonne (opzionale) - definisce il numero di colonne da riempire. Se omesso, il valore predefinito è 1 colonna.
Min (facoltativo) - il numero casuale più piccolo da produrre. Se non viene specificato, viene utilizzato il valore predefinito 0.
Massimo (opzionale) - il numero casuale più grande da creare. Se non viene specificato, viene usato il valore predefinito 1.
Numero_intero (opzionale) - determina il tipo di valori da restituire:
- VERO - numeri interi
- FALSO o omesso (valore predefinito) - numeri decimali
Funzione RANDARRAY - cose da ricordare
Per generare in modo efficiente numeri casuali nei vostri fogli di lavoro Excel, ci sono 6 punti importanti da tenere in considerazione:
- La funzione RANDARRAY è disponibile solo in Excel per Microsoft 365 e Excel 2021. In Excel 2019, Excel 2016 e versioni precedenti la funzione RANDARRAY non è disponibile.
- Se l'array restituito da RANDARRAY è il risultato finale (emesso in una cella e non passato a un'altra funzione), Excel crea automaticamente un intervallo di versamento dinamico e lo popola con i numeri casuali. Assicuratevi quindi di avere abbastanza celle vuote in basso e/o a destra della cella in cui inserite la formula, altrimenti si verificherà un errore #SPILL.
- Se non viene specificato nessuno degli argomenti, la formula RANDARRAY() restituisce un singolo numero decimale compreso tra 0 e 1.
- Se il file o/e colonne gli argomenti sono rappresentati da numeri decimali, saranno troncati all'intero numero intero prima della virgola (ad esempio, 5,9 sarà trattato come 5).
- Se il min o massimo non è definito, RANDARRAY ha come valore predefinito 0 e 1, rispettivamente.
- Come altre funzioni casuali, RANDARRAY di Excel è volatile Per evitare che ciò accada, è possibile sostituire le formule con dei valori utilizzando l'opzione di Excel Incolla speciale > Valori caratteristica.
Formula RANDARRAY di base di Excel
E ora, lasciate che vi mostri una formula di Excel a caso nella sua forma più semplice.
Supponiamo di voler riempire un intervallo composto da 5 righe e 3 colonne con qualsiasi numero casuale. Per farlo, impostate i primi due argomenti in questo modo:
- Righe è 5, poiché vogliamo i risultati in 5 righe.
- Colonne è 3 perché vogliamo i risultati in 3 colonne.
Tutti gli altri argomenti vengono lasciati ai loro valori predefiniti e si ottiene la seguente formula:
=RANDARRAY(5, 3)
Inseritelo nella cella in alto a sinistra dell'intervallo di destinazione (A2 nel nostro caso), premete il tasto Invio e otterrete i risultati distribuiti sul numero di righe e colonne specificato.
Come si può vedere nella schermata precedente, questa formula RANDARRAY di base riempie l'intervallo con numeri decimali casuali da 0 a 1. Se si desidera ottenere numeri interi all'interno di un intervallo specifico, è possibile configurare gli ultimi tre argomenti, come dimostrato negli esempi successivi.
Come randomizzare in Excel - Esempi di formula RANDARRAY
Di seguito sono riportate alcune formule avanzate che coprono i tipici scenari di randomizzazione in Excel.
Generare numeri casuali tra due numeri
Per creare un elenco di numeri casuali all'interno di un intervallo specifico, fornire il valore minimo nel terzo argomento e il numero massimo nel quarto argomento. A seconda che siano necessari numeri interi o decimali, impostare il quinto argomento rispettivamente su TRUE o FALSE.
Come esempio, popoliamo un intervallo di 6 righe e 4 colonne con numeri interi casuali da 1 a 100. A tale scopo, impostiamo i seguenti argomenti della funzione RANDARRAY:
- Righe è 6, poiché vogliamo i risultati in 6 righe.
- Colonne è 4 perché vogliamo i risultati in 4 colonne.
- Min è 1, che è il valore minimo che vogliamo avere.
- Massimo è 100, che è il valore massimo da generare.
- Numero_intero è VERO perché abbiamo bisogno di numeri interi.
Mettendo insieme i ragionamenti, si ottiene questa formula:
=RANDARRAY(6, 4, 1, 100, TRUE)
E produce il seguente risultato:
Genera una data casuale tra due date
Se cercate un generatore di date casuali in Excel, la funzione RANDARRAY è una soluzione semplice: tutto ciò che dovete fare è inserire la data precedente (data 1) e quella successiva (data 2) in celle predefinite e poi fare riferimento a tali celle nella vostra formula:
RANDARRAY(righe, colonne, data1 , data2 , VERO)Per questo esempio, abbiamo creato un elenco di date casuali tra le date D1 e D2 con questa formula:
=RANDARRAY(10, 1, D1, D2, TRUE)
Naturalmente, nulla vieta di fornire le date minime e massime direttamente nella formula, se lo si desidera, ma assicuratevi di inserirle in un formato comprensibile per Excel:
=RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)
Per evitare errori, è possibile utilizzare la funzione DATA per inserire le date:
=RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)
Nota: internamente Excel memorizza le date come numeri di serie, quindi i risultati della formula saranno probabilmente visualizzati come numeri. Per visualizzare correttamente i risultati, applicare la formula Data a tutte le celle dell'intervallo di versamento.
Generare giorni lavorativi casuali in Excel
Per produrre giorni lavorativi casuali, inserire la funzione RANDARRAY nel primo parametro di WORKDAY in questo modo:
WORKDAY(RANDARRAY(righe, colonne, data1 , data2 , VERO), 1)RANDARRAY creerà un array di date di inizio casuali, a cui la funzione WORKDAY aggiungerà 1 giorno lavorativo per garantire che tutte le date restituite siano giorni lavorativi.
Con la data 1 in D1 e la data 2 in D2, ecco la formula per produrre un elenco di 10 giorni della settimana:
=GIORNO LAVORATIVO(RANDARRAY(10, 1, D1, D2, TRUE), 1)
Come per l'esempio precedente, ricordate di formattare l'intervallo di versamento come Data per visualizzare correttamente i risultati.
Come generare numeri casuali senza duplicati
Sebbene il moderno Excel offra 6 nuove funzioni di array dinamico, purtroppo non esiste ancora una funzione integrata che restituisca numeri casuali senza duplicati.
Per costruire il proprio generatore di numeri casuali unico in Excel, è necessario concatenare diverse funzioni come mostrato 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 che si desidera generare.
- Min è il valore più basso.
- Massimo è il valore più alto.
Ad esempio, per produrre 10 numeri interi casuali senza duplicati, utilizzare questa formula:
=INDICE(UNIQUE(RANDARRAY(20, 1, 1, 100, TRUE)), SEQUENZA(10))
Per creare un elenco di 10 unici numeri decimali casuali , cambiare TRUE in FALSE nell'ultimo argomento della funzione RANDARRAY o semplicemente omettere questo argomento:
=INDICE(UNIQUE(RANDARRAY(20, 1, 1, 100, FALSE)), SEQUENZA(10))
Suggerimenti e note:
- La spiegazione dettagliata della formula si trova in Come generare numeri casuali in Excel senza duplicati.
- In Excel 2019 e versioni precedenti, la funzione RANDARRAY non è disponibile, ma si consiglia di consultare questa soluzione.
Come ordinare in modo casuale in Excel
Per mescolare i dati in Excel, utilizzare RANDARRAY per l'array "ordina per" ( per_array della funzione SORTBY. La funzione ROWS conterà il numero di righe dell'insieme di dati, indicando quanti numeri casuali generare:
SORTBY( dati , RANDARRAY(RIGHE( dati )))Con questo approccio è possibile ordinare casualmente un elenco in Excel, sia che contenga numeri, date o voci di testo:
=SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13))
Inoltre, è possibile mischiare le righe senza mescolare i dati:
=SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10))
Come ottenere una selezione casuale in Excel
Per estrarre un campione casuale da un elenco, ecco una formula generica da utilizzare:
INDICE( dati , RANDARRAY( n , 1, 1, ROWS( dati ), VERO))Dove n è il numero di voci casuali che si desidera estrarre.
Ad esempio, per selezionare casualmente 3 nomi dall'elenco in A2:A10, utilizzare questa formula:
=INDICE(A2:A10, RANDARRAY(3, 1, 1, RIGHE(A2:A10), VERO))
Oppure inserire la dimensione del campione desiderata in una cella, ad esempio C2, e fare riferimento a quella cella:
=INDICE(A2:A10, RANDARRAY(C2, 1, 1, ROWS(A2:A10), TRUE))
Come funziona questa formula:
Il cuore di questa formula è la funzione RANDARRAY, che crea una matrice casuale di numeri interi, con il valore in C2 che definisce il numero di valori da generare. Il numero minimo è codificato (1) e il numero massimo corrisponde al numero di righe del set di dati, restituito dalla funzione ROWS.
L'array di numeri interi casuali va direttamente al file numero_riga della funzione INDEX, che specifica le posizioni degli elementi da restituire. Per l'esempio riportato nell'immagine precedente, si tratta di:
=INDICE(A2:A10, {8;7;4})
Suggerimento: quando si sceglie un grande campione da un piccolo insieme di dati, è probabile che la selezione casuale contenga più di una occorrenza della stessa voce, perché non è garantito che RANDARRAY produca solo numeri unici. Per evitare che ciò accada, utilizzate una versione di questa formula priva di duplicati.
Come selezionare righe casuali in Excel
Se il set di dati contiene più di una colonna, è necessario specificare quali colonne includere nel campione. A questo scopo, fornire una costante di array per l'ultimo argomento ( numero_colonna ) della funzione INDEX, in questo modo:
=INDICE(A2:B10, RANDARRAY(D2, 1, 1, RIGHE(A2:A10), TRUE), {1,2})
Dove A2:B10 sono i dati di partenza e D2 è la dimensione del campione.
Di conseguenza, la nostra selezione casuale conterrà due colonne di dati:
Suggerimento: come nel caso dell'esempio precedente, questa formula potrebbe restituire record duplicati. Per assicurarsi che il campione non contenga ripetizioni, utilizzare un approccio leggermente diverso descritto in Come selezionare righe casuali senza duplicati.
Come assegnare in modo casuale numeri e testo in Excel
Per eseguire un'assegnazione casuale in Excel, utilizzare RANDBETWEEN insieme alla funzione CHOOSE in questo modo:
SCEGLIERE(RANDARRAY(RIGHE( dati ), 1, 1, n , VERO), valore1 , valore2 ,...)Dove:
- Dati è un intervallo dei dati di origine a cui si desidera assegnare valori casuali.
- N è il numero totale di valori da assegnare.
- Valore1 , valore2 , valore3 , ecc. sono i valori da assegnare in modo casuale.
Ad esempio, per assegnare i numeri da 1 a 3 ai partecipanti in A2:A13, utilizzare questa formula:
=SCEGLIERE(RANDARRAY(RIGHE(A2:A13), 1, 1, 3, VERO), 1, 2, 3)
Per comodità, è possibile inserire i valori da assegnare in celle separate, ad esempio da D2 a D4, e fare riferimento a tali celle nella formula (singolarmente, non come intervallo):
=SCEGLIERE(RANDARRAY(RIGHE(A2:A13), 1, 1, 3, VERO), D2, D3, D4)
Il risultato è che potrete assegnare in modo casuale qualsiasi numero, lettera, testo, data e ora con la stessa formula:
Nota: la funzione RANDARRAY continuerà a generare nuovi valori casuali a ogni modifica del foglio di lavoro, per cui ogni volta verranno assegnati nuovi valori. Per "correggere" i valori assegnati, utilizzare le funzioni Incolla speciale> Valori per sostituire le formule con i valori calcolati.
Come funziona questa formula
Il cuore di questa soluzione è ancora una volta la funzione RANDARRAY, che produce un array di numeri interi casuali basati sui numeri minimi e massimi specificati dall'utente (da 1 a 3 nel nostro caso). La funzione ROWS indica a RANDARRAY il numero di numeri casuali da generare. Questo array va alla funzione indice_num della funzione CHOOSE, ad esempio:
=SCEGLIERE({1;2;1;2;3;2;3;3;1;3;1;2}, D2, D3, D4)
Numero_indice è l'argomento che determina la posizione dei valori da restituire. E poiché le posizioni sono casuali, i valori in D2:D4 vengono scelti in ordine casuale. Sì, è così semplice :)
Come assegnare casualmente i dati ai gruppi
Quando il compito è quello di assegnare in modo casuale i partecipanti ai gruppi, la formula precedente potrebbe non essere adatta perché non controlla quante volte viene scelto un determinato gruppo. Ad esempio, 5 persone potrebbero essere assegnate al gruppo A e solo 2 al gruppo C. Per eseguire l'assegnazione casuale uniformemente Per fare in modo che ogni gruppo abbia lo stesso numero di partecipanti, è necessaria una soluzione diversa.
Per prima cosa, si genera un elenco di numeri casuali utilizzando questa formula:
=RANDARRAY(RIGHE(A2:A13))
Dove A2:A13 sono i dati di partenza.
E poi si assegnano i gruppi (o qualsiasi altra cosa) usando questa formula generica:
INDICE( valori_da_assegnare , ARROTONDAMENTO(RANGO( primo_numero_random , gamma_numeri_casuali )/ n , 0))Dove n è la dimensione del gruppo, cioè il numero di volte in cui ogni valore deve essere assegnato.
Ad esempio, per assegnare in modo casuale le persone ai gruppi elencati in E2:E5, in modo che ogni gruppo abbia 3 partecipanti, utilizzare questa formula:
=INDICE($E$2:$E$5, ARROTONDAMENTO(RANK(B2,$B$2:$B$13)/3,0))
Si noti che si tratta di una formula normale (non di una formula di array dinamico!), quindi è necessario bloccare gli intervalli con riferimenti assoluti come nella formula precedente.
Inserite la formula nella cella superiore (C2 nel nostro caso) e poi trascinatela verso il basso in tutte le celle necessarie. Il risultato sarà simile a questo:
Per evitare che vengano generati nuovi valori casuali ogni volta che si cambia qualcosa nel foglio di lavoro, sostituite le formule con i loro valori utilizzando l'opzione Incolla speciale caratteristica.
Come funziona questa formula:
La formula RANDARRAY della colonna di aiuto è molto semplice e non richiede spiegazioni, quindi concentriamoci sulla formula della colonna C.
=INDICE($E$2:$E$5, ARROTONDAMENTO(RANK(B2,$B$2:$B$13)/3,0))
La funzione RANK classifica il valore in B2 rispetto all'array di numeri casuali in B2:B13. Il risultato è un numero compreso tra 1 e il numero totale di partecipanti (12 nel nostro caso).
Il rango viene diviso per la dimensione del gruppo (3 nel nostro esempio) e la funzione ROUNDUP lo arrotonda al numero intero più vicino. Il risultato di questa operazione è un numero compreso tra 1 e il numero totale di gruppi (4 in questo esempio).
Il numero intero va al numero_riga della funzione INDEX, obbligandola a restituire un valore dalla riga corrispondente nell'intervallo E2:E5, che rappresenta il gruppo assegnato.
La funzione RANDARRAY di Excel non funziona
Quando la formula RANDARRAY restituisce un errore, queste sono le ragioni più ovvie da controllare:
#Errore di SPILL
Come per qualsiasi altra funzione di matrice dinamica, l'errore #SPILL! indica spesso che nell'intervallo di versamento previsto non c'è abbastanza spazio per visualizzare tutti i risultati. È sufficiente cancellare tutte le celle di questo intervallo e la formula verrà ricalcolata automaticamente. Per ulteriori informazioni, consultare la sezione Errore #SPILL di Excel - cause e soluzioni.
Errore #VALORE
In queste circostanze può verificarsi un errore #VALORE!
- Se un massimo è inferiore a un valore min valore.
- Se uno qualsiasi degli argomenti è non numerico.
#Nome errore
Nella maggior parte dei casi, un errore #NAME! indica una delle seguenti situazioni:
- Il nome della funzione è scritto male.
- La funzione non è disponibile nella versione di Excel in uso.
Errore #CALC!
Si verifica un errore #CALC! se il parametro file o colonne è inferiore a 1 o si riferisce a una cella vuota.
Ecco come costruire un generatore di numeri casuali in Excel con la nuova funzione RANDARRAY. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!
Eserciziario da scaricare
Esempi di formula RANDARRAY (file .xlsx)