Sommario
L'esercitazione si concentra su come eseguire un campionamento casuale in Excel senza ripetizioni. Troverete soluzioni per Excel 365, Excel 2021, Excel 2019 e versioni precedenti.
Qualche tempo fa abbiamo descritto alcuni modi diversi per effettuare una selezione casuale in Excel. La maggior parte di queste soluzioni si basa sulle funzioni RAND e RANDBETWEEN, che possono generare numeri duplicati. Di conseguenza, il vostro campione casuale potrebbe contenere valori ripetuti. Se avete bisogno di una selezione casuale senza duplicati, utilizzate gli approcci descritti in questa esercitazione.
Selezione casuale di Excel da un elenco senza duplicati
Funziona solo in Excel 365 e Excel 2021 che supportano gli array dinamici.
Per effettuare una selezione casuale da un elenco senza ripetizioni, utilizzare questa formula generica:
INDICE(SORTBY( dati , RANDARRAY(RIGHE( dati )), SEQUENZA( n ))Dove n è la dimensione di selezione desiderata.
Ad esempio, per ottenere 5 nomi unici casuali dall'elenco in A2:A10, ecco la formula da utilizzare:
=INDICE(SORTBY(A2:A10, RANDARRAY(RIGHE(A2:A10)), SEQUENZA(5))
Per comodità, è possibile inserire la dimensione del campione in una cella predefinita, ad esempio C2, e fornire il riferimento alla cella alla funzione SEQUENZA:
=INDICE(SORTBY(A2:A10, RANDARRAY(RIGHE(A2:A10)), SEQUENZA(C2))
Come funziona questa formula:
Ecco una spiegazione di alto livello della logica della formula: la funzione RANDARRAY crea un array di numeri casuali, SORTBY ordina i valori originali in base a tali numeri e INDEX recupera il numero di valori specificato da SEQUENCE.
Di seguito è riportata una ripartizione dettagliata:
La funzione ROWS conta quante righe contiene il set di dati e passa il conteggio alla funzione RANDARRAY, in modo che possa generare lo stesso numero di decimali casuali:
RANDARRAY(RIGHE(A2:C10))
Questo array di decimali casuali viene utilizzato come array "sort by" dalla funzione SORTBY. Di conseguenza, i dati originali vengono rimescolati in modo casuale.
Dai dati ordinati in modo casuale, si estrae un campione di dimensioni specifiche. A questo scopo, si fornisce l'array mescolato alla funzione INDEX e si richiede di recuperare il primo N con l'ausilio della funzione SEQUENZA, che produce una sequenza di numeri da 1 a N Poiché i dati originali sono già ordinati in modo casuale, non ci interessa quali posizioni recuperare, ma solo la quantità.
Selezionare righe casuali in Excel senza duplicati
Funziona solo in Excel 365 e Excel 2021 che supportano gli array dinamici.
Per selezionare righe casuali senza ripetizioni, costruire una formula in questo modo:
INDICE(SORTBY( dati , RANDARRAY(RIGHE( dati )), SEQUENZA( n ), {1,2,...})Dove n è la dimensione del campione e {1,2,...} sono i numeri delle colonne da estrarre.
Come esempio, selezioniamo righe casuali da A2:C10 senza voci duplicate, in base alla dimensione del campione in F1. Poiché i nostri dati sono in 3 colonne, forniamo questa costante di array alla formula: {1,2,3}
=INDICE(SORTBY(A2:C10, RANDARRAY(RIGHE(A2:C10)), SEQUENCE(F1), {1,2,3})
E ottenere il seguente risultato:
Come funziona questa formula:
La formula funziona esattamente con la stessa logica di quella precedente. Un piccolo cambiamento che fa una grande differenza è che si specificano entrambi i valori di numero_riga e numero_colonna argomenti per la funzione INDEX: numero_riga è fornito da SEQUENCE e numero_colonna dalla costante dell'array.
Come effettuare un campionamento casuale in Excel 2010 - 2019
Poiché solo Excel per Microsoft 365 ed Excel 2021 supportano gli array dinamici, le funzioni di array dinamico utilizzate negli esempi precedenti funzionano solo in Excel 365. Per le altre versioni, dovrete trovare una soluzione diversa.
Supponiamo di voler effettuare una selezione casuale dall'elenco in A2:A10. Questo può essere fatto con 2 formule separate:
- Generare numeri casuali con la formula Rand. Nel nostro caso, la inseriamo in B2 e poi la copiamo in B10:
=RAND()
- Estraete il primo valore casuale con la formula seguente, da inserire in E2:
=INDICE($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)
- Copiate la formula precedente in tante celle quanti sono i valori casuali che volete scegliere. In questo esempio, vogliamo 4 nomi, quindi copiamo la formula da E2 a E5.
Il nostro campione casuale senza duplicati si presenta come segue:
Come funziona questa formula:
Come nel primo esempio, si utilizza la funzione INDEX per recuperare i valori della colonna A in base a numeri di riga casuali. La differenza sta nel modo in cui si ottengono questi numeri:
La funzione RAND riempie l'intervallo B2:B10 con decimali casuali.
La funzione RANK.EQ calcola il rango di un numero casuale in una determinata riga. Ad esempio, in E2, RANK.EQ(B2, $B$2:$B$10) classifica il numero in B2 rispetto a tutti i numeri in B2:B10. Quando viene copiato in E3, il riferimento relativo B2 cambia in B3 e restituisce il rango del numero in B3, e così via.
La funzione COUNTIF trova quante occorrenze di un dato numero ci sono nelle celle precedenti. Per esempio, in E2, COUNTIF($B$2:B2, B2) controlla una sola cella, B2 appunto, e restituisce 1. In E5, la formula cambia in COUNTIF($B$2:B5, B5) e restituisce 2, perché B5 contiene lo stesso valore di B2 (nota bene, questo è solo per spiegare meglio la logica della formula; su un set di dati piccolo, le probabilità di ottenerei numeri casuali duplicati sono prossimi allo zero).
Di conseguenza, per tutte le prime occorrenze, COUNTIF restituisce 1, da cui si sottrae 1 per mantenere la classifica originale. Per le seconde occorrenze, COUNTIF restituisce 2. Sottraendo 1 si incrementa la classifica di 1, evitando così i doppioni.
Ad esempio, per B2, RANK.EQ restituisce 1. Poiché si tratta della prima occorrenza, anche COUNTIF restituisce 1. RANK.EQ + COUNTIF dà 2. E - 1 ripristina il rango 1.
Ora vediamo cosa succede nel caso della seconda occorrenza. Per B5, anche RANK.EQ restituisce 1, mentre COUNTIF restituisce 2. Sommando questi risultati si ottiene 3, da cui si sottrae 1. Come risultato finale si ottiene 2, che rappresenta il rango del numero in B5.
Il grado va al numero_riga della funzione INDEX e preleva il valore dalla riga corrispondente (il parametro numero_colonna Se non fosse per la funzione COUNTIF, RANK.EQ darebbe 1 sia per B2 che per B5, facendo sì che INDEX restituisca due volte il valore della prima riga (Andrew).
Come impedire che il campione casuale di Excel cambi
Poiché tutte le funzioni di randomizzazione di Excel, come RAND, RANDBETWEEN e RANDARRAY, sono volatili, vengono ricalcolate a ogni modifica del foglio di lavoro. Di conseguenza, il campione casuale cambierà continuamente. Per evitare che ciò accada, utilizzate la funzione Incolla valori speciali per sostituire le formule con valori statici. A tale scopo, eseguite i seguenti passaggi:
- Selezionate tutte le celle con la vostra formula (qualsiasi formula contenente le funzioni RAND, RANDBETWEEN o RANDARRAY) e premete Ctrl + C per copiarle.
- Fare clic con il tasto destro del mouse sull'intervallo selezionato e fare clic su Incolla speciale > Valori In alternativa, premere Maiusc + F10 e poi V , che è la scorciatoia per la funzione di cui sopra.
Per i passaggi dettagliati, vedere Come convertire le formule in valori in Excel.
Selezione casuale di Excel: righe, colonne o celle
Funziona in tutte le versioni di Excel 365 fino a Excel 2010.
Se avete installato la nostra Ultimate Suite in Excel, potete eseguire un campionamento casuale con un clic del mouse invece che con una formula. Ecco come fare:
- Sul Strumenti Ablebits fare clic su Randomizzare > Selezionare in modo casuale .
- Selezionare l'intervallo da cui si desidera prelevare un campione.
- Nel riquadro del componente aggiuntivo, procedere come segue:
- Scegliere se selezionare righe, colonne o celle casuali.
- Definire la dimensione del campione: può essere una percentuale o un numero.
- Fare clic sul pulsante Selezionare pulsante.
Come mostrato nell'immagine sottostante, un campione casuale è stato selezionato direttamente nel set di dati. Se si desidera copiarlo da qualche parte, è sufficiente premere la normale scorciatoia per la copia (Ctrl + C).
Ecco come selezionare un campione casuale in Excel senza duplicati. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!
Download disponibili
Campione casuale senza duplicati - esempi di formule (file .xlsx)
Ultimate Suite 14 giorni versione completamente funzionale (file .exe)