Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1228to1232
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige