Supponiamo che tu abbia un elenco di dipendenti (o prodotti, o widget, o qualsiasi altra cosa) e che desideri scegliere due elementi da questo elenco, a caso.

Ci sono un paio di diverse funzioni del foglio di lavoro che puoi usare per scegliere elementi dall’elenco, come RANDOM e RANDBETWEEN.

Molte persone usano la funzione RANDBETWEEN perché è molto semplice e fornisce un numero casuale all’interno di un intervallo. Pertanto, se nell’elenco sono presenti 25 elementi, RANDBETWEEN può restituire un numero compreso tra 1 e 25, che può quindi corrispondere agli elementi nell’elenco.

Ad esempio, supponiamo che il tuo elenco di elementi sia nell’intervallo A2: A26 e che tu assegni a questo intervallo il nome Articoli. È quindi possibile inserire la seguente formula nella cella C2 per restituire un numero compreso tra 1 e il numero di elementi:

=RANDBETWEEN(1,ROWS(Items))

Copia questa formula nella cella C3 e ora hai due numeri casuali che rappresentano gli elementi dell’elenco. Nelle celle D2 e ​​D3 potresti inserire formule come questa per ottenere i nomi effettivi dalla lista:

=INDEX(Items,C2)

L’unico problema con questo approccio è che è possibile che entrambe le istanze di RANDBETWEEN (celle C2 e C3) restituiscano lo stesso valore, e quindi si finisce con lo stesso elemento selezionato due volte dall’elenco.

Un modo per aggirare questo potenziale problema consiste nel selezionare effettivamente tre elementi dall’elenco anziché due. Se i primi due elementi sono uguali, il terzo può essere utilizzato come elemento di “riserva” per fornire il secondo univoco. Il metodo non è infallibile, poiché è possibile, ma piuttosto improbabile, che tutti e tre siano uguali.

Un approccio diverso alla selezione degli elementi dall’elenco consiste nell’assegnare a ciascun elemento il proprio valore casuale, quindi selezionare in base al numero più alto della serie. La funzione RANDOM restituisce un valore casuale compreso tra 0 e 1. In ogni cella della colonna B, appena a destra di ogni elemento nella colonna A, inserisci questa formula:

=RAND()

Seleziona l’intervallo di celle (B2: B26) e assegna un nome all’intervallo, utilizzando un nome come ItemNums. È quindi possibile determinare il primo nome casuale dall’elenco utilizzando la seguente formula di matrice:

=OFFSET(A$1,SUM((LARGE(ItemNums,1)=(ItemNums))*ROW(ItemNums))-1,0)

Per indicare che si tratta di una formula di matrice, inserirla premendo Maiusc + Ctrl + Invio. La formula dovrebbe restituire un unico nome. È quindi possibile utilizzare la seguente formula di matrice per restituire il secondo nome:

=OFFSET(A$1,SUM((LARGE(ItemNums,2)=(ItemNums))*ROW(ItemNums))-1,0)

Il motivo per cui l’utilizzo dell’approccio della funzione RAND funziona meglio dell’utilizzo di RANDBETWEEN è perché la possibilità che RAND restituisca due valori identici è infinitamente piccola, mentre le probabilità che RANDBETWEEN lo faccia sono molto più alte.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (2874) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: