Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Monte Carlo Simulation

Forumthread: Monte Carlo Simulation

Monte Carlo Simulation
30.01.2018 19:32:17
Nico
Moin zusammen,
ich probiere mich derzeit an einer Monte Carlo Simulation für Immobilienprojektentwicklungen.
Das funktioniert soweit auch ganz gut, allerdings bin ich auf ein kleines Problem gestoßen, welches ich nicht ganz verstehe.
Die Simulation der Werte Baukosten, Verkaufserlös und Bauphase funktioniert einwandfrei. Lediglich bei den Finanzierungskosten gibt es Probleme. Hier zeigt er mir dann die Fehlermeldung, dass die Average-Eigenschaft des WorksheetFunction-Objektes nicht zugeordnet werden kann. Ich habe eigentlich alles geprüft, komme aber einfach nicht weiter.
Vielen Dank schon einmal!
Hier der betroffene Teil, den ich aktuell verwende.
Sub MonteCarlo()
Application.ScreenUpdating = False
'Variablen definieren
Dim Baukosten() As Variant
Dim Verkaufserlös() As Variant
Dim Bauphase() As Variant
Dim Finanzierungskosten() As Variant
Dim Anzahl As Double
Dim i As Double
'Anzahl der Wiederholungen einlesen
Anzahl = Worksheets("Risikoanalyse").Range("C76")
'Arraygröße definieren
ReDim Baukosten(1 To Anzahl) As Variant
ReDim Verkaufserlös(1 To Anzahl) As Variant
ReDim Bauphase(1 To Anzahl) As Variant
ReDim Finanzierungskosten(1 To Anzahl) As Variant
'Simulation der Zufallswerte
For i = 1 To Anzahl
Baukosten(i) = (Worksheets("Stammdaten").Range("J41") - Worksheets("Stammdaten").Range("J34") + ((WorksheetFunction.NormInv(Rnd(), Worksheets("Stammdaten").Range("I34"), Worksheets("Risikoanalyse").Range("E115"))) * Worksheets("Stammdaten").Range("J19"))) * (1 + Worksheets("Stammdaten").Range("I43"))
Verkaufserlös(i) = (WorksheetFunction.NormInv(Rnd(), Worksheets("Stammdaten").Range("E42"), Worksheets("Risikoanalyse").Range("J115")) * Worksheets("Stammdaten").Range("E41")) + WorksheetFunction.Sum(Worksheets("Stammdaten").Range("E43:E44"))
Bauphase(i) = WorksheetFunction.NormInv(Rnd(), Worksheets("Stammdaten").Range("I59"), Worksheets("Risikoanalyse").Range("E138"))
Finanzierungskosten(i) = (Worksheets("Stammdaten").Range("E37") * (1 + WorksheetFunction.NormInv(Rnd(), Worksheets("Stammdaten").Range("J51"), Worksheets("Risikoanalyse").Range("J138"))) ^ (Worksheets("Stammdaten").Range("I57") + Bauphase(i))) - Worksheets("Stammdaten").Range("E37")
Next
'Werte aus Array berechnen
Range("E113") = WorksheetFunction.Average(Baukosten)
Range("E114") = WorksheetFunction.Median(Baukosten)
Range("E117") = WorksheetFunction.Min(Baukosten)
Range("E118") = WorksheetFunction.Max(Baukosten)
Range("J113") = WorksheetFunction.Average(Verkaufserlös)
Range("J114") = WorksheetFunction.Median(Verkaufserlös)
Range("J117") = WorksheetFunction.Max(Verkaufserlös)
Range("J118") = WorksheetFunction.Min(Verkaufserlös)
Range("E136") = WorksheetFunction.Average(Bauphase)
Range("E137") = WorksheetFunction.Median(Bauphase)
Range("E140") = WorksheetFunction.Min(Bauphase)
Range("E141") = WorksheetFunction.Max(Bauphase)
Range("J136") = WorksheetFunction.Average(Finanzierungskosten)
Range("J137") = WorksheetFunction.Median(Finanzierungskosten)
Range("J140") = WorksheetFunction.Min(Finanzierungskosten)
Range("J141") = WorksheetFunction.Max(Finanzierungskosten))

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Monte Carlo Simulation
30.01.2018 19:41:08
Rudi
Hallo,
Average erfordert eine Werteliste oder einen Bereich. Mit einem Arry geht das nicht.
Bilde hinter Finanzierungskosten(i)=... direkt eine Summe (varSum = varSum + Finanzierungskosten(i))
und teile die durch Anzahl.
Range("J136") = varSum / Anzahl
Gruß
Rudi
AW: Monte Carlo Simulation
30.01.2018 20:55:36
Nico
Danke für deine Antwort. Werd ich sofort ausprobieren.
Aber bei den anderen 3 Arrays funktioniert der Average ja wunderbar?
Bei den Finanzierungskosten funktioniert es auch, sobald ich für die einzelnen „Ranges“ die tatsächlichen Werte reinschreibe.
Wenn ich eine Überwachung für jede Range einfüge, sehe ich auch, dass die Werte richtig eingelesen werden.
ich verstehe den Zudsmmenhang hier absolut nicht.
LG, Nico
Anzeige
AW: Monte Carlo Simulation
30.01.2018 21:01:07
Nico
Danke für deine Antwort. Werd ich sofort ausprobieren.
Aber bei den anderen 3 Arrays funktioniert der Average ja wunderbar?
Bei den Finanzierungskosten funktioniert es auch, sobald ich für die einzelnen „Ranges“ die tatsächlichen Werte reinschreibe.
Wenn ich eine Überwachung für jede Range einfüge, sehe ich auch, dass die Werte richtig eingelesen werden.
ich verstehe den Zudsmmenhang hier absolut nicht.
LG, Nico
Anzeige
evtl. Fehlerwert im Array? owT
30.01.2018 21:21:22
Rudi
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige