AW: VBA - Daten nach Häufigkeiten und Klassen
Jan
Hi Chris,
ja, klar, kein Problem, unten ist der Code zu meinen ZVs und der Formel, die ich benutze.
Da ich 10.000 Iterations brauche (damit das Ergebnis vernünftig wird) ist die Datenmenge sehr groß, daher will ich die mir nicht anzeigen lassen. Ich will nur die Häufigkeit wissen, wie viele Ergebnisse in bestimmten Bereichen vorkommen (also z.B. 500 Stück von -1 bis 0 und 200 Stück von 0 bis +1 etc., damit ich dann eine Verteilung darstellen kann.
Sub MonteCarlo()
Dim Iteration As Long, i As Long
Dim Q As String, Y As Double, K As Double
Iteration = Range("C3").Value
ReDim TP(Iteration) As Double
K = Range("C7").Value
Y = Rnd
For i = 1 To Iteration: Cells(12, 3) = i
Q = Application.NormSInv(Rnd)
Cells(9, 3) = Q
TP(i) = Sqr(K) * Y + Sqr(1 - K) * Q
Cells(6, 3) = Y
Cells(11, 3) = TP(i)
Next i
End Sub
--------------------------------------------------------------------------------------
Im Internet habe ich da folgendes Programm gefunden, geht in die richtige Richtung, ich kann es aber nicht auf meine Zwecke umprogrammieren (den Häufigkeiten feste Bereiche zum Beispiel zuordnen...)
Sub Hist(n As Variant, M As Long, Start As Double, Right As Double, arr() As Double)
Dim i As Long, j As Long, Find As Long
Dim Length As Double
ReDim breaks(M) As Single
ReDim freq(M) As Single
For i = 1 To M
freq(i) = 0
Next i
Length = (Right - Start) / M
For i = 1 To M
breaks(i) = Start + Length * i
Next i
For i = 1 To n
If (arr(i) <= breaks(1)) Then freq(1) = freq(1) + 1
If (arr(i) >= breaks(M - 1)) Then freq(M) = freq(M) + 1
For j = 2 To M - 1
If (arr(i) > breaks(j - 1) And arr(i) <= breaks(j)) Then freq(j) = freq(j) + 1
Next j
Next i
For i = 1 To M
Cells(i + 1, 9) = breaks(i)
Cells(i + 1, 10) = freq(i)
Next i
End Sub