@ > Home > Inhalt > Nur 1 statt 2 Intervall-Bedingungen verwenden Excel 97+

Stetiges Intervall ]a,b[

=SUMMENPRODUKT(--($A$1:$A$999>20);--($A$1:$A$999<90);$B$1:$B$999)

enthält als Bedingung ein Intervall. So weit, so gut, so verständlich. Ärgerlich daran aber ist die doppelte Ansprache des Bereichs $A$1:$A$999, für den die Bedingung zwischen 20 und 90 auf dem Zahlenstrahl gültig sein soll.

Das kann man vermeiden: Verschieben wir das 70 Einheiten breite Intervall um -55 auf von -35 bis +35, begnügt sich die Funktion mit nur einem $A$1:$A$999:

=SUMMENPRODUKT(--(ABS($A$1:$A$999-55)<35);$B$1:$B$999)

Wir normieren also das Intervall um Null herum und nutzen die Eigenschaft von ABS(), positives und negatives Glied gleich zu behandeln.

Das ist kürzer und - schneller! Die Formel legt etwa zwischen 10% und 30% an Geschwindigkeit zu. Falls dies eine große Rolle spielt: 0038.htm. ABS() ist in diesem Sinne in jedem anderen Intervall anwendbar.

Bei allgemeiner Formulierung (im folgenden: zwei Umformungsschritte) ergibt sich:

=SUMMENPRODUKT(--($A$1:$A$999>UNTEN);--($A$1:$A$999<OBEN);$B$1:$B$999)
=SUMMENPRODUKT(--(ABS($A$1:$A$999-(OBEN+UNTEN)/2)<(OBEN-UNTEN)/2);$B$1:$B$999)
=SUMMENPRODUKT(--(ABS($A$1:$A$999*2-OBEN-UNTEN)<OBEN-UNTEN);$B$1:$B$999)

Hier sieht man, dass der Ausdruck $A$1:$A$999 allein nicht lang genug ist, um die ABS()-Formel mit Intervallbezügen statt Intervallwerten abzukürzen - als Demonstration hier also die Ausnahme zur Regel.

Diskretes (halboffenes) Intervall ]a,b]:

Der in der Praxis bedeutsamere Fall lautet (Änderungen gegenüber oben in rot)

=SUMMENPRODUKT(--($A$1:$A$999>20);--($A$1:$A$999<=90);$B$1:$B$999)

(als Variante für lückenlose Klassen), für den

=SUMMENPRODUKT(--(ABS($A$1:$A$999-55)<=35);$B$1:$B$999)

falsch ist. 20 würde hier ungewollt berücksichtigt. Es soll aber nur 90, nicht auch 20, mit in das Intervall fallen. 

Die Lösung ist es, die Hälfte der kleinstmöglichen diskreten Werteänderung - bei Euro ist dies 1 Cent, also 0,5 Cent - zusätzlich abzuziehen:

=SUMMENPRODUKT(--(ABS($A$1:$A$999-55,005)<35);$B$1:$B$999)

Damit verlegt man die Intervallgrenzen auf unmögliche Werte (hier 20,005 und 90,005) und erfasst trotz exklusiver "<"-Formulierung alle vorkommenden Werte. Die Anwendung muss dabei aber sicherstellen, dass die Daten auf ,01 gerundet sind!

=SUMMENPRODUKT(--(ABS($A$1:$A$999*2-110,01)<70);$B$1:$B$999) 
kann man genauso dafür nehmen - wir benötigen dies zum Verständnis der folgenden Formel.

Allgemein - mit Bezügen statt Zahlen - ergibt sich also:

=SUMMENPRODUKT(--(ABS($A$1:$A$999*2-OBEN-UNTEN-KleinsteEinheit)<OBEN-UNTEN);$B$1:$B$999)

wobei hier KleinsteEinheit = 0,01 ist. 

Warum nicht 0,005, also KleinsteEinheit/2? Weil wir abkürzend die ganze Bedingung \*2 genommen haben!
-