Angenommen, ich habe die folgende Tabelle:
Ich möchte die Gesamtzahl der am ersten Tag verkauften Äpfel ermitteln, unabhängig vom Kunden.
Ich bin einigermaßen damit vertraut, INDEX/MATCH
aber ich bin nicht ganz sicher, wie ich vorgehen soll.
Ich verstehe, dass mit der SUMIF
Funktion nur die Summe des gewünschten Tages gebildet werden kann, bin mir aber nicht sicher, wie ich mehrere Zeilen damit summieren kann INDEX/MATCH
.
Die Ausgabe, die ich suche, ist wie folgt:
Aber am wichtigsten möchte ich wissenSo summieren Sie mehrere bestimmte Zeilenund deshalb bitte icheine Formel für B16.
Antwort1
Wenn Sie die Möglichkeit haben, die Zellen in Spalte A zu trennen und zu normalisieren, SUMIFS
sollte ein einfacher Schritt funktionieren. Andernfalls versuchen Sie Folgendes:
=SUMPRODUCT($C$2:$C$13,
1*($B$2:$B$13=$A16),
1*(ROW($A$2:$A$13)>=SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15)),
1*(ROW($A$2:$A$13)<SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15+1)))
Ergebnis:
╔════════╦════╦════╗
║ Day ║ 1 ║ 2 ║
╠════════╬════╬════╣
║ Apple ║ 60 ║ 90 ║
║ Orange ║ 0 ║ 85 ║
║ Pear ║ 75 ║ 0 ║
╚════════╩════╩════╝
Quelle:
Die Formel geänderthier zu finden:
Erläuterung:
Der Kernteil ist die SMALL
Funktion
SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15)
Es erstellt ein Array von Zeilennummern für einen angegebenen Bereich, wobei Zellen, die nichts enthalten ( =""
), einen Wert haben, der 100 höher ist als die entsprechende Zeilennummer ( +100*
). Andererseits werden den Zellen, die die Bedingung nicht erfüllen (d. h. nicht leeren Zellen), nur ihre Zeilennummern zugewiesen. Dieses Array wird der SMALL
Funktion mit B$15
dem zweiten Argument übergeben, das sie anweist, daskkleinstes Element im Array.
Wir möchten also die Zeilen summieren, wobei die Zeile mit der Tagesnummer beginnt. Und genau das macht dieser Teil:
1*(ROW($A$2:$A$13)>=SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15))
Wir möchten jedoch auch die Summierung bis zur Zelle direkt über der nächsten nicht leeren Zelle beschränken. Daher wird der <
Operator und B$15+1
(also(k+1)tekleinstes Element) im folgenden Teil:
1*(ROW($A$2:$A$13)<SMALL(ROW($A$2:$A$13)+100*($A$2:$A$13=""),B$15+1))