Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 11:16:26
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - Daten nach Häufigkeiten und Klassen

VBA - Daten nach Häufigkeiten und Klassen
Jan
Liebes Forum,
ich muss eine Montecarlo Simulation machen und hab daher ne ganze Masse Zufallszahlen mit denen ich dann weiterrechne...
Nun will ich gar nicht diese Ergebnisse mir anzeigen lassen, sondern gleich in Klassen einteilen lassen und daraus dann ein Histogramm zaubern (um Speicherplatz zu sparen und die Berechnung schneller zu machen).
Kann mir jemand helfen, wie der entsprechende "Häufigkeit(Daten;Klassen)" - Befehl in VBA wäre?
Vielen, vielen Dank für Eure Antworten und Grüße,
Jan
Anzeige
AW: VBA - Daten nach Häufigkeiten und Klassen
ChrisL
Hi Jan
Falls ich dich richtig verstehe...
Application.WorksheetFunction.CountIf(...)
Funktioniert gleich wie die Tabellenfunktion ZÄHLENWENN.
Gruss
Chris
AW: VBA - Daten nach Häufigkeiten und Klassen
Jan
Hi Chris,
mist, da hab ich mich aber auch dumm ausgedrückt. Ich will mir ja eigentlich nicht die Daten anzeigen lassen, bei dem Befehl muss man ja was mit "range" machen... Gibt es denn keine Möglichkeit, sich die Daten zu klassifizieren zu lassen ohne die Daten auszuspucken?
(Ich hab 10.000 Zahlen, die will ich gar nicht sehen...)
Trotzdem vielen Dank für die schnelle Antwort,
Jan
Anzeige
AW: VBA - Daten nach Häufigkeiten und Klassen
ChrisL
Hi Jan
In welcher Form liegen denn die Daten vor?
Vielleicht kannst du mal ein konkretes Beispiel hochladen (Datensatz) und das gewünschte Resultat ebenfalls konkret darstellen.
Gruss
Chris
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

Anzeige
AW: VBA - Daten nach Häufigkeiten und Klassen
ChrisL
Hi Jan
Um ehrlich zu sein übersteigt die Berechnung meine mathematischen Fähigkeiten und vielleicht habe ich mich mit dem Beitrag leicht übernommen.
Erst jetzt ist mir auch klar geworden, dass eine Monte Carlo Simulation nicht direkt mit Formel 1 zu tun haben muss und dass die Daten per Zufallsprinzip erzeugt werden. :-)
Vielleicht kann ich aber trotzdem helfen... als Ansatz

Sub test()
Dim i As Integer
For i = 1 To 1000
Select Case Rnd * 2
Case Is < 1: Range("A1") = Range("A1") + 1
Case Is > 1: Range("A2") = Range("A2") + 1
End Select
Next i
End Sub

Das Ergebnis also als "Case" definieren und die Bereiche (im Beispiel 0-1 und 1-2) einzeln auswerten. Im Monte Carlo Makro ist mir aber nicht klar, welche Variable eigentlich das Ergebnis darstellt.
Hoffentlich hilft es.
Gruss
Chris
Anzeige
AW: VBA - Daten nach Häufigkeiten und Klassen
28.04.2004 16:42:34
Jan
Hi Chris,
vielen Dank, es funktioniert!!! Hab einfach Deinen Code ab Select... in meine Routine integriert und es funzt fabelhaft.
Vielen Dank und Grüße,
Jan
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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