Fonction ALEA()
Renvoie un nombre décimal entre 0 et 1 pouvant avoir jusqu'à 15 décimales (limite d'Excel).
Un nouveau nombre réel aléatoire est renvoyé chaque fois que la feuille de calcul est recalculée.
Syntaxe
= ALEA()Aucun argument.
Utilisation
Pour obtenir un nombre entier entre 0 et 99, il suffit de d'utiliser :
= ENT(ALEA()*100)Pour obtenir un nombre entier entre 10 et 60, on va d'utiliser :
= ENT( ALEA() * (Valeur Max - Valeur min + 1)) + Valeur Minsoit
= ENT(ALEA()*(60-10+1))+10Depuis de nombreuse versions, Excel met à notre disposition la fonction ALEA.ENTRE.BORNES pour obtenir ce résultat.
Fonction ALEA.ENTRE.BORNES()
Renvoie un nombre entier aléatoire compris entre 2 valeurs spécifiées (Versions >2013).
Un nouveau nombre entier aléatoire est renvoyé chaque fois que la feuille de calcul est recalculée.
Syntaxe
= ALEA.ENTRE.BORNES(Min;Max)- Min : Valeur minimale pouvant être générée.
- Max : Valeur maximale pouvant être générée.
Utilisation
Pour obtenir un nombre entier entre 10 et 60, on va d'utiliser :
=ALEA.ENTRE.BORNES(10;60)Fonction TABLEAU.ALEA()
Renvoie un tableau de nombres aléatoires (Versions > 2016).
Un nouveau tableau de nombres aléatoires est renvoyé chaque fois que la feuille de calcul est recalculée.
Fonction intéressante avec l'utilisation des tableau dynamique (Voir Formules de tableaux dynamiques, une nouvelle logique de conception).
Syntaxe
=TABLEAU.ALEA([Lignes] ; [Colonnes] ; [Min]; [Max] ; [Entier])- Lignes : (Facultatif) Nombre entier de lignes du tableau à générer (par défaut 1).
- Colonnes : (Facultatif) Nombre entier de colonne du tableau à générer (par défaut 1).
- Min : (Facultatif) Valeur minimale pouvant être générée.
- Max : (Facultatif) Valeur maximale pouvant être générée.
- Entier : (Facultatif : True/False)
- VRAI : Génération de nombres entiers.
- FAUX ou omis : Génération de nombres décimales (=avec virgule).
Utilisation
Génération d'un tableau de 2 lignes et 3 colonnes de nombres entiers entre 10 et 60.
=TABLEAU.ALEA(2;3;10;60;VRAI)Générer des nombres aléatoires uniques dispersés
Avec les fonctions précédentes (ALEA, ALEA.ENTRE.BORNES, TABLEAU.ALEA) , on peut obtenir plusieurs fois la même valeur. Cett fois, on veut obtenir 10 valeurs uniques entre 0 et 50.
(en colonne) = LET(n;10;PRENDRE(UNIQUE(TABLEAU.ALEA(4*n;1;0;50;VRAI));n))
(en ligne) = LET(n;10;PRENDRE(UNIQUE(TABLEAU.ALEA(1;4*n;0;50;VRAI));;n))Exemple de résultat : 11 ; 38 ; 18 ; 17 ; 0 ; 16 ; 6 ; 0 ; 6 ; 16.
Principe
- On va générer beaucoup plus de nombres aléatoires que nécessaire (ici 4 fois plus=>4*n), on retire les doublons (UNIQUE) en espérant qu'il en reste assez 😁. Puis on ne conserve que les 10 premiers (PRENDRE).
Générer une suite de nombres se suivant en ordre aléatoire
On veut obtenir les 5 chiffres de 1 à 5 selon un ordre aléatoire.
(en colonne) = LET(n;5;
s;SEQUENCE(n);
m;TABLEAU.ALEA(n);
TRIERPAR(s;m))
(en ligne) = LET(n;5;
s;SEQUENCE(;n);
m;TABLEAU.ALEA(;n);
TRIERPAR(s;m))Exemple de résultat : 2 ; 5 ; 1 ; 4 ; 3.
Principe
- On génère une matrice de valeur de 1 à 5 (s), on la trie (TRIERPAR) selon l'ordre d'une matrice de nombre aléatoire (m).
Merci pour votre attention bienveillante.
