Table des matières
Le tutoriel explique les spécificités de l'algorithme du générateur de nombres aléatoires d'Excel et montre comment utiliser les fonctions RAND et RANDBETWEEN pour générer des nombres aléatoires, des dates, des mots de passe et d'autres chaînes de texte dans Excel.
Avant de nous pencher sur les différentes techniques de génération de nombres aléatoires dans Excel, définissons ce qu'ils sont réellement. En clair, les données aléatoires sont une série de chiffres, de lettres ou d'autres symboles dépourvus de tout modèle.
L'aléatoire a de nombreuses applications dans la cryptographie, les statistiques, la loterie, les jeux d'argent et bien d'autres domaines encore. Et comme il a toujours été demandé, il existe depuis l'Antiquité diverses méthodes pour créer des nombres aléatoires, par exemple en jouant à pile ou face, en lançant des dés, en mélangeant des cartes à jouer, etc. Bien entendu, nous ne nous appuierons pas sur ces techniques "exotiques" dans ce tutoriel et nous nous concentrerons sur les points suivantsce que le générateur de nombres aléatoires Excel a à offrir.
Générateur de nombres aléatoires Excel - les bases
Bien que le générateur aléatoire d'Excel passe tous les tests standards d'aléa, il ne génère pas vrai Mais ne l'oubliez pas tout de suite :) Pseudo-aléatoire Les nombres produits par les fonctions aléatoires d'Excel conviennent à de nombreux usages.
Examinons de plus près l'algorithme du générateur aléatoire Excel afin que vous sachiez ce que vous pouvez en attendre et ce que vous ne pouvez pas en attendre.
Comme la plupart des programmes informatiques, le générateur de nombres aléatoires d'Excel produit nombres pseudo-aléatoires Ce que cela signifie pour vous, c'est que, en théorie, les nombres aléatoires générés par Excel sont prévisibles, à condition que quelqu'un connaisse tous les détails de l'algorithme du générateur. C'est la raison pour laquelle il n'a jamais été documenté et ne le sera pratiquement jamais. Eh bien, que savons-nous du générateur de nombres aléatoires dans Excel ?
- Les fonctions RAND et RANDBETWEEN d'Excel génèrent des nombres pseudo-aléatoires à partir des données suivantes Uniforme distribution Un bon exemple de distribution uniforme est le lancer d'un dé. Le résultat du lancer est constitué de six valeurs possibles (1, 2, 3, 4, 5, 6) et chacune de ces valeurs a la même probabilité de se produire. Pour une explication plus scientifique, veuillez consulter le site wolfram.com.
- Il n'y a aucun moyen d'initialiser les fonctions Excel RAND ou RANDBETWEEN, dont on dit qu'elles sont initialisées à partir de l'heure du système de l'ordinateur. graines est le point de départ de la génération d'une séquence de nombres aléatoires. Et chaque fois qu'une fonction aléatoire d'Excel est appelée, une nouvelle graine est utilisée et renvoie une séquence aléatoire unique. En d'autres termes, lorsque vous utilisez le générateur de nombres aléatoires dans Excel, vous ne pouvez pas obtenir une séquence répétable avec la fonction RAND ou RANDBETWEEN, ni avec VBA, ni par aucun autre moyen.
- Dans les premières versions d'Excel, avant Excel 2003, l'algorithme de génération aléatoire avait une période relativement courte (moins de 1 million de séquences de nombres aléatoires non récurrentes) et il échouait à plusieurs tests standard de caractère aléatoire sur de longues séquences aléatoires. Par conséquent, si quelqu'un travaille encore avec une ancienne version d'Excel, il vaut mieux ne pas utiliser la fonction RAND avec de grands modèles de simulation.
Si vous êtes à la recherche de vrai Pour obtenir des données aléatoires, vous pouvez probablement utiliser un générateur de nombres aléatoires tiers tel que www.random.org, dont le caractère aléatoire provient du bruit atmosphérique. Ils offrent des services gratuits pour générer des nombres aléatoires, des jeux et des loteries, des codes de couleur, des noms aléatoires, des mots de passe, des chaînes alphanumériques et d'autres données aléatoires.
Bon, cette introduction technique assez longue se termine et nous passons à des choses pratiques et plus utiles.
Fonction RAND d'Excel - générer des nombres réels aléatoires
Le site RAND dans Excel est l'une des deux fonctions spécialement conçues pour générer des nombres aléatoires. Elle renvoie un nombre décimal aléatoire (nombre réel) compris entre 0 et 1.
RAND() est une fonction volatile, ce qui signifie qu'un nouveau nombre aléatoire est généré à chaque fois que la feuille de calcul est calculée. Et cela se produit chaque fois que vous effectuez une action sur une feuille de calcul, par exemple la mise à jour d'une formule (pas nécessairement la formule RAND, mais n'importe quelle autre formule sur une feuille), la modification d'une cellule ou la saisie de nouvelles données.
La fonction RAND est disponible dans toutes les versions d'Excel 365 - 2000.
Comme la fonction RAND d'Excel n'a pas d'arguments, il suffit de saisir =RAND()
dans une cellule, puis copiez la formule dans autant de cellules que vous le souhaitez :
Et maintenant, allons un peu plus loin et écrivons quelques formules RAND pour générer des nombres aléatoires en fonction de vos conditions.
Formule 1 : spécifier la valeur de la limite supérieure de l'intervalle.
Pour générer des nombres aléatoires compris entre zéro et n'importe quel N vous multipliez la fonction RAND par N :
RAND()* NPar exemple, pour créer une séquence de nombres aléatoires supérieure ou égale à 0 mais inférieure à 50, utilisez la formule suivante :
=RAND()*50
Remarque : la valeur de la limite supérieure n'est jamais incluse dans la séquence aléatoire renvoyée. Par exemple, si vous souhaitez obtenir des nombres aléatoires compris entre 0 et 10, y compris 10, la bonne formule est la suivante =RAND()*11
.
Formule 2 : Générer des nombres aléatoires entre deux nombres
Pour créer un nombre aléatoire entre deux nombres que vous spécifiez, utilisez la formule RAND suivante :
RAND()*( B - A )+ AOù A est la valeur de la limite inférieure (le plus petit nombre) et B est la valeur de la limite supérieure (le plus grand nombre).
Par exemple, pour générer des numéros aléatoires compris entre 10 et 50, vous pouvez utiliser la formule suivante :
=RAND()*(50-10)+10
Remarque : cette formule aléatoire ne retournera jamais un nombre égal au plus grand nombre de la plage spécifiée ( B valeur).
Formule 3 : Générer des nombres entiers aléatoires dans Excel
Pour que la fonction RAND d'Excel produise des nombres entiers aléatoires, prenez l'une des formules mentionnées ci-dessus et intégrez-la dans la fonction INT.
Pour créer des nombres entiers aléatoires entre 0 et 50 :
=INT(RAND()*50)
Pour générer des nombres entiers aléatoires entre 10 et 50 :
=INT(RAND()*(50-10)+10)
Fonction RANDBETWEEN d'Excel - générer des nombres entiers aléatoires dans une plage spécifiée
La fonction RANDBETWEEN est une autre fonction fournie par Excel pour générer des nombres aléatoires. nombres entiers dans l'intervalle que vous spécifiez :
RANDBETWEEN(bas, haut)Évidemment, b ottom est le nombre le plus bas et top est le nombre le plus élevé de la plage de nombres aléatoires que vous souhaitez obtenir.
Comme RAND, RANDBETWEEN d'Excel est une fonction volatile qui renvoie un nouveau nombre entier aléatoire chaque fois que votre feuille de calcul effectue un nouveau calcul.
Par exemple, pour générer des entiers aléatoires compris entre 10 et 50 (y compris 10 et 50), utilisez la formule RANDBETWEEN suivante :
=INTERVALLE (10, 50)
La fonction RANDBETWEEN d'Excel peut créer des nombres positifs et négatifs. Par exemple, pour obtenir une liste d'entiers aléatoires de -10 à 10, saisissez la formule suivante dans votre feuille de calcul :
=RANDBETWEEN(-10, 10)
La fonction RANDBETWEEN est disponible dans Excel 365 - Excel 2007. Dans les versions antérieures, vous pouvez utiliser la formule RAND démontrée dans l'exemple 3 ci-dessus.
Plus loin dans ce tutoriel, vous trouverez quelques autres exemples de formules démontrant comment utiliser la fonction RANDBETWEEN pour générer des valeurs aléatoires autres que des entiers.
Conseil : dans Excel 365 et Excel 2021, vous pouvez utiliser la fonction de tableau dynamique RANDARRAY pour renvoyer un tableau de nombres aléatoires entre deux nombres que vous spécifiez.
Créer des nombres aléatoires avec des décimales spécifiées
Bien que la fonction RANDBEETWEEN d'Excel ait été conçue pour renvoyer des nombres entiers aléatoires, vous pouvez la forcer à renvoyer des nombres décimaux aléatoires avec autant de décimales que vous le souhaitez.
Par exemple, pour obtenir une liste de nombres avec une décimale, vous multipliez les valeurs inférieure et supérieure par 10, puis vous divisez la valeur renvoyée par 10 :
RANDBETWEEN( valeur inférieure * 10, valeur supérieure * 10)/10La formule RANDBETWEEN suivante renvoie des nombres décimaux aléatoires compris entre 1 et 50 :
=INTERVALLE (1*10, 50*10)/10
De la même manière, pour générer des nombres aléatoires compris entre 1 et 50 avec 2 décimales, vous multipliez les arguments de la fonction RANDBETWEEN par 100, puis vous divisez également le résultat par 100 :
=RANDBETWEEN(1*100, 50*100) / 100
Comment générer des dates aléatoires dans Excel
Pour renvoyer une liste de dates aléatoires comprises entre deux dates données, utilisez la fonction RANDBETWEEN en combinaison avec DATEVALUE :
RANDBETWEEN(DATEVALUE( date d'entrée en vigueur ), DATEVALUE( date de fin ))Par exemple, pour obtenir la liste des dates comprises entre le 1er juin 2015 et le 30 juin 2015 inclus, saisissez la formule suivante dans votre feuille de calcul :
=RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))
Vous pouvez également utiliser la fonction DATE au lieu de DATEVALUE :
=RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))
N'oubliez pas d'appliquer le format de date à la ou aux cellules et vous obtiendrez une liste de dates aléatoires semblable à celle-ci :
Pour un certain nombre d'options avancées, telles que la génération aléatoire de jours de la semaine ou de week-ends, consultez la rubrique Générateur aléatoire avancé de dates.
Comment insérer des temps aléatoires dans Excel
Sachant que dans le système interne d'Excel, les heures sont stockées sous forme de décimales, vous pouvez utiliser la fonction RAND standard d'Excel pour insérer des nombres réels aléatoires, puis appliquer simplement le format d'heure aux cellules :
Pour renvoyer des temps aléatoires en fonction de vos critères, des formules aléatoires plus spécifiques sont nécessaires, comme illustré ci-dessous.
Formule 1 : Générer des temps aléatoires dans l'intervalle spécifié
Pour insérer des temps aléatoires entre deux temps que vous spécifiez, utilisez la fonction TIME ou TIMEVALUE en conjonction avec Excel RAND :
TIME( heure de départ )+RAND() * (TEMPS( heure de départ ) - TIME( heure de fin )) TIMEVALUE( heure de départ )+RAND() * (TIMEVALUE( heure de départ ) - TIMEVALUE( heure de fin ))Par exemple, pour insérer une heure aléatoire entre 6h00 et 17h30, vous pouvez utiliser l'une des formules suivantes :
=TIME(6,0,0) + RAND() * (TIME(17,30,0) - TIME(6,0,0))
=TIMEVALUE("6:00 AM") + RAND() * (TIMEVALUE("5:30 PM") - TIMEVALUE("6:00 AM"))
Formule 2 : Génération de dates et d'heures aléatoires
Pour créer une liste d'échantillons aléatoires dates et heures Dans le cas de l'utilisation de la fonction RANDBETWEEN, utilisez une combinaison des fonctions RANDBETWEEN et DATEVALUE :
RANDBETWEEN(DATEVALUE( date de début) , DATEVALUE( date de fin )) + RANDBETWEEN(TIMEVALUE( heure de départ ) * 10000, TIMEVALUE( heure de fin ) * 10000)/10000Supposons que vous souhaitiez insérer des dates aléatoires entre le 1er juin 2015 et le 30 juin 2015 avec une heure comprise entre 7h30 et 18h00, la formule suivante fonctionnera à merveille :
=RANDBETWEEN(DATEVALUE("1-Jun-2015"), DATEVALUE("30-Jun-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000
Vous pouvez également fournir des dates et des heures à l'aide des fonctions DATE et TIME, respectivement :
=RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000
Génération de lettres aléatoires dans Excel
Pour renvoyer une lettre aléatoire, une combinaison de trois fonctions différentes est nécessaire :
=CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))
Où A est le premier caractère et le Z est le dernier caractère de la série de lettres que vous souhaitez inclure (par ordre alphabétique).
Dans la formule ci-dessus :
- CODE renvoie les codes numériques ANSI pour les lettres spécifiées.
- RANDBETWEEN prend les nombres renvoyés par les fonctions CODE comme valeurs inférieure et supérieure de la plage.
- CHAR convertit les codes ANSI aléatoires retournés par RANDBETWEEN en lettres correspondantes.
Remarque : comme les codes ANSI sont différents pour les caractères en majuscules et en minuscules, cette formule est la suivante sensible à la casse .
Si quelqu'un se souvient par cœur du tableau des codes de caractères ANSI, rien ne vous empêche de fournir les codes directement à la fonction RANDBETWEEN.
Par exemple, pour obtenir des données aléatoires Lettres en majuscules entre A (code ANSI 65) et Z (code ANSI 90), vous écrivez :
=CHAR(RANDBETWEEN(65, 90))
Pour générer lettres minuscules de a (code ANSI 97) à z (code ANSI 122), vous utilisez la formule suivante :
=CHAR(RANDBETWEEN(97, 122))
Pour insérer un caractère spécial aléatoire, tel que ! " # $ % & ; ' ( ) * + , - . /, utiliser la fonction RANDBETWEEN avec la fonction fond défini à 33 (code ANSI pour " !") et le paramètre top défini à 47 (code ANSI pour "/").
=CHAR(RANDBETWEEN(33,47))
Génération de chaînes de texte et de mots de passe dans Excel
Pour créer une chaîne de texte aléatoire dans Excel, il suffit de concaténer plusieurs fonctions CHAR / RANDBEETWEEN.
Par exemple, pour générer une liste de mots de passe composés de 4 caractères, vous pouvez utiliser une formule similaire à celle-ci :
=RANDBETWEEN(0,9) & ; CHAR(RANDBETWEEN(65,90)) & ; CHAR(RANDBETWEEN(97, 122)) & ; CHAR(RANDBETWEEN(33,47))
Pour rendre la formule plus compacte, j'ai fourni les codes ANSI directement dans la formule. Les quatre fonctions renvoient les valeurs aléatoires suivantes :
ENTRE LES DEUX(0,9)
- renvoie des nombres aléatoires entre 0 et 9.CHAR(RANDBETWEEN(65,90))
- renvoie des lettres en majuscules aléatoires entre A et Z .CHAR(RANDBETWEEN(97, 122))
- renvoie des lettres minuscules aléatoires entre a et z .CHAR(RANDBETWEEN(33,47))
- renvoie des caractères spéciaux aléatoires.
Les chaînes de texte générées avec la formule ci-dessus seraient quelque chose comme " 4Np# " ou " 2Yu& ; ".
Un mot d'avertissement ! Si vous utilisez une formule similaire pour créer des mots de passe aléatoires, ils ne seront pas solides. Bien sûr, rien ne vous empêche de générer des chaînes de texte plus longues en enchaînant plusieurs fonctions CHAR / RANDBETWEEN. Cependant, il est impossible de randomiser l'ordre des caractères, c'est-à-dire que la première fonction renvoie toujours un chiffre, la deuxième une lettre majuscule et ainsi de suite.
Si vous recherchez un générateur de mots de passe aléatoire avancé dans Excel, capable de produire des chaînes de texte de n'importe quelle longueur et de n'importe quel modèle, vous pouvez vérifier les capacités du générateur aléatoire avancé pour les chaînes de test.
Pour vous assurer que vos chaînes de caractères ou vos mots de passe restent les mêmes une fois qu'ils sont créés, vous devez empêcher la fonction RANDBETWEEN de mettre à jour les valeurs, ce qui nous amène directement à la section suivante.
Comment empêcher le recalcul de RAND et RANDBETWEEN ?
Si vous souhaitez obtenir un ensemble permanent de nombres, de dates ou de chaînes de texte aléatoires qui ne changeront pas à chaque fois que la feuille sera recalculée, utilisez l'une des techniques suivantes :
- Pour empêcher les fonctions RAND ou RANDBETWEEN de recalculer en une cellule sélectionnez cette cellule, passez à la barre de formule et appuyez sur F9 pour remplacer la formule par sa valeur.
- Pour empêcher une fonction aléatoire Excel de se recalculer, utilisez la fonction Collage spécial> ; Valeurs. Sélectionnez toutes les cellules contenant la formule aléatoire, appuyez sur Ctrl + C pour les copier, puis cliquez avec le bouton droit de la souris sur la plage sélectionnée et cliquez sur Collage spécial > ; Valeurs .
Pour en savoir plus sur cette technique permettant de "geler" les nombres aléatoires, voir Comment remplacer les formules par des valeurs.
Comment générer des nombres aléatoires uniques dans Excel
Aucune des fonctions aléatoires d'Excel ne peut produire des valeurs aléatoires uniques. Si vous souhaitez créer une liste de nombres aléatoires sans doublons effectuez ces étapes :
- Utilisez la fonction RAND ou RANDBETWEEN pour générer une liste de nombres aléatoires. Créez plus de valeurs que vous n'en avez réellement besoin car certaines seront des doublons à supprimer ultérieurement.
- Convertissez les formules en valeurs comme expliqué ci-dessus.
- Supprimez les valeurs en double en utilisant soit l'outil intégré d'Excel, soit notre outil avancé de suppression des doublons pour Excel.
Vous trouverez d'autres solutions dans ce tutoriel : Comment générer des nombres aléatoires sans doublons.
Générateur de nombres aléatoires avancé pour Excel
Maintenant que vous savez comment utiliser les fonctions aléatoires dans Excel, laissez-moi vous montrer une méthode plus rapide, plus facile et sans formule pour créer une liste de nombres, de dates ou de chaînes de texte aléatoires dans vos feuilles de calcul.
AbleBits Random Generator for Excel a été conçu comme une alternative plus puissante et plus conviviale aux fonctions RAND et RANDBETWEEN d'Excel. Il fonctionne avec toutes les versions de Microsoft Excel 2019, 2016, 2013, 2010, 2007 et 2003 de la même manière et résout la plupart des problèmes de qualité et de convivialité des fonctions aléatoires standard.
Algorithme du générateur de nombres aléatoires AbleBits
Avant de vous montrer notre générateur aléatoire en action, permettez-moi de vous fournir quelques informations clés sur son algorithme afin que vous sachiez exactement ce que nous vous proposons.
- Le générateur de nombres aléatoires AbleBits pour Excel est basé sur l'algorithme Mersenne Twister, qui est considéré comme une norme industrielle pour une pseudo randomisation de haute qualité.
- Nous utilisons la version MT19937 qui produit une séquence normalement distribuée d'entiers de 32 bits avec une très longue période de 2^19937 - 1, ce qui est plus que suffisant pour tous les scénarios imaginables.
- Les nombres aléatoires générés à l'aide de cette méthode sont de très haute qualité. Le générateur de nombres aléatoires a passé avec succès de nombreux tests d'aléa statistique, y compris les tests bien connus du NIST Statistical Test Suiteet Diehard et certains des tests d'aléa de TestU01 Crush.
Contrairement aux fonctions aléatoires d'Excel, notre générateur de nombres aléatoires crée valeurs aléatoires permanentes qui ne changent pas lors du recalcul d'une feuille de calcul.
Comme nous l'avons déjà indiqué, ce générateur de nombres aléatoires avancé pour Excel offre un moyen sans formule (et donc sans erreur :) de créer diverses valeurs aléatoires telles que.. :
- Des nombres entiers ou décimaux aléatoires, y compris des nombres uniques.
- Dates aléatoires (jours ouvrables, week-ends, ou les deux, et éventuellement dates uniques)
- Chaînes de texte aléatoires, y compris les mots de passe d'une longueur et d'un modèle donnés, ou par masque.
- Valeurs booléennes aléatoires de VRAI et FAUX.
- Sélection aléatoire à partir de listes personnalisées
Et maintenant, voyons le générateur de nombres aléatoires en action, comme promis.
Générer des nombres aléatoires dans Excel
Avec le générateur de nombres aléatoires d'AbleBits, la création d'une liste de nombres aléatoires est aussi simple que de cliquer sur l'icône de l'ordinateur. Générer bouton.
Génération d'entiers aléatoires uniques
Tout ce que vous avez à faire, c'est de sélectionner la plage à peupler d'entiers aléatoires, de définir les valeurs inférieure et supérieure et, éventuellement, de cocher l'option Valeurs uniques boîte.
Génération de nombres réels aléatoires (décimaux)
De la même manière, vous pouvez générer une série de nombres décimaux aléatoires dans la plage que vous spécifiez.
Créer des dates aléatoires dans Excel
Pour les dates, notre générateur de numéros aléatoires offre les options suivantes :
- Générer des dates aléatoires pour une période spécifique - vous saisissez la date de base dans le champ De et la date supérieure dans la fenêtre A boîte.
- Incluez les jours de la semaine, les week-ends ou les deux.
- Générer des dates uniques.
Générer des chaînes de texte et des mots de passe aléatoires
Outre les nombres et les dates aléatoires, ce générateur aléatoire vous permet de créer facilement des chaînes alphanumériques aléatoires avec certains jeux de caractères. La longueur maximale des chaînes est de 99 caractères, ce qui permet de générer des mots de passe vraiment forts.
Une option unique offerte par le générateur de nombres aléatoires AbleBits consiste à créer chaînes de texte aléatoires par masque Il s'agit d'une fonction très utile pour générer des identifiants uniques mondiaux (GUID), des codes postaux, des SKU, etc.
Par exemple, pour obtenir une liste de GUIDs aléatoires, vous sélectionnez le jeu de caractères hexadécimaux et tapez ????????-????-????- ???????????? dans le champ Masque comme le montre la capture d'écran :
Si vous souhaitez faire l'essai de notre générateur aléatoire, vous pouvez le télécharger ci-dessous dans le cadre de notre Suite ultime pour Excel.
Téléchargements disponibles
Exemples de formules aléatoires (fichier .xlsx)
Ultimate Suite 14 jours version entièrement fonctionnelle (fichier .exe)