Comment générer des nombres aléatoires dans Excel sans répétitions ?

  • Partage Ça
Michael Brown

Dans cet article, nous aborderons quelques formules différentes permettant d'effectuer des calculs aléatoires dans Excel sans répéter les nombres. Nous vous présenterons également un générateur aléatoire universel capable de produire une liste de nombres, de dates et de chaînes de caractères aléatoires sans répétitions.

Comme vous le savez probablement, Microsoft Excel dispose de plusieurs fonctions permettant de générer des nombres aléatoires, telles que RAND, RANDBETWEEN et RANDARRAY. Cependant, il n'est pas garanti que le résultat d'une fonction soit exempt de doublons.

Ce tutoriel explique quelques formules permettant de créer une liste de nombres aléatoires uniques. Attention, certaines formules ne fonctionnent que dans la dernière version d'Excel 365 et 2021, tandis que d'autres peuvent être utilisées dans n'importe quelle version d'Excel 2019, Excel 2016, Excel 2013 et antérieure.

    Obtenir une liste de nombres aléatoires uniques avec un pas prédéfini

    Ne fonctionne que dans Excel 365 et Excel 2021 qui prennent en charge les tableaux dynamiques.

    Si vous disposez de la dernière version d'Excel, le moyen le plus simple pour vous d'obtenir une liste de nombres aléatoires uniques est de combiner 3 nouvelles fonctions de tableaux dynamiques : SORTBY, SEQUENCE et RANDARRAY :

    SORTBY(SÉQUENCE( n ), RANDARRAY( n ))

    n est le nombre de valeurs aléatoires que vous souhaitez obtenir.

    Par exemple, pour créer une liste de 5 nombres aléatoires, utilisez 5 pour n :

    =SORTBY(SÉQUENCE(5), RANDARRAY(5))

    Saisissez la formule dans la cellule la plus haute, appuyez sur la touche Entrée, et les résultats se répandront automatiquement sur le nombre de cellules spécifié.

    Comme vous pouvez le voir dans la capture d'écran ci-dessous, cette formule est en fait trie les chiffres de 1 à 5 dans un ordre aléatoire Si vous avez besoin d'un générateur de nombres aléatoires classique sans répétitions, veuillez consulter les autres exemples ci-dessous.

    Dans la formule ci-dessus, vous ne définissez que le nombre de lignes à remplir. Tous les autres arguments sont laissés à leur valeur par défaut, ce qui signifie que la liste commencera à 1 et sera incrémentée de 1. Si vous souhaitez un premier chiffre et un incrément différents, définissez vos propres valeurs pour les 3èmes arguments ( commencer ) et 4ème ( étape ) de la fonction SEQUENCE.

    Par exemple, pour commencer à 100 et incrémenter par 10, utilisez cette formule :

    =SORTBY(SÉQUENCE(5, , 100, 10), RANDARRAY(5))

    Comment fonctionne cette formule :

    En travaillant de l'intérieur vers l'extérieur, voici ce que fait la formule :

    • La fonction SEQUENCE crée un tableau de nombres séquentiels basé sur la valeur de départ spécifiée ou par défaut et sur une taille d'étape incrémentale. Cette séquence est envoyée à la fonction tableau argument de SORTBY.
    • La fonction RANDARRAY crée un tableau de nombres aléatoires de la même taille que la séquence (5 lignes, 1 colonne dans notre cas). Les valeurs min et max n'ont pas vraiment d'importance, nous pouvons donc les laisser par défaut. Ce tableau est placé dans la fonction par_réseau argument de SORTBY.
    • La fonction SORTBY trie les nombres séquentiels générés par SEQUENCE en utilisant un tableau de nombres aléatoires produit par RANDARRAY.

    Gardez à l'esprit que cette formule simple crée une liste de nombres aléatoires non répétitifs avec une valeur de étape prédéfinie Pour contourner cette limitation, utilisez une version avancée de la formule décrite ci-dessous.

    Générer une liste de nombres aléatoires sans doublons

    Ne fonctionne que dans Excel 365 et Excel 2021 qui prennent en charge les tableaux dynamiques.

    Pour générer des nombres aléatoires dans Excel sans doublons, utilisez l'une des formules génériques ci-dessous.

    Entiers aléatoires :

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max , VRAI)), SÉQUENCE( n ))

    Décimales aléatoires :

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max , FAUX)), SÉQUENCE( n ))

    Où :

    • N est le nombre de valeurs à générer.
    • Min est la valeur minimale.
    • Max est la valeur maximale.

    Par exemple, pour créer une liste de 5 nombres entiers aléatoires de 1 à 100 sans répétitions, utilisez cette formule :

    =INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100, TRUE)), SÉQUENCE(5))

    Pour générer 5 uniques aléatoires nombres décimaux Si l'on ne veut pas que l'on mette FALSE dans le dernier argument de RANDARRAY, on peut aussi omettre cet argument :

    =INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100)), SÉQUENCE(5))

    Comment fonctionne cette formule :

    À première vue, la formule peut sembler un peu compliquée, mais en y regardant de plus près, sa logique est très simple :

    • La fonction RANDARRAY crée un tableau de nombres aléatoires sur la base des valeurs min et max que vous spécifiez. Pour déterminer le nombre de valeurs à générer, vous augmentez le nombre souhaité d'uniques à la puissance 2. Comme le tableau résultant peut avoir on ne sait combien de doublons, vous devez fournir un tableau suffisant de valeurs parmi lesquelles UNIQUE pourra choisir. Dans cet exemple, nous avons besoin de seulement 5 uniques.des nombres aléatoires mais nous demandons à RANDARRAY de produire 25 (5^2).
    • La fonction UNIQUE supprime tous les doublons et "alimente" un tableau sans doublon à INDEX.
    • À partir du tableau transmis par UNIQUE, la fonction INDEX extrait le premier élément du tableau. n comme spécifié par SEQUENCE (5 nombres dans notre cas). Comme les valeurs sont déjà dans un ordre aléatoire, il n'est pas vraiment important de savoir lesquelles survivent.

    Remarque : pour les tableaux de très grande taille, cette formule peut être un peu lente. Par exemple, pour obtenir une liste de 1 000 numéros uniques comme résultat final, RANDARRAY devrait générer un tableau de 1 000 000 de numéros aléatoires (1000^2) en interne. Dans de telles situations, au lieu d'élever à la puissance, vous pouvez multiplier n Gardez à l'esprit que plus le tableau transmis à la fonction UNIQUE est petit (petit par rapport au nombre souhaité de valeurs aléatoires uniques), plus il y a de chances que toutes les cellules de la plage de déversement ne soient pas remplies avec les résultats.

    Créer une plage de nombres aléatoires non répétitifs dans Excel

    Ne fonctionne que dans Excel 365 et Excel 2021 qui prennent en charge les tableaux dynamiques.

    Pour générer une série de nombres aléatoires sans répétitions, vous pouvez utiliser cette formule :

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max )), SEQUENCE( rangées , colonnes ))

    Où :

    • n est le nombre de cellules à remplir. Pour éviter les calculs manuels, vous pouvez le fournir sous la forme (nombre de lignes * nombre de colonnes). Par exemple, pour remplir 10 lignes et 5 colonnes, utilisez 50^2 ou (10*5)^2.
    • Rangs est le nombre de lignes à remplir.
    • Colonnes est le nombre de colonnes à remplir.
    • Min est la valeur la plus faible.
    • Max est la valeur la plus élevée.

    Comme vous pouvez le constater, la formule est fondamentalement la même que dans l'exemple précédent, la seule différence étant la fonction SEQUENCE qui, dans ce cas, définit à la fois le nombre de lignes et de colonnes.

    Par exemple, pour remplir une plage de 10 lignes et 3 colonnes avec des nombres aléatoires uniques de 1 à 100, utilisez cette formule :

    =INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100)), SÉQUENCE(10, 3))

    Et il produira un tableau de décimales aléatoires sans répétition de chiffres :

    Si vous avez besoin de nombres entiers, donnez la valeur TRUE au dernier argument de RANDARRAY :

    =INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100, TRUE)), SÉQUENCE(10,3))

    Comment générer des nombres aléatoires uniques dans Excel 2019, 2016 et antérieurs ?

    Étant donné qu'aucune version autre qu'Excel 365 et 2021 ne prend en charge les tableaux dynamiques, aucune des solutions ci-dessus ne fonctionne dans les versions antérieures d'Excel. Toutefois, cela ne signifie pas qu'il n'existe aucune solution, vous devrez simplement effectuer quelques étapes supplémentaires :

    1. Créez une liste de nombres aléatoires. En fonction de vos besoins, utilisez l'un ou l'autre :
      • La fonction RAND pour générer des décimales aléatoires entre 0 et 1, ou
      • La fonction RANDBETWEEN pour produire des nombres entiers aléatoires dans la plage que vous spécifiez.

      Veillez à générer plus de valeurs que vous n'en avez réellement besoin, car certaines seront des doublons et vous les supprimerez plus tard.

      Dans cet exemple, nous créons une liste de 10 entiers aléatoires entre 1 et 20 en utilisant la formule ci-dessous :

      =INTERVALLE (1,20)

      Pour saisir la formule dans plusieurs cellules en une seule fois, sélectionnez toutes les cellules (A2:A15 dans notre exemple), tapez la formule dans la barre de formule et appuyez sur Ctrl + Entrée . Vous pouvez également saisir la formule dans la première cellule comme d'habitude, puis la faire glisser vers le bas dans autant de cellules que nécessaire.

      Quoi qu'il en soit, le résultat ressemblera à quelque chose comme ceci :

      Comme vous pouvez le remarquer, nous avons saisi la formule dans 14 cellules, alors que nous n'avons finalement besoin que de 10 nombres aléatoires uniques.

    2. Transformez les formules en valeurs. Étant donné que les formules RAND et RANDBETWEEN recalculent à chaque modification de la feuille de calcul, votre liste de nombres aléatoires changera continuellement. Pour éviter que cela ne se produise, utilisez la fonction Collage spécial> ; Valeurs pour convertir les formules en valeurs, comme expliqué dans Comment empêcher les nombres aléatoires de se recalculer.

      Pour vous assurer que vous avez bien fait, sélectionnez un nombre quelconque et regardez la barre de formule. Elle doit maintenant afficher une valeur, et non une formule :

    3. Supprimez les doublons. Pour ce faire, sélectionnez tous les numéros, allez dans la rubrique Données tab> ; Outils de données et cliquez sur Supprimer les doublons Dans le Supprimer les doublons Pour les étapes détaillées, veuillez consulter Comment supprimer les doublons dans Excel.

    Tous les doublons ont disparu, et vous pouvez maintenant supprimer les numéros en trop.

    Conseil : au lieu de l'outil intégré d'Excel, vous pouvez utiliser notre outil avancé de suppression des doublons pour Excel.

    Comment empêcher les nombres aléatoires de changer

    Toutes les fonctions de randomisation d'Excel, y compris RAND, RANDBETWEEN et RANDARRAY, sont volatiles, ce qui signifie qu'elles recalculent chaque fois que la feuille de calcul est modifiée. Par conséquent, de nouvelles valeurs aléatoires sont produites à chaque modification. Pour empêcher la génération automatique de nouveaux nombres, utilisez la fonction Collage spécial et valeurs pour remplacer les formules par des valeurs statiques. Voici comment procéder :

    1. Sélectionnez toutes les cellules contenant votre formule aléatoire et appuyez sur Ctrl + C pour les copier.
    2. 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 cette option.

    Pour les étapes détaillées, veuillez consulter la rubrique Comment transformer des formules en valeurs dans Excel.

    Générateur de nombres aléatoires pour Excel, sans répétitions

    Les utilisateurs de notre Ultimate Suite n'ont pas vraiment besoin des solutions ci-dessus car ils disposent déjà d'un générateur aléatoire universel dans leur Excel. Cet outil peut facilement produire une liste d'entiers non répétitifs, de nombres décimaux, de dates et de mots de passe uniques. Voici comment :

    1. Sur le Outils Ablebits cliquez sur Randomiser > ; Générateur aléatoire .
    2. Sélectionnez la plage à remplir de nombres aléatoires.
    3. Sur le Générateur aléatoire faites ce qui suit :
      • Choisissez le type de valeur désiré : entier, nombre réel, date, booléen, liste personnalisée ou chaîne de caractères (idéal pour générer des mots de passe uniques et forts !).
      • Mettre en place le De et A valeurs.
      • Sélectionnez le Valeurs uniques la case à cocher.
      • Cliquez sur Générer .

    Et voilà, la plage sélectionnée est remplie de nombres aléatoires non répétitifs en une seule fois :

    Si vous êtes curieux d'essayer cet outil et d'explorer d'autres fonctions fascinantes incluses dans notre Ultimate Suite, vous pouvez télécharger une version d'essai.

    Voilà comment randomiser des nombres dans Excel sans doublons. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

    Cahier d'exercices à télécharger

    Générer des nombres aléatoires uniques dans Excel (fichier .xlsx)

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.