Hoe genereert u in Excel een willekeurige waarde op basis van vooraf toegewezen kansen?
Bij het werken met Excel moet u af en toe willekeurige waarden genereren die specifieke onderliggende kansen weerspiegelen. Stel bijvoorbeeld dat u een tabel hebt met verschillende mogelijke uitkomsten en hun bijbehorende kansen, zoals in de afbeelding hieronder.
Dit scenario komt veelvuldig voor bij zakelijke simulaties, projectmodellering en educatieve toepassingen, waarbij u wilt dat de willekeurige selectie nauwkeurig de waarschijnlijkheid of frequentie weergeeft zoals bepaald door uw gegevens.
Typische behoeften en toepassingen zijn:
- Het simuleren van enquête-antwoorden of klantkeuzes, waarbij bepaalde opties een hogere kans hebben om geselecteerd te worden.
- Het genereren van testdatasets of willekeurige trekkingen voor het onderwijzen van kansbegrippen.
- Het automatiseren van selectieprocessen waarbij elke optie een bekende kans heeft.
- Spelontwerp en risicoanalyse waarbij de resultaten moeten voldoen aan specifieke kansverdelingen.
Hieronder vindt u diverse methoden om willekeurige waarden te genereren op basis van toegewezen kansen in Excel: standaard formule-gebaseerde technieken, geavanceerde VBA-automatisering en het gebruik van de ingebouwde Data-analyse Toolpak.
➤ VBA: Genereer willekeurige waarden met toegewezen kansen
Genereer een willekeurige waarde met kans
Excel biedt een toegankelijke, op formules gebaseerde oplossing voor het genereren van willekeurige waarden volgens opgegeven kansen. Deze methode is geschikt voor snelle taken, werkt volledig binnen werkbladen en vereist geen speciale instellingen.
Zorg ervoor dat uw waarden in één kolom staan (A2:A8) en de bijbehorende kansen – uitgedrukt als decimalen tussen 0 en 1 – direct ernaast in kolom B (B2:B8). Voor nauwkeurige resultaten moeten de kansen optellen tot 1. Deze oplossing is perfect voor tabellen met een beperkt aantal waarden.
1.Voer in een aangrenzende kolom (beginnend bij C2) de volgende formule in om cumulatieve kansen te berekenen:
=SUM($B$2:B2) Sleep deze formule vervolgens omlaag zodat deze alle waarden omvat. Zo ontstaan cumulatieve bereiken voor elke waarde, die helpen bij het koppelen van een willekeurig getal aan een specifieke uitkomst.
2.Voer in een lege cel (bijvoorbeeld D2) de onderstaande formule in om een willekeurige waarde terug te geven op basis van uw kansverdeling:
=INDEX(A$2:A$8,COUNTIF(C$2:C$8,"<="&RAND())+1) Druk op Enter om een willekeurige waarde weer te geven. Telkens wanneer u op F9 drukt (om opnieuw te berekenen) of wanneer werkbladgegevens veranderen, verschijnt er een nieuw resultaat.
Tips & voorzorgsmaatregelen:
- De kansen in kolom B moeten exact optellen tot 1 (of 100 % als u percentages gebruikt, maar converteer deze dan wel naar decimalen voor formules) om een eerlijke verdeling te garanderen.
- Deze techniek is ideaal voor korte lijsten. Bij tientallen of honderden waarden kan de prestatie echter vertragen en het onderhoud lastig worden.
- Als u de willekeurige selectie meerdere keren moet herhalen (bijvoorbeeld voor het genereren van een batch gesimuleerde resultaten), kopieert u eenvoudigweg de eindformule naar een bereik eronder of ernaast.
- Wees voorzichtig met lege rijen en niet-overeenkomende bereiken, want die kunnen fouten of onverwachte resultaten veroorzaken.
Foutmelding: Als u een #REF!- of #WAARDE!-fout krijgt, controleer dan of uw kolom met cumulatieve kansen even lang is als uw lijst met waarden en of alle kansen geldige getallen zijn.

Ontgrendel de magie van Excel met KUTOOLS AI
- Slimme uitvoering: Voer celbewerkingen uit, analyseer gegevens en maak grafieken — allemaal met eenvoudige opdrachten.
- aangepaste formules: Genereer op maat gemaakte formules om uw workflows te stroomlijnen.
- VBA-programmeren: Schrijf en implementeer VBA-code moeiteloos.
- Formule-uitleg: Begrijp complexe formules moeiteloos.
- Tekstvertaling: Doorbreek taalbarrières in uw spreadsheets.
VBA: Genereer willekeurige waarden met toegewezen kansen
Voor gebruikers die meer automatisering nodig hebben of duizenden willekeurige waarden tegelijk willen genereren – bijvoorbeeld voor steekproeven – biedt Excel VBA een snelle, flexibele en praktische oplossing die werkbladformules ver overtreft. Deze methode is bijzonder effectief bij het verwerken van grote datasets of het genereren van bulkresultaten voor simulaties.
1.Ga naar Ontwikkelaarshulpmiddelen>Visual Basic, klik vervolgens in het VBA-venster op Invoegen>Moduleen plak de volgende code in de 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. Klik in het VBA-venster op de
uitvoerknop om de code uit te voeren. U wordt achtereenvolgens gevraagd uw bereik met waarden, uw bereik met kansen, het aantal te genereren willekeurige waarden en de startcel voor de uitvoer te selecteren. De macro vult de doelcellen razendsnel met willekeurige waarden op basis van uw toegewezen kansen.
- U kunt dit proces herhalen voor grotere datasets, en de uitvoerkolom is aanpasbaar op elk werkblad.
- Als uw kansbereik niet zeer dicht bij 1 ligt, kan de code de verdeling vervormen; valideer daarom altijd uw aannames.
- Deze oplossing is ideaal voor geautomatiseerde steekproeven, simulaties en reproduceerbare batchgeneratie.
Tips: Houd uw waarden en kansen aaneengesloten en duidelijk uitgelijnd. Sla uw werk altijd op voordat u macro’s uitvoert, want VBA-acties kunnen niet ongedaan worden gemaakt met ‘Ongedaan maken’.
Gerelateerde artikelen:
- Hoe genereert u in Excel een willekeurig getal zonder duplicaten?
- Hoe voorkomt of stopt u dat willekeurige getallen in Excel veranderen?
- Hoe genereert u willekeurig ‘Ja’ of ‘Nee’ in Excel?
Beste Office-productiviteitshulpmiddelen
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie zoals nooit tevoren.Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en Tijd besparen.Klik hier om de functie te krijgen die u het meest nodig heeft...
Office Tab brengt een tabbladinterface naar Office en maakt uw werk veel eenvoudiger
- Schakel tabbladbewerking en -lezen in voor Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten aan in nieuwe tabbladen binnen hetzelfde venster, in plaats van in afzonderlijke vensters.
- Verhoogt uw productiviteit met 50 % en bespaart u dagelijks honderden muisklikken!
Alle Kutools-add-ins in één installatieprogramma.
Kutools for Office bundelt add-ins voor Excel, Word, Outlook en PowerPoint, plus Office Tab Pro—ideaal voor teams die met meerdere Office-apps werken.
- Alles-in-één suite— add-ins voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro
- Één installatieprogramma, één licentie— binnen enkele minuten klaar (MSI-geschikt)
- Werkt beter samen— gestroomlijnde productiviteit in alle Office-apps
- 30 dagen volledig functionele proefversie— geen registratie, geen creditcard
- Beste prijs-kwaliteitverhouding— bespaar ten opzichte van het afzonderlijk kopen van add-ins