KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Comment générer une valeur aléatoire en fonction d’une probabilité attribuée dans Excel ?

AuteurSun Date de modification

Lorsque vous travaillez avec Excel, il vous arrive parfois de devoir générer des valeurs aléatoires reflétant des probabilités sous-jacentes précises. Par exemple, imaginez que vous disposiez d’un tableau listant plusieurs résultats possibles accompagnés de leurs probabilités respectives, comme illustré dans la capture d’écran ci-dessous.
données exemples

Ce scénario est courant dans les simulations commerciales, la modélisation de projets et les usages pédagogiques, lorsque vous souhaitez que la sélection aléatoire reflète fidèlement la vraisemblance ou la fréquence indiquée par vos données.

Les besoins et cas d’usage typiques incluent :

  • Simulez des réponses à des enquêtes ou des choix clients, en tenant compte de la probabilité plus élevée de certaines réponses.
  • Générez des jeux de données de test ou des tirages aléatoires pour illustrer les concepts de probabilité.
  • Automatisez des processus de sélection où chaque option présente une probabilité connue.
  • Conception de jeux et analyse de risques, où les résultats doivent obéir à des lois de probabilité précises.

Découvrez ci-dessous plusieurs méthodes pour générer des valeurs aléatoires selon des probabilités attribuées dans Excel : des techniques classiques basées sur des formules, une automatisation avancée via VBA, ainsi que l’utilisation du complément intégré « Analyse des données ».


Générer une valeur aléatoire avec probabilité

Excel propose une solution accessible, basée sur des formules, pour générer des valeurs aléatoires selon des probabilités définies. Idéale pour les tâches rapides, cette méthode fonctionne entièrement dans les feuilles de calcul et ne requiert aucune configuration particulière.

Avant de commencer, assurez-vous que vos valeurs sont disposées dans une colonne (A2:A8) et que leurs probabilités correspondantes — exprimées sous forme de décimales comprises entre 0 et 1 — figurent dans la colonne adjacente (B2:B8). La somme de ces probabilités doit être égale à 1 pour garantir l’exactitude des résultats. Cette solution convient parfaitement aux tableaux contenant un nombre raisonnable de valeurs.

1.Dans une colonne adjacente (à partir de C2), saisissez la formule suivante pour calculer les probabilités cumulées :

=SUM($B$2:B2)

Ensuite, faites glisser cette formule vers le bas pour couvrir toutes vos valeurs. Cela crée des plages cumulées pour chaque valeur, facilitant l’association d’un nombre aléatoire à un résultat spécifique.
utiliser une formule pour calculer les pourcentages cumulés

2.Dans n’importe quelle cellule vide (par exemple D2), saisissez la formule ci-dessous pour obtenir une valeur aléatoire selon votre loi de probabilité :

=INDEX(A$2:A$8,COUNTIF(C$2:C$8,"<="&RAND())+1)

Appuyez sur Entrée pour afficher une valeur aléatoire. Chaque fois que vous appuyez sur F9 (pour recalculer) ou que les données de la feuille changent, un nouveau résultat s’affiche.
appliquer une formule pour générer une valeur sélectionnée aléatoirement en fonction des pourcentages cumulés

Conseils et précautions :

  • Les probabilités indiquées dans la colonne B doivent s’additionner exactement à 1 (ou à 100 % si vous utilisez des pourcentages ; toutefois, convertissez-les en décimales pour les formules) afin de garantir une répartition équitable.
  • Cette technique convient particulièrement aux listes courtes. Avec des dizaines, voire des centaines de valeurs, les performances peuvent se dégrader et la maintenance devient plus complexe.
  • Si vous devez répéter la sélection aléatoire pour plusieurs tirages (par exemple, générer un lot de résultats simulés), il vous suffit de copier la formule finale dans une plage située en dessous ou à côté.
  • Attention aux lignes vides et aux plages incompatibles, car elles peuvent provoquer des erreurs ou des résultats inattendus.

Rappel en cas d’erreur : Si vous obtenez une erreur #REF! ou #VALEUR!, assurez-vous que votre colonne de probabilités cumulées a la même longueur que votre liste de valeurs et que toutes les probabilités sont des nombres valides.

une capture d’écran de kutools for excel ia

Libérez la magie d’Excel avec Kutools IA

  • Exécution intelligente : effectuez des opérations sur les cellules, analysez des données et créez des graphiques, le tout à partir de commandes simples.
  • formules personnalisées : créez des formules sur mesure pour rationaliser vos flux de travail.
  • Programmation VBA : Écrivez et implémentez du code VBA en toute simplicité.
  • Interprétation de formules : Décryptez facilement les formules complexes.
  • Traduction de texte : Franchissez les barrières linguistiques directement depuis vos feuilles de calcul.
Améliorez vos capacités Excel grâce à des outils alimentés par l’intelligence artificielle.Téléchargez dès maintenantet découvrez une efficacité inégalée !

VBA : Générer des valeurs aléatoires avec des probabilités attribuées

Pour les utilisateurs qui recherchent davantage d’automatisation ou doivent générer un grand volume de valeurs aléatoires — par exemple, des milliers d’échantillons —, Excel VBA constitue une solution à la fois pratique, plus rapide et plus souple que les formules de feuille de calcul. Elle s’avère particulièrement efficace pour traiter de grands ensembles de données ou produire en masse des résultats aléatoires destinés à des simulations.

1.Accédez à Outils de développement>Visual Basic, puis dans la fenêtre VBA, cliquez sur Insertion>Module, et collez le code suivant dans le module :

Sub GenerateRandomWithProbability()
    Dim rngValues As Range
    Dim rngProbs As Range
    Dim n As Long
    Dim i As Long
    Dim cumProbs() As Double
    Dim valList() As Variant
    Dim randNum As Double
    Dim resultRange As Range
    Dim idx As Long
    
    ' On Error, ignore
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    ' Select values
    Set rngValues = Application.InputBox("Select values range", xTitleId, Type:=8)
    
    ' Select probabilities
    Set rngProbs = Application.InputBox("Select probabilities range", xTitleId, Type:=8)
    
    ' Number of random values to generate
    n = Application.InputBox("Number of random values to generate", xTitleId, "10", Type:=1)
    
    ' Where to output
    Set resultRange = Application.InputBox("Select output start cell", xTitleId, Type:=8)
    
    If rngValues.Rows.Count <> rngProbs.Rows.Count Then
        MsgBox "Values and probabilities range must be the same size.", vbExclamation
        Exit Sub
    End If
    
    ReDim cumProbs(1 To rngValues.Count)
    ReDim valList(1 To rngValues.Count)
    
    ' Calculate cumulative probabilities
    cumProbs(1) = rngProbs.Cells(1, 1).Value
    valList(1) = rngValues.Cells(1, 1).Value
    
    For i = 2 To rngValues.Count
        cumProbs(i) = cumProbs(i - 1) + rngProbs.Cells(i, 1).Value
        valList(i) = rngValues.Cells(i, 1).Value
    Next i
    
    ' Generate random results
    For i = 1 To n
        randNum = Rnd
        For idx = 1 To UBound(cumProbs)
            If randNum <= cumProbs(idx) Then
                resultRange.Cells(i, 1).Value = valList(idx)
                Exit For
            End If
        Next idx
    Next i
End Sub

2. Dans la fenêtre VBA, cliquez sur le Bouton Exécuter bouton d’exécution pour lancer le code. Vous serez successivement invité à sélectionner votre plage de valeurs, votre plage de probabilités, le nombre de valeurs aléatoires à générer, ainsi que la cellule de départ de la plage de sortie. La macro remplira en un clin d’œil les cellules ciblées avec des valeurs aléatoires conformes à vos probabilités attribuées.

  • Vous pouvez répéter ce processus avec des jeux de données plus volumineux, et la colonne de sortie peut être personnalisée dans n’importe quelle feuille.
  • Si la somme de votre plage de probabilités ne s’approche pas suffisamment de 1, le code risque de fausser la distribution ; vérifiez toujours vos hypothèses.
  • Cette solution est idéale pour l’échantillonnage automatisé, la simulation et la génération reproductible de lots.

Conseils : Gardez vos valeurs et probabilités contiguës et clairement alignées. Enregistrez votre travail avant d’exécuter des macros, car les actions VBA ne peuvent pas être annulées à l’aide de la commande Annuler.


Articles associés :

Meilleurs outils de productivité Office

🤖Kutools IA Aide: Révolutionnez Analyse des données grâce à :Exécution intelligente   |  Générez du code|  Créez formules personnalisées  |  Analysez des données et générez des graphiques|  Appelez Fonctions améliorées
Fonctionnalités populaires:Rechercher, mettre en surbrillance ou Marquer les doublons   |  Supprimer les lignes vides   |  Combinez les colonnes ou cellules sans perdre de données   |   Arrondi sans utiliser de formule...
Super RECHERCHEV:RechercheValeurs avec critères multiples  |  RechercheValeurs avec valeurs multiples  |   RechercheValeurs dans plusieurs feuilles   |   Correspondance floue....
Liste déroulante avancée:Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple....
Gestionnaire de colonnes:Ajouter un nombre précis de colonnes|Déplacer des colonnes|Basculer la visibilité des colonnes masquées|Comparer des plages et des colonnes...
Fonctionnalités vedettes:Mise au point de la grille   |  Vue de conception   |Barre de formule améliorée   | Gestionnaire de classeurs et de feuilles   |  Bibliothèque de ressources(Texte automatique)|  Sélecteur de date   |  Consolider les feuilles de calcul  |  Chiffrer/Déchiffrer les cellules   | Envoyer des e-mails par liste   |  Super Filtre   |   Filtre spécial(Filtrer les cellules avec une police en gras/italique/barré...) ...
… et bien plus encore… et plus encore:(,)Supprimer des caractères spécifiques, ...)|   50+Typesde graphiques(, ...)|   40+ Formules pratiques(Calculer l'âge en fonction de la date de naissance, ...)|   19 Outils d’insertion(,Insérer une image depuis un chemin , ...)|   de conversion (Convertir en mots,Conversion de devises, ...)|Fusionner et scinder   (Fusion avancée des lignes,Diviser les cellules , ...)|, ...)   |
Utilisez Kutools dans la langue de votre choix – disponible en anglais, espagnol, allemand, français, chinois et 40+ autres langues !

Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre productivité et Gagner du temps.Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte une interface à onglets à Office et rend votre travail bien plus facile

  • Activez l’édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50 % et vous fait économiser des centaines de clics de souris chaque jour !

Tous les compléments Kutools. Un seul installateur

Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.

ExcelWordOutlookTabsPowerPoint
  • Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
  • Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
  • Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
  • Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
  • Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels