Klassenbildung Excel
meixner
ich habe tägliche Renditen für DAX Index seit 1960 und möchte dafür die Häufigkeiten in Klassen abbilden.
z.B. -14%, -10%, -6%, -2%, 2%, 6%, 10%, 14%.
Habe dafür auch ein Makro gefunden, der aber leider die Häufigkeit für diese Klassen nicht richtig anzeigt.
Weiss jmd. wo der Fehler liegen könnte!
Vielen dank.
dani
Dim arrVert As Variant, iJ As Integer
Dim Zeile As Long
With ActiveSheet
arrVert = Array(-2, -4, -6, -8, -10, -12, -14, 0, 2, 4, 6, 8, 10) 'Array für Verteilung - ggf. anpassen
'Häufigkeit für Werte in Spalte A ab Zeile 2 ermitteln
varArr = fncHaeufigkeit(rngWerte:=.Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)), _
arrVerteilung:=arrVert) 'Zellbereich ggf. anpassen
End With
'Ergebnis in Spalte B und C der Tabelle ab Zeile 2 eintragen
With ActiveSheet
Zeile = 2: iJ = 0 'Startzeile
If .Cells(Zeile, 2).End(xlUp) >= Zeile Then
.Range(.Cells(Zeile, 2), .Cells(Zeile, 2).End(xlUp).Offset(0, 1)).ClearContents
End If
For ii = LBound(varArr) To UBound(varArr)
If iJ Cells(Zeile, 2) = arrVert(iJ) 'Bereichgrenze
Else
Cells(Zeile, 2) = ">" & arrVert(iJ - 1) 'Ausreißer nach oben
End If
Cells(Zeile, 3) = varArr(ii) 'Häufigkeit
Zeile = Zeile + 1: iJ = iJ + 1
Next
End With
End Sub
Function fncHaeufigkeit(rngWerte As Range, arrVerteilung As Variant) As Variant
Dim arrHaeufig() As Long, varWert, ii As Integer
'rngWerte = Zellbereich für den die Häufigkeitsverteilung ermittelt werden soll
'arrVerteilung = Array/Matrix mit den Wertebereichen der Verteilung in aufsteigender Folge
ReDim arrHaeufig(LBound(arrVerteilung) To UBound(arrVerteilung) + 1)
For Each varWert In rngWerte.Cells
If IsNumeric(varWert) Then
For ii = LBound(arrVerteilung) To UBound(arrVerteilung)
If varWert.Value