Excel-Formel: Zählen Sie Zeilen mit mindestens n übereinstimmenden Werten

Inhaltsverzeichnis

Generische Formel

(=SUM(--(MMULT(--(criteria),TRANSPOSE(COLUMN(data)^0))>=N)))

Zusammenfassung

Um Zeilen zu zählen, die bestimmte Werte enthalten, können Sie eine Array-Formel verwenden, die auf den Funktionen MMULT, TRANSPOSE, COLUMN und SUM basiert. In dem gezeigten Beispiel lautet die Formel in K6:

(=SUM(--(MMULT(--((data)=2)))

Dabei sind Daten der benannte Bereich C5: I14.

Beachten Sie, dass dies eine Array-Formel ist und mit Control Shift Enter eingegeben werden muss.

Erläuterung

Die von innen nach außen arbeitenden logischen Kriterien für diese Formel lauten:

(data)<70

Dabei sind Daten der benannte Bereich C5: I14. Dies erzeugt ein TRUE / FALSE-Ergebnis für jeden Wert in Daten, und das doppelte Negativ zwingt die TRUE FALSE-Werte auf 1 und 0, um ein Array wie das folgende zu erhalten:

(0,0,0,1,0,1,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,1,1,0,0,1,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,1,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0)

Wie die Originaldaten besteht dieses Array aus 10 Zeilen mal 7 Spalten (10 x 7) und wird als Array1 in die MMULT-Funktion übernommen . Das nächste Argument, array2, wird erstellt mit:

TRANSPOSE(COLUMN(data)^0))

Hier wird die COLUMN-Funktion verwendet, um ein numerisches Array mit der richtigen Größe zu generieren, da für die Matrixmultiplikation die Spaltenanzahl in Array1 (7) der Zeilenanzahl in Array2 entsprechen muss .

Die COLUMN-Funktion gibt das 7-Spalten-Array (3,4,5,6,7,8,9) zurück. Wenn wir dieses Array auf eine Potenz von Null erhöhen, erhalten wir ein 7 x 1-Array wie (1,1,1,1,1,1,1), das TRANSPOSE in ein 1 x 7-Array wie (1; 1) ändert ; 1; 1; 1; 1; 1).

MMULT wird dann ausgeführt und gibt ein 10 x 1-Array-Ergebnis (2; 0; 0; 3; 0; 0; 0; 1; 0; 0) zurück, das mit dem logischen Ausdruck> = 2 verarbeitet wird, was zu einem Array von TRUE führt FALSE-Werte:

(WAHR; FALSCH; FALSCH; WAHR; FALSCH; FALSCH; FALSCH; FALSCH; FALSCH; FALSCH).

Wir zwingen TRUE FALSE erneut mit einem doppelten Negativ auf 1 und 0, um ein endgültiges Array in SUM zu erhalten:

=SUM((1;0;0;1;0;0;0;0;0;0))

Was korrekt 2 zurückgibt, ist die Anzahl der Namen mit mindestens 2 Punkten unter 70.

Gute Links

Zeilen zählen, in denen die Bedingung mindestens in einer Spalte erfüllt ist (excelxor)

Interessante Beiträge...