Johan Eriksson, controller på ett byggföretag i Stockholm, behövde uppskatta risken för budgetöverskridning på ett 12 MSEK-projekt. Med en Monte Carlo-simulering i Excel körde han 10 000 scenarion och identifierade att det fanns 30 % risk för överskridning med mer än 1 MSEK. Beslutsunderlaget ändrade projektplanen — och sparade bolaget pengar.

Monte Carlo används av 70 % av Fortune 500-företag för finansiell planering. Metoden låter dig ersätta ett enda osäkert tal med en hel sannolikhetsfördelning — och Excel har alla verktyg som behövs, utan ett enda tillägg.

Den här guiden visar hur du bygger en fullständig simulering från grunden: antagandetabell, iterationer via Datatabell, histogram och konfidensintervall.

10 000
iterationer — standard för tillförlitligt resultat
RAND()
Excels inbyggda slumptalsfunktion
95 %
typiskt konfidensintervall i riskanalys
Monte Carlo-mall klar att använda Hämta en färdig Excel-fil med antagandetabell, automatisk Datatabell för 1 000 iterationer, histogram och percentilberäkning.
Hämta mallen →

Vad är Monte Carlo-simulering och när används den?

Grundidén är enkel: istället för att mata in ett enda värde för en osäker variabel — säg materialkostnad — definierar du en sannolikhetsfördelning (min, max, mest sannolikt). Sedan drar Excel tusentals slumpmässiga värden från den fördelningen och beräknar utfallet varje gång. Resultatet är inte ett tal utan en distribution av möjliga utfall.

Metoden används brett för projektkostnadsuppskattning, investeringsanalys, riskbedömning och supply chain-optimering. Den passar bäst när du har flera osäkra variabler som samverkar och när ett enda "mest troligt"-scenario inte ger tillräcklig information för beslutet.

Monte Carlo passar inte för deterministiska processer utan verklig variation, eller när historiska data för att definiera fördelningarna saknas helt.

Steg 1–2: Bygg antagandetabellen

Börja med att identifiera vilka variabler i din modell som är genuint osäkra. Lägg dessa i en strukturerad tabell med min, max och mest sannolikt värde per variabel.

  1. Identifiera osäkra variabler

    Exempel från ett byggprojekt: Materialkostnad (min 400 000 kr, max 600 000 kr, mest sannolikt 490 000 kr) och Arbetstid (min 800 h, max 1 200 h, mest sannolikt 950 h). Håll listan kortfattad — 3–8 variabler räcker för de flesta modeller.

  2. Välj sannolikhetsfördelning per variabel

    Likformig (alla värden lika sannolika inom intervallet): enklast att implementera. Triangulär (tyngd kring "mest sannolikt"): mer realistisk för projektkostnader. Normal: lämplig när processen styrs av många oberoende faktorer.

För likformig fördelning i Excel:

=RAND()*(B3-A3)+A3 ' Där A3 = min, B3 = max ' Ger ett slumptal jämnt fördelat i intervallet

För normalfördelning:

=NORMINV(RAND();C3;D3) ' C3 = medelvärde, D3 = standardavvikelse

Steg 3–4: Kör 1 000 iterationer med Datatabell

Det smarta med Excels inbyggda Datatabell är att den kör om hela beräkningskedjan för varje rad — utan VBA. Varje rad blir en ny simulering med nya slumptal.

  1. Skapa en samlingscell för utfallet

    Bygg en formel som summerar dina slumpvariabler till ett totalt utfall, exempelvis: totalkostnad = materialkostnad + arbetstid * timkostnad + overheadandel. Se till att formeln refererar till cellerna i din antagandetabell.

  2. Sätt upp Datatabellen

    Skriv siffrorna 1–1 000 i kolumn A (rad 2–1001). I cell B1 skriver du en referens till din utfallscell. Markera A1:B1001. Välj Data → Konsekvensanalys → Datatabell. Lämna Radindata tom — klicka OK. Excel räknar om slumptalen 1 000 gånger och fyller kolumn B med resultaten.

' Tips: stäng av automatisk omräkning under körningen ' Formler → Beräkningsalternativ → Manuell ' Tryck F9 för att köra om simuleringen

Steg 5: Analysera resultatet med histogram och konfidensintervall

Med 1 000 värden i kolumn B kan du nu beräkna statistik och visualisera fördelningen.

Percentiler och konfidensintervall

Använd PERCENTIL-funktionen för att beräkna var utfallen koncentreras:

=PERCENTIL(B2:B1001;0,05) ' P5 — undre gräns 90% KI =PERCENTIL(B2:B1001;0,50) ' P50 — medianen =PERCENTIL(B2:B1001;0,95) ' P95 — övre gräns 90% KI

Tolkning: "Med 90 % sannolikhet hamnar totalkostnaden mellan P5 och P95." Det ger beslutsfattare ett konkret intervall att planera kring.

Exempelresultat — projektbudget 5 MSEK

PercentilBeloppTolkning
P54 250 000 krOptimistiskt scenario (5 % chans att hamna lägre)
P505 120 000 krMediankostnaden — lika sannolikt att hamna högre
P956 480 000 krPessimistiskt scenario (5 % chans att överskrida)
Genomsnitt5 180 000 krFörväntat värde över alla simuleringar

Histogram med FREKVENS()

Definiera en serie intervallgränser (t.ex. 4,0 / 4,5 / 5,0 / 5,5 / 6,0 / 6,5 MSEK). Använd =FREKVENS(B2:B1001;E2:E8) som en matrisformel (Ctrl+Skift+Enter) för att räkna antalet utfall per intervall. Bygg sedan ett stapeldiagram på de värdena.

Vanliga fel och hur du undviker dem

Vanliga frågor

Behöver jag VBA-makron för Monte Carlo i Excel?

Nej. Excels inbyggda Datatabell (Data → Konsekvensanalys) ger dig hundratals eller tusentals iterationer utan en enda rad VBA-kod. VBA kan vara användbart om du vill automatisera upprepade körningar eller exportera resultat, men det är inte nödvändigt för en grundläggande simulering.

Hur många iterationer ger tillräcklig precision?

För de flesta praktiska syften räcker 1 000 iterationer för att ge stabila medianvärden. Extrema percentiler (P1, P99) kräver minst 5 000–10 000 iterationer för att vara tillförlitliga. Tumregel: kör 1 000, kontrollera om P95 varierar mer än 2–3 % vid ny körning. Gör det det, öka till 10 000.

Kan jag använda Monte Carlo för aktieportföljer?

Ja — Monte Carlo är en standardmetod för att simulera portföljavkastning. Du modellerar varje tillgångs dagliga avkastning som normalfördelad (med historisk volatilitet) och kör tusentals möjliga framtida banor. Resultatet visar fördelningen av möjliga portföljvärden vid en given tidshorisont. Observera att historisk volatilitet inte garanterar framtida resultat.

Hur skiljer sig RAND() från SLUMP() i äldre Excel-versioner?

RAND() och SLUMP() är exakt samma funktion — SLUMP() är bara det svenska namnet i äldre lokaliserade Excel-versioner (pre-2013). I moderna Excel 365/2019+ fungerar båda synonymt och returnerar ett likformigt fördelat slumptal mellan 0 och 1. RAND() rekommenderas för kompatibilitet med engelska formler och dokumentation.

Spara tid — använd en färdig mall Excel-mallen inkluderar förkonfigurerad antagandetabell, Datatabell för 1 000 iterationer, automatiskt histogram och percentilrapport.
Ladda ner →
Ansvarsfriskrivning: Denna artikel är av pedagogisk karaktär. Monte Carlo-simuleringar är uppskattningsverktyg — verkliga utfall kan avvika avsevärt. Konsultera en auktoriserad revisor eller riskanalytiker för affärskritiska beslut.