Excel-Formel: Summe der ersten n übereinstimmenden Werte -

Inhaltsverzeichnis

Generische Formel

=SUM(INDEX(FILTER(range,logic),SEQUENCE(n,1,1,1)))

Zusammenfassung

Um die ersten n übereinstimmenden Werte in einem Datensatz zu summieren, können Sie eine Formel verwenden, die auf den Funktionen FILTER und SEQUENCE basiert. In dem gezeigten Beispiel lautet die Formel in Zelle G5, die nach unten kopiert wurde:

=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,1,1)))

Dabei sind Name (B5: B16) und Punktzahl (C5: C16) benannte Bereiche.

Erläuterung

Die in Excel 365 neue Funktion FILTER kann dazu beitragen, einige knifflige Formelprobleme zu vereinfachen.

In diesem Beispiel besteht das Ziel darin, die ersten drei Ergebnisse für Jake und Hailey zu summieren, basierend auf der Reihenfolge, in der sie in der Tabelle aufgeführt sind. Insgesamt gibt es 12 Punkte, und Jake und Hailey haben jeweils 6 Punkte.

Die erste Aufgabe besteht darin, von innen nach außen eine Liste mit Punktzahlen für jeden Namen zu erstellen. Dies geschieht mit der Funktion FILTER:

FILTER(score,name=F5)

Mit "Jake" in Zelle F5 ist das Ergebnis ein Array mit allen Ergebnissen von Jake wie folgt:

(6;5;7;7;6;8)

Dieses Array wird als Array-Argument an die INDEX-Funktion zurückgegeben:

INDEX((6;5;7;7;6;8),SEQUENCE(3,1,1,1))

Die SEQUENCE-Funktion wird verwendet, um den Wert für die Zeilennummer zu generieren, und gibt ein Array mit 3 Zahlen zurück.

SEQUENCE(3,1,1,1) // returns (1;2;3)

An dieser Stelle können wir den INDEX-Teil der Formel folgendermaßen schreiben:

INDEX((6;5;7;7;6;8),(1;2;3))

INDEX gibt Werte, die den ersten 3 Zeilen im Array zugeordnet sind, an die SUMME-Funktion zurück:

=SUM((6;5;7)) // returns 18

und SUM gibt die Summe dieser Werte als Endergebnis in G5 zurück. Wenn die Formel in Zelle G6 kopiert wird, ist das Ergebnis die Summe der ersten drei Punkte von Hailey.

Summiere die letzten n übereinstimmenden Werte

Um die letzten n übereinstimmenden Werte zu summieren, können Sie die Formel folgendermaßen anpassen:

=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,SUM(--(name=F5)),-1)))

Diese Formel wird hier näher erläutert.

Interessante Beiträge...