Selezione di nomi casuali (Microsoft Excel)
Un compito comune a molte persone è scegliere un numero di nomi casuali da un lungo elenco. Ad esempio, potresti organizzare un concorso per la tua comunità e avere 1.000 persone che si sono iscritte. Con i loro nomi in ogni riga di una tabella, potresti chiederti come selezionare un certo numero di nomi in modo casuale.
Come spesso accade con Excel, esistono diversi approcci che puoi adottare. Ogni approccio esaminato in questo suggerimento presuppone che i nomi da cui è necessario selezionare siano elencati nelle celle da A1 a A1000.
Ovviamente, il tuo intervallo di nomi potrebbe essere più breve o più lungo, ma il punto è che si trovano in celle contigue nella colonna A. Gli esempi presumono anche che sia necessario selezionare 15 nomi a caso dall’elenco.
Il primo approccio consiste nell’utilizzare la funzione INDICE. Immettere la seguente formula nelle celle B1: B15:
=INDEX(A:A,INT((RAND()*1000)+1),1)
Una formula simile utilizza la funzione OFFSET:
=OFFSET($A$1,ROUNDUP(RAND()*1000,0),0,1,1)
È possibile, ma non probabile, ottenere lo stesso nome due volte nell’elenco risultante. (L’improbabilità deriva dalla dimensione dell’elenco originale. Più grande è l’elenco, meno probabile sarà la presenza di duplicati nell’elenco estratto.) Se ottieni un nome duplicato, forza semplicemente un ricalcolo del foglio di lavoro premendo F9 . Ad ogni ricalcolo, l’elenco dei nomi estratti viene rigenerato.
Un altro potenziale approccio richiede l’uso di più colonne. Segui semplicemente questi passaggi:
-
Immettere = RAND () nella cella B1.
-
Immettere la seguente formula nella cella C1:
-
Seleziona l’intervallo B1: C1 e riempi fino alla riga 1000.
-
Seleziona l’intervallo B1: C1000.
-
Premi Ctrl + C per copiare l’intervallo negli Appunti.
-
Scegli Incolla speciale dal menu Modifica. Excel visualizza la finestra di dialogo Incolla speciale. (Vedi figura 1.)
-
Assicurati che il pulsante di opzione Valori sia selezionato.
-
Fare clic su OK. Ora hai valori statici in B1: C1000, il che significa che non cambieranno ogni volta che il foglio di lavoro viene ricalcolato.
-
Seleziona una cella nella colonna C.
-
Scegli Ordina dal menu Dati. Excel visualizza la finestra di dialogo Ordina.
(Vedi figura 2.)
-
Fare clic su OK. La tabella (intervallo A1: C1000) è ordinata in base ai valori nella colonna C.
Il risultato è che la colonna C ora contiene una classifica di tutti i numeri casuali nella colonna B. Le prime 15 righe contengono i tuoi nomi casuali.
In questo approccio avresti anche potuto tralasciare completamente la colonna C e semplicemente ordinare la tua lista in base ai valori casuali statici nella colonna B.
Ancora una volta, i primi 15 sarebbero i tuoi nomi casuali.
Naturalmente, ci sono un numero qualsiasi di soluzioni macro che potresti usare per questo problema. La codifica di qualsiasi macro sarà simile, basandosi sulla funzione RND di VBA per generare numeri casuali. Di tutte le possibili soluzioni macro, forse la seguente è la più singolare e offre alcuni vantaggi non disponibili con le soluzioni della cartella di lavoro discusse finora:
Sub GetRandom() Dim iRows As Integer Dim iCols As Integer Dim iBegRow As Integer Dim iBegCol As Integer Dim J As Integer Dim sCells As String Set TempDO = New DataObject iRows = Selection.Rows.Count iCols = Selection.Columns.Count iBegRow = Selection.Row iBegCol = Selection.Column If iRows < 16 Or iCols > 1 Then MsgBox "Too few rows or too many columns" Else Randomize Timer sCells = "" For J = 1 To 15 iWantRow = Int(Rnd() * iRows) + iBegRow sCells = sCells & Cells(iWantRow, iBegCol) & vbCrLf Next J TempDO.SetText sCells TempDO.PutInClipboard End If End Sub
Per utilizzare questa macro, è sufficiente selezionare i nomi da cui si desidera selezionare i 15 nomi casuali. Negli esempi fino ad ora, si selezionerebbe l’intervallo A1: A1000. La macro quindi estrae 15 nomi a caso dalle celle e li inserisce negli Appunti. Quando esegui la macro, puoi quindi incollare il contenuto degli Appunti dove vuoi. Ogni volta che viene eseguita la macro, viene selezionato un diverso gruppo di 15.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (2811) 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: