VBA: Durchschnitt der x-größten Werte eines Arrays
25.11.2015 12:32:03
Martin
gibt es eine einfache Möglichkeit den Durchschnitt der x-größten Werte eines Arrays zu ermitteln als VBA-Lösung? Als Formel geht es recht einfach:
http://chandoo.org/wp/2010/06/04/average-of-top-5-values
Ich habe eine Function mit einer Schleife geschrieben, aber vielleicht denke ich (mal wieder) zu umständlich:
Sub Test()
Dim arrTest As Variant
arrTest = Array(15.52, 12.44, 19.68, 88.17, 18.48, 17.44, 19.58, 13.22, 55.44)
Debug.Print AverageTopX(arrTest, 5) 'Top 5
End Sub
Function AverageTopX(varArray As Variant, intBiggest As Integer) As Double
Dim i As Integer
For i = 1 To intBiggest
AverageTopX = AverageTopX + Application.Large(varArray, i)
Next i
AverageTopX = AverageTopX / intBiggest
End Function
Ich will sehr große Arrays mit mehreren 10.000 Werten im Top-1000er Bereich auswerten, da erscheint mir meine Function etwas umständlich.
Viele Grüße
Martin