Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Klassen bilden

Forumthread: Klassen bilden

Klassen bilden
Anni
Guten Abend miteinander,
ich möchte Auswertungen per Makro machen. Dafür suche ich eine Funktion, die automatisch eine Excel-Spalte in Klassen einteilt. Also wie bei der Funktion HÄUFIGKEIT, nur dass die Klassen zuvor automatisch erstellt werden.
Kann mir jemand von euch helfen?
LG, Anni
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Klassen bilden
19.09.2011 09:33:25
fcs
Hallo Anni,
im Prinzip kann man es mit den nachfolgenden Makros machen.
Die Frage bleibt: Kannst du die Bereiche für die Klassen fest vorgeben?
Wenn nein, dann müssen noch weitere Vorgaben gemacht werden:
- Ausreißer nach oben? wieviel Prozent der Werte oder absoluter Wert.
- Ausreißer nach unten? wieviel Prozent oder absoluter Wert
- Wie viele Klassen sollen es sein?
Dann wird es erheblich komplizierter.
Gruß
Franz

Sub TestfncHaeufigkeit()
Dim varArr As Variant, ii As Integer 'Ergebnis-Array mit Häufigkeiten
Dim arrVert As Variant, iJ As Integer
Dim Zeile As Long
With ActiveSheet
arrVert = Array(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 " & 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 

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