Sélection de noms aléatoires (Microsoft Excel)
Une tâche courante pour de nombreuses personnes est de choisir un certain nombre de noms aléatoires dans une grande liste. Par exemple, vous pouvez organiser un concours pour votre communauté et vous avez 1 000 personnes qui se sont inscrites. Avec leurs noms dans chaque ligne d’un tableau, vous vous demandez peut-être comment sélectionner un certain nombre de noms au hasard.
Comme c’est souvent le cas avec Excel, il existe un certain nombre d’approches différentes que vous pouvez adopter. Chaque approche examinée dans cette astuce suppose que les noms que vous devez sélectionner sont répertoriés dans les cellules A1 à A1000.
Bien sûr, votre plage de noms peut être plus courte ou plus longue, mais le fait est qu’ils se trouvent dans des cellules contiguës dans la colonne A. Les exemples supposent également que vous devez sélectionner 15 noms au hasard dans la liste.
La première approche consiste à utiliser la fonction INDEX. Entrez la formule suivante dans les cellules B1: B15:
=INDEX(A:A,INT((RAND()*1000)+1),1)
Une formule similaire utilise la fonction OFFSET:
=OFFSET($A$1,ROUNDUP(RAND()*1000,0),0,1,1)
Il est possible, mais pas probable, que vous obteniez le même nom deux fois dans la liste résultante. (L’improbabilité vient de la taille de la liste d’origine. Plus la liste est grande, moins il y aura de doublons dans la liste extraite.) Si vous obtenez un nom en double, alors forcez simplement un recalcul de votre feuille de calcul en appuyant sur F9 . Chaque fois que vous recalculez, la liste des noms extraits est régénérée.
Une autre approche potentielle nécessite l’utilisation de plusieurs colonnes. Suivez simplement ces étapes:
-
Entrez = RAND () dans la cellule B1.
-
Entrez la formule suivante dans la cellule C1:
-
Sélectionnez la plage B1: C1 et remplissez jusqu’à la ligne 1000.
-
Sélectionnez la plage B1: C1000.
-
Appuyez sur Ctrl + C pour copier la plage dans le Presse-papiers.
-
Choisissez Collage spécial dans le menu Edition. Excel affiche la boîte de dialogue Collage spécial. (Voir la figure 1.)
-
Assurez-vous que le bouton radio Valeurs est sélectionné.
-
Cliquez sur OK. Vous avez maintenant des valeurs statiques dans B1: C1000, ce qui signifie qu’elles ne changeront pas à chaque fois que la feuille de calcul est recalculée.
-
Sélectionnez une cellule dans la colonne C.
-
Choisissez Trier dans le menu Données. Excel affiche la boîte de dialogue Trier.
(Voir la figure 2.)
-
Cliquez sur OK. Le tableau (plage A1: C1000) est trié en fonction des valeurs de la colonne C.
Le résultat est que la colonne C contient maintenant un classement de tous les nombres aléatoires dans la colonne B. Les 15 premières lignes contiennent vos noms aléatoires.
Dans cette approche, vous pourriez également avoir complètement omis la colonne C et simplement trier votre liste en fonction des valeurs aléatoires statiques de la colonne B.
Encore une fois, le top 15 serait vos noms aléatoires.
Bien sûr, il existe un certain nombre de solutions macro que vous pouvez utiliser pour ce problème. Le codage de toute macro sera similaire, en s’appuyant sur la fonction RND de VBA pour générer des nombres aléatoires. Parmi toutes les macros solutions possibles, la suivante est peut-être la plus unique et offre certains avantages qui ne sont pas disponibles avec les solutions de classeur discutées jusqu’à présent:
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
Pour utiliser cette macro, sélectionnez simplement les noms parmi lesquels vous souhaitez sélectionner les 15 noms aléatoires. Dans les exemples jusqu’à présent, vous sélectionnez la plage A1: A1000. La macro extrait ensuite 15 noms au hasard des cellules et les place dans le Presse-papiers. Lorsque vous exécutez la macro, vous pouvez ensuite coller le contenu du Presse-papiers où vous le souhaitez. Chaque fois que la macro est exécutée, un groupe différent de 15 est sélectionné.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (2811) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Selecting_Random_Names [Sélection de noms aléatoires]
.