Monsieur Excel
Pour tout savoir faire sur Excel !

21 février 2007

Et la fonction alea.entre.bornes() ?

Excel propose aussi une fonction alea.entre.bornes(min;max), qui engendre un nombre aléatoire entier dans l’intervalle [min ; max], mais je vous conseille de ne pas l’utiliser.

En effet, tout d'abord, elle n’est accessible que si la macro complémentaire
« Utilitaire d’analyse », livrée avec Excel, est en mémoire. Si donc l’utilisateur de votre modèle n’a pas cet add-in en mémoire, la formule aboutira au fatidique #VALEUR!

Ensuite, on fait mieux et plus simple avec une formule Excel n’utilisant que la fonction alea().


Remarque 1 – Comme vous le voyez ci-dessus, l’assistant fonction omet de vous indiquer que le nombre aléatoire entre le min et le max est un nombre entier ! En plus, Microsoft ne vous dit évidemment pas ce qui arrive quand les bornes ne sont pas entières…

Remarque 2 – Quand vous cliquez en bas à gauche dans « Aide sur cette fonction », vous obtenez une fenêtre vide (cf. écran ci-dessus). Une fois encore, notons que l’aide d’Excel est franchement à revoir.

En fait, =alea.entre.bornes(a;b) équivaut donc, après les essais que j’ai effectués, à la formule : =arrondi.sup(min;0)+ent((arrondi.inf(max;0)-arrondi.sup(min;0)+1)*alea()).

Si les bornes sont entières et que vous voulez un résultat entier comme la fonction alea.entre.bornes() le calculerait, il vous suffit d’entrer la formule =min+ent((max-min+1)*alea()) !

18 Commentaire(s):

  • Bonjour,

    Est-ce que la fonction Alea() génère toujours la même suite de nombres ou pas ?

    Olivier

    By Blogger Olivier, sur 10:21 AM  

  • La première valeur engendrée par alea() est prise au hasard chaque fois que vous ouvrez le classeur contenant la fonction.

    En moins de temps qu'il ne m'a fallu pour vous répondre, vous l'auriez vérifié en fermant et en rouvrant le fichier concerné et/ou Excel...

    By Blogger Hervé Thiriez, sur 10:34 AM  

  • Bonjour,
    Connaissez-vous un moyen pour éviter le recalcul automatique de la fonction alea?

    Cordialement,

    By Anonymous Anonyme, sur 3:52 PM  

  • Si vous êtes en mode de calcul automatique, alea() se calcule à chaque modification dand Excel. La seule façon de bloquer son calcul à la demande serait de remplacer =alea() par =si(Drapeau=1;alea();cellule) où cellule serait l'adresse de la cellule active. Le calcul n'aurait alors lieu que si le drapeau est à 1.

    Problème : pour que cela marche, il faut activer l'acceptation des références circulaires en cochant "Itération" dans les réglages de calcul, ce qui peut poser des problèmes car vous perdez alors la possibilité d'obtenir le message d'alerte des références circulaires !

    By Blogger Hervé Thiriez, sur 9:38 AM  

  • Bonjour, comment générer des heures aléatoires entre 2 valeurs limites

    By Blogger roy, sur 9:25 AM  

  • =date1+(date2-date1)*alea()

    By Blogger Hervé Thiriez, sur 8:50 PM  

  • Bonjour,
    Etant enseignant, je voudrais proposer une soustraction avec des nombres aléatoires : évidemment, le deuxième nombre doit être plus petit que le premier (exemple : 91 - 57, mais pas 42 - 78). Comment faire pour générer un nombre aléatoire plus petit qu'un autre nombre aléatoire ?

    By Anonymous Chris Blues, sur 1:33 AM  

  • Pour la soustraction avec génération de nombres aléatoires, j'ai oublié de préciser que j'ai essayé la fonction ALEA.ENTRE.BORNES, mais cela ne marche pas : je souhaite donc avoir une autre façon de procéder. Merci à vous.

    By Anonymous Chris Blues, sur 1:37 AM  

  • En A1 : =ENT(100*ALEA())
    En A2 : =ENT(A1*ALEA())

    By Blogger Hervé Thiriez, sur 3:17 PM  

  • Grand merci. Ça paraît tout simple, mais il fallait y penser : ça marche impec.
    Merci encore.

    By Anonymous Chris Blues, sur 1:05 AM  

  • Je cherche à générer une suite de nombre aléatoire (exemple : entre 1 et 111) mais je voudrais que cette suite ne comporte jamais deux fois le même nombre.

    Grossièrement, je voudrais que tous les nombres de 1 à 111 soient dans le désordre.

    Auriez-vous une solution s'il vous plait ?

    By Anonymous Anonyme, sur 11:53 AM  

  • Bonjour,
    Je cherche pour un tournoi de belote, une formule permettant d'attribuer le numéro (aléatoire) de la place pour chaque joueur.
    Le problème avec les formules trouvaient c'est que les nombres peuvent être repris deux fois.

    Merci d'avance!

    By Anonymous Anonyme, sur 5:16 PM  

  • Pour répondre aux deux derniers commentaires, il suffit d'associer un nombre aléatoire à chaque nombre que l'on désire tirer, puis de sortir les nombres en fonction de leur rang dans la colonne des nombres aléatoire :)

    By Blogger Hervé Thiriez, sur 8:50 AM  

  • Bonjour,

    Je fais une expérimentation qui nécessite de faire passer 10 sujets dans une pièce chaude et dans une pièce froide. JE voudrais déterminer aléatoirement qui commence par la pièce chaude et qui débute par la pièce froide. Comment faire?

    By Anonymous Marc, sur 9:00 AM  

  • Il suffit de faire un test tel que =si(alea()>0,5;1;0) avec 1 pour la pièce chaude et 0 pour la froide...

    By Blogger Hervé Thiriez, sur 8:43 PM  

  • BSR je cherche une formule excel simple permettant de réaliser un tirage aléatoire sans remise. Merci d'avance

    By Anonymous eric, sur 8:53 PM  

  • Peut-être pourriez-vous voir à ce sujet les articles que j'ai publiés le 29 août et le 2 septembre 2012..

    By Blogger Hervé Thiriez, sur 9:38 AM  

  • Ce commentaire a été supprimé par l'auteur.

    By Blogger David Bennetot, sur 8:41 PM  

Enregistrer un commentaire

<< Accueil