Wie kann ich in einem Bereich die Zahlen zählen, die grö�er/gleich einer Zahl und kleiner gleich einer anderen Zahl sind?
UDF - benutzerdefinierte Funktion
Wenn der Bereich nicht zu groÃ? ist, kann folgende benutzerdefinierte Funktion verwendet werden:
Function Zaehlen(Bereich As Range, Minimum, Maximum) Dim objZelle As Object, intI As Integer intI = 0 For Each objZelle In Bereich If objZelle.Value >= Minimum And objZelle.Value <= Maximum Then intI = intI + 1 End If Next Zaehlen = intI End Function
In die Zelle muÃ? dann eingegeben werden:
=Zählen(Bereich;kleinste Zahl;grö�te Zahl)
=Zählen(A1:A100;10;20)
Formel
Am einfachsten ist jedoch, wenn die integrierte Funktion ZÃ?HLENWENNS() verwendet wird:
=ZÃ?HLENWENNS(A1:A10;">2";A1:A10;"<7")
Dynamische Arrayfunktion (ab Excel 365)
Sollen die Zahlen, die zu den Kriterien passen, auch gleich ausgegeben werden, kann das mit der Funktion FILTER() erfolgen:
=FILTER(A1:A10;(A1:A10>2)*(A1:A10<7);"")
Die Zahlen stehen dann untereinander an der Zelle mit der Formel und können auch mit ANZAHL() gezählt werden. Dabei gibt es jedoch eine Besonderheit.
Gibt man =ANZAHL( ein und zieht dann über den Bereich mit den gefundenen Zahlen, wird in die Funktion nicht der Bereich eingetragen, sondern eine ID wie zum Beispiel C3#:
=ANZAHL(C3#)
Die vergibt Excel selbst. Dabei handelt es sich um eine Referenz auf das Ergebnis der Funktion FILTER(), denn die Grö�e der Ergebnismenge dieser Funktion kann sich ja ändern. Durch diese Referenz wird immer richtig gezählt - egal, ob FILTER() 0, 5 oder sonst wie viele Ergebnisse liefert.
Natürlich ist auch sowas möglich:
=ANZAHL(FILTER(A1:A10;(A1:A10>2)*(A1:A10<7);""))