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);""))