Zählen Sie, wie oft Werte in Gruppen in Excel vorkommen

Zählen Sie, wie oft Werte in Gruppen in Excel vorkommen

Ich habe eine Liste mit Werten und möchte zählen, wie oft die Werte 400 überschreiten, aber wenn die Werte in der nächsten Zeile auch dieses Kriterium erfüllen, sollten sie nicht gezählt werden. Ich nehme an, die Formel ZÄHLENWENN ist in diesem Fall nutzlos. Zum besseren Verständnis sehen Sie sich bitte das beigefügte Bild an.

Bildbeschreibung hier eingeben

Antwort1

Bildbeschreibung hier eingeben

In diesem Bild habe ich Ihren Kriterienwert in Zelle A2 eingetragen.

In den Spalten E bis H werden die Formeln in die erste Datenzeile (Zeile 3 im Arbeitsblatt) eingetragen und dann nach unten zum unteren Ende des Bereichs kopiert.

In Spalte E befindet sich eine Formel, um den Wert aus der vorherigen Zeile zu erhalten:

=IF(ISTEXT(B2),0,B2)

In Spalte F befindet sich eine Formel, mit der berechnet werden kann, ob der Wert in der aktuellen Zeile (in Spalte B) größer als das Kriterium in Zelle A2 ist und der Wert aus der vorherigen Zeile (jetzt in Spalte E) kleiner oder gleich dem Kriterium in Zelle A2 ist. Diese Formel gibt eine 1 in einer Zeile zurück, in der eine Gruppe von Zeilen beginnt, die größer als das Kriterium sind:

=IF(AND(E3<=$A$2,B3>$A$2),1,0)

In Spalte G steht eine laufende Summe der Werte in Spalte F:

=SUM($F$3:F3)

Beachten Sie, dass die erste Referenz im Bereich mit absoluten Referenzen verankert ist. Wenn diese Formel nach unten kopiert wird, wird der Bereich, den sie summiert, größer, was zu den in Spalte G angezeigten Werten führt.

Schließlich zeigen wir in Spalte H den Wert aus Spalte G an, wenn der Wert in Spalte B größer ist als das Kriterium in Zelle A2:

=IF(B3>$A$2,G3,"")

Wenn Sie über die neueste Version von Office 365 verfügen, können Sie alle Schritte in einer einzigen Formel zusammenfassen, die im obigen Bild nur in Zelle I2 eingetragen wird:

=LET(
base,$A$2,
data,$B$3:$B$12,
prev,OFFSET(data,-1,0),
numprev,IF(ISTEXT(prev),0,prev),
grpchg,BYROW(CHOOSE({1,2},data,numprev),LAMBDA(r,IF(AND(INDEX(r,,1)>base,INDEX(r,,2)<=base),1,0))),
runsum,SCAN(0,grpchg,LAMBDA(a,b,a+b)),
output,IF(data>base,runsum,""),
output)

verwandte Informationen