Problem gelöst, vielen Dank!
18.11.2010 10:15:45
Martin
Hallo Boris,
vielen Dank für deine Antwort. Ich kannte die Modalwert-Funktion und ihre Voraussetzungen zur Ermittlung des häufigsten Wertes bisher nicht richtig. Allerdings habe ich über ein Makro die Sonderfälle ausschließen können und mein Problem selbst gelöst. Da es (in meinem Fall) maximal drei verschiedene Werte gibt, konnte ich mein Häufigkeitsfunktion über Modalwert so lösen:
Sub Häufigkeit()
Dim StreckeArr As Variant
Dim i As Integer, j As Integer
Application.Calculation = xlCalculationManual
For i = 1 To ActiveSheet.UsedRange.Rows.Count
ReDim StreckeArr(0 To 0)
For j = 1 To 6
If Not Cells(i, 6 + 3 * j) = Empty Then
If Not Application.CountA(StreckeArr) = 0 Then ReDim Preserve StreckeArr(0 To _
UBound(StreckeArr) + 1)
StreckeArr(UBound(StreckeArr)) = CInt(Cells(i, 6 + 3 * j).Value)
End If
Next j
If UBound(StreckeArr) = 0 Then
Cells(i, 26) = StreckeArr(0) 'Modalwert geht nur bei mind. 2 Werten
ElseIf UBound(StreckeArr) = 1 Then 'Anzahl unterschiedlicher Werte darf nicht Anzahl _
der Argumende entsprechen
If StreckeArr(0) StreckeArr(1) Then
Cells(i, 26) = StreckeArr(1)
Else
Cells(i, 26) = Application.WorksheetFunction.Mode(StreckeArr)
End If
ElseIf UBound(StreckeArr) = 2 Then 'Anzahl unterschiedlicher Werte darf nicht Anzahl _
der Argumende entsprechen
If StreckeArr(0) StreckeArr(1) And StreckeArr(0) StreckeArr(2) And StreckeArr( _
1) StreckeArr(2) Then
Cells(i, 26) = StreckeArr(2)
Else
Cells(i, 26) = Application.WorksheetFunction.Mode(StreckeArr)
End If
Else
Cells(i, 26) = Application.WorksheetFunction.Mode(StreckeArr)
End If
Next i
Application.Calculation = xlCalculationAutomatic
End Sub
Trotzdem vielen Dank für deine Unterstützung!
Viele Grüße
Martin