[Excel, VBA] Kleinste - Größte
Gepostet am: Jun 24, 2012 1:23:0 PM
siehe auch: hier
Bis daher sind das die Standardfunktionen, die eigentlich eh jeder kennt, der mit Excel schon gearbeitet hat.
Minimum/Maximum ohne Null
In obigen Beispiel mit dem Energieverbrauch sieht man schon ein Problem: Sofern Nullen in der Ausgangsliste vorhanden sind, und keine negativen Werte vorhanden sind, ist 0 immer der Minimalwert. Das kann man Excel natürlich auch, wenngleich die Formel dann etwas komplizierter wird.
Die Funktion Min_ohNull ist die VBA-Umsetzung des Problems:
Min_ohNull
Public Function Min_ohNull(Bereich As Range) As Double Min_ohNull = WorksheetFunction.Small(Bereich, WorksheetFunction.CountIf(Bereich, 0) + 1)End Function
Größer/Kleiner als ein bestimmter Wert
Die Überlegungen von Möglichkeit 2 kann man auch dazu verwenden, den kleinsten Wert einer Liste, der größer ist als ein bestimmter Wert zu ermitteln. Selbiges gilt auch für den größten Wert einer Liste, der kleiner ist als ein bestimmter Wert.
VBA-Umsetzung
Public Function Kleinste_groesser_als(Bereich As Range, groesser_als As Double) As Double Kleinste_groesser_als = WorksheetFunction.Small(Bereich, WorksheetFunction.CountIf(Bereich, "<=" & groesser_als) + 1)End FunctionPublic Function Groesste_kleiner_als(Bereich As Range, kleiner_als As Double) As Double Groesste_kleiner_als = WorksheetFunction.Large(Bereich, WorksheetFunction.CountIf(Bereich, ">=" & kleiner_als) + 1)End Function
Minimum oder Maximum ohne Berücksichtigung von Vorzeichen
Einen weiteren Punkt gibt es noch, der vielleicht von Interesse sein kann. Minimum oder Maximum ohne Berücksichtigung von Vorzeichen.