Table des matières
Le tutoriel se concentre sur la manière de réaliser un échantillonnage aléatoire dans Excel sans répétitions. Vous trouverez des solutions pour Excel 365, Excel 2021, Excel 2019 et les versions antérieures.
Il y a quelque temps, nous avons décrit différentes façons de procéder à une sélection aléatoire dans Excel. La plupart de ces solutions reposent sur les fonctions RAND et RANDBETWEEN, qui peuvent générer des nombres en double. Par conséquent, votre échantillon aléatoire peut contenir des valeurs répétitives. Si vous avez besoin d'une sélection aléatoire sans doublons, utilisez les approches décrites dans ce tutoriel.
Sélection Excel aléatoire dans une liste sans doublon
Ne fonctionne que dans Excel 365 et Excel 2021 qui prennent en charge les tableaux dynamiques.
Pour effectuer une sélection aléatoire dans une liste sans répétitions, utilisez cette formule générique :
INDEX(SORTBY( données , RANDARRAY(ROWS( données ))), SEQUENCE( n ))Où n est la taille de la sélection souhaitée.
Par exemple, pour obtenir 5 noms uniques et aléatoires à partir de la liste A2:A10, voici la formule à utiliser :
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(5))
Pour des raisons de commodité, vous pouvez saisir la taille de l'échantillon dans une cellule prédéfinie, par exemple C2, et fournir la référence de la cellule à la fonction SEQUENCE :
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(C2))
Comment fonctionne cette formule :
Voici une explication de haut niveau de la logique de la formule : la fonction RANDARRAY crée un tableau de nombres aléatoires, SORTBY trie les valeurs originales en fonction de ces nombres, et INDEX récupère autant de valeurs que spécifié par SEQUENCE.
Une répartition détaillée est présentée ci-dessous :
La fonction ROWS compte le nombre de lignes que contient votre ensemble de données et transmet le compte à la fonction RANDARRAY, afin qu'elle puisse générer le même nombre de décimales aléatoires :
RANDARRAY(ROWS(A2:C10))
Ce tableau de décimales aléatoires est utilisé comme tableau de "tri par" par la fonction SORTBY. Par conséquent, vos données d'origine sont mélangées de manière aléatoire.
À partir des données triées au hasard, vous extrayez un échantillon d'une taille spécifique. Pour ce faire, vous fournissez le tableau mélangé à la fonction INDEX et demandez à récupérer le premier élément de l'échantillon. N à l'aide de la fonction SEQUENCE, qui produit une séquence de nombres allant de 1 à 2. N Comme les données d'origine sont déjà triées dans un ordre aléatoire, nous ne nous soucions pas vraiment des positions à récupérer, seule la quantité compte.
Sélectionner des lignes aléatoires dans Excel sans doublons
Ne fonctionne que dans Excel 365 et Excel 2021 qui prennent en charge les tableaux dynamiques.
Pour sélectionner des lignes aléatoires sans répétitions, construisez une formule de cette manière :
INDEX(SORTBY( données , RANDARRAY(ROWS( données ))), SEQUENCE( n ), {1,2,...})Où n est la taille de l'échantillon et {1,2,...} sont les numéros des colonnes à extraire.
Par exemple, sélectionnons des lignes aléatoires de A2:C10 sans doublons, sur la base de la taille de l'échantillon dans F1. Comme nos données sont en 3 colonnes, nous fournissons cette constante de tableau à la formule : {1,2,3}
=INDEX(SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))), SEQUENCE(F1), {1,2,3})
Et obtenir le résultat suivant :
Comment fonctionne cette formule :
La formule fonctionne exactement selon la même logique que la précédente. Une petite modification qui fait une grande différence est que vous spécifiez à la fois les paramètres suivants numéro de rang et numéro de colonne arguments pour la fonction INDEX : numéro de rang est fourni par SEQUENCE et numéro de colonne par la constante du tableau.
Comment faire un échantillonnage aléatoire dans Excel 2010 - 2019
Comme seuls Excel pour Microsoft 365 et Excel 2021 prennent en charge les tableaux dynamiques, les fonctions de tableau dynamique utilisées dans les exemples précédents ne fonctionnent que dans Excel 365. Pour les autres versions, vous devrez trouver une autre solution.
Si vous souhaitez effectuer une sélection aléatoire dans la liste A2:A10, vous pouvez utiliser deux formules distinctes :
- Générez des nombres aléatoires avec la formule Rand. Dans notre cas, nous l'entrons en B2, puis nous la copions en B10 :
=RAND()
- Extrayez la première valeur aléatoire à l'aide de la formule ci-dessous, que vous saisissez dans E2 :
=INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)
- Copiez la formule ci-dessus dans autant de cellules que de valeurs aléatoires que vous voulez choisir. Dans cet exemple, nous voulons 4 noms, donc nous copions la formule de E2 à E5.
Notre échantillon aléatoire sans doublons se présente comme suit :
Comment fonctionne cette formule :
Comme dans le premier exemple, vous utilisez la fonction INDEX pour récupérer les valeurs de la colonne A en fonction de numéros de ligne aléatoires. La différence réside dans la manière dont vous obtenez ces numéros :
La fonction RAND remplit la plage B2:B10 avec des décimales aléatoires.
La fonction RANK.EQ calcule le rang d'un nombre aléatoire dans une ligne donnée. Par exemple, dans E2, RANK.EQ(B2, $B$2:$B$10) classe le nombre dans B2 par rapport à tous les nombres dans B2:B10. Lorsqu'elle est copiée dans E3, la référence relative B2 devient B3 et renvoie le rang du nombre dans B3, et ainsi de suite.
La fonction COUNTIF détermine le nombre d'occurrences d'un nombre donné dans les cellules ci-dessus. Par exemple, en E2, COUNTIF($B$2:B2, B2) vérifie une seule cellule - B2 elle-même, et renvoie 1. En E5, la formule devient COUNTIF($B$2:B5, B5) et renvoie 2, car B5 contient la même valeur que B2 (veuillez noter que ceci n'est que pour mieux expliquer la logique de la formule ; sur un petit ensemble de données, les chances d'obtenirles nombres aléatoires en double sont proches de zéro).
En conséquence, pour toutes les 1ères occurrences, le COUNTIF renvoie 1, auquel vous soustrayez 1 pour conserver le classement original. Pour les 2èmes occurrences, le COUNTIF renvoie 2. En soustrayant 1, vous incrémentez le classement de 1, évitant ainsi les classements en double.
Par exemple, pour B2, RANK.EQ donne 1. Comme il s'agit de la première occurrence, COUNTIF donne également 1. RANK.EQ + COUNTIF donne 2. Et - 1 rétablit le rang 1.
Maintenant, voyons ce qui se passe dans le cas de la deuxième occurrence. Pour B5, RANK.EQ renvoie également 1 tandis que COUNTIF renvoie 2. En les additionnant, vous obtenez 3, dont vous soustrayez 1. Comme résultat final, vous obtenez 2, qui représente le rang du nombre dans B5.
Le rang revient à la numéro de rang de la fonction INDEX, et il prend la valeur de la ligne correspondante (l'argument de la fonction INDEX). numéro de colonne C'est la raison pour laquelle il est si important d'éviter les classements doubles. Sans la fonction COUNTIF, RANK.EQ donnerait 1 pour B2 et B5, et INDEX renverrait donc deux fois la valeur de la première ligne (Andrew).
Comment empêcher l'échantillon aléatoire d'Excel de changer
Comme toutes les fonctions de randomisation dans Excel, telles que RAND, RANDBETWEEN et RANDARRAY, sont volatiles, elles recalculent à chaque modification de la feuille de calcul. Par conséquent, votre échantillon aléatoire changera continuellement. Pour éviter que cela ne se produise, utilisez la fonction Collage spécial> ; Valeurs pour remplacer les formules par des valeurs statiques. Pour cela, procédez comme suit :
- Sélectionnez toutes les cellules contenant votre formule (toute formule contenant la fonction RAND, RANDBETWEEN ou RANDARRAY) et appuyez sur Ctrl + C pour les copier.
- Cliquez avec le bouton droit de la souris sur la plage sélectionnée et cliquez sur Collage spécial > ; Valeurs Vous pouvez également appuyer sur Shift + F10, puis sur V , qui est le raccourci de la fonction susmentionnée.
Pour les étapes détaillées, veuillez consulter Comment convertir des formules en valeurs dans Excel.
Sélection aléatoire Excel : lignes, colonnes ou cellules
Fonctionne dans toutes les versions d'Excel 365 à Excel 2010.
Si vous avez installé notre Ultimate Suite dans votre Excel, vous pouvez effectuer un échantillonnage aléatoire par un simple clic de souris au lieu d'utiliser une formule :
- Sur le Outils Ablebits cliquez sur Randomiser > ; Sélectionner aléatoirement .
- Sélectionnez la plage dans laquelle vous voulez prélever un échantillon.
- Dans le volet de l'add-in, procédez comme suit :
- Choisissez si vous voulez sélectionner des lignes, des colonnes ou des cellules aléatoires.
- Définissez la taille de l'échantillon : il peut s'agir d'un pourcentage ou d'un nombre.
- Cliquez sur le bouton Sélectionnez bouton.
Comme le montre l'image ci-dessous, un échantillon aléatoire est sélectionné directement dans votre ensemble de données. Si vous souhaitez le copier quelque part, appuyez simplement sur le raccourci de copie normal (Ctrl + C) .
Voilà comment sélectionner un échantillon aléatoire dans Excel sans doublons. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !
Téléchargements disponibles
Échantillon aléatoire sans doublons - exemples de formules (fichier .xlsx)
Ultimate Suite 14 jours version entièrement fonctionnelle (fichier .exe)