
Ich arbeite derzeit mitTabelle 1und versuchen, den Gesamtumsatz zu berechnen[Spalte C]von Produkten mit dem gleichenAUSWEISund passende Lagereinheiten und Verkaufseinheiten inTabelle 2. Ich habe versucht, die SUMIFS-Formel folgendermaßen zu verwenden:
=SUMIFS(Table2!E:E, Table2!A:A, Table1!A1, Table2!C:C, Table2!D:D)
Es scheint jedoch nicht das gewünschte Ergebnis zu bringen. Könnte mir bitte jemand dabei helfen? Ich wäre Ihnen für Ihre Hilfe sehr dankbar. Vielen Dank!
Tabelle 1 (gewünschte Ergebnisse):
Tabelle 2:
Antwort1
Wenn ich das richtig verstehe, SUMIFS()
ist das nicht die richtige Funktion, die für die gewünschte Ausgabe funktioniert. Verwenden Sie stattdessen Folgendes, wie im Screenshot gezeigt:
C2• In der Zelle verwendete Formel Sheet Named Table1
zum Ausfüllen:
=LET(
_extract, FILTER(Table2!C$2:E$19,(Table2!A$2:A$19=Table1!A2)*(Table1!B2=Table2!B$2:B$19),""),
SUM(--(INDEX(_extract,,1)=INDEX(_extract,,2))*TAKE(_extract,,-1)))
- Extrahieren Sie mithilfe
FILTER()
der Funktion den Datenbereich mit Überschriften als undStock Unit
basierend auf undSales Unit
Sales
ID
Name
- Als nächstes verwenden Sie
SUM()
eine Funktion, die eine Boolesche Operation ausführt, um die oben extrahierten Arrays zu vergleichenSales Unit
undStock Unit
die Summe der Produkte der entsprechenden Arrays zu ermitteln.
Wenn Sie verwenden MS365
, können Sie die gesamte Ausgabe auch mit einer einzigen Formel ausgeben, Sie müssen sie hier also nicht ausfüllen:
=MAP(A2:A7,B2:B7,LAMBDA(x,y,
LET(z, FILTER(Table2!C:E,(Table2!A:A=x)*(Table2!B:B=y),""),
SUM(--(INDEX(z,,1)=INDEX(z,,2))*TAKE(z,,-1)))))
- Verwenden Sie
MAP()
die Funktion zum Iterieren der einzelnen Zellenwerte, um benutzerdefinierteLAMBDA()
Berechnungen durchzuführen. - Innerhalb der
LAMBDA()
Verwendung von aLET()
wird eine Funktion übergeben,FILTER()
um die drei gewünschten Spalten basierend aufID
und zu extrahieren.Name
- Als nächstes wird hier die Summe der Produkte der entsprechenden Arrays berechnet, mit
Stock Unit
--> verglichen,INDEX(z,,1)
mitSales Unit
-->INDEX(z,,2)
was und zurückgibtTRUE
,FALSE
und dann dasselbe mit multipliziert,Sales
um nach der Summierung die gewünschte Ausgabe zu erhalten.
Eine einfache Möglichkeit wäre die Verwendung SUMIFS()
von „ Sales Unit
Spalte übernommen als“ Criteria Range
und Stock Units
„Spalte als“ Criteria
. Dies hängt jedoch von Ihren Vorlieben ab:
=SUMPRODUCT(
SUMIFS(
Table2!E:E,
Table2!A:A, Table1!A2,
Table2!B:B, Table1!B2,
Table2!D:D, UNIQUE(
Table2!C:C
)
)
)
Es gibt noch eine weitere Alternative, die jedoch empfohlen wird, da sie die Excel-Effizienz verlangsamt.
=SUM(FILTER(Table2!E:E,(IFNA(XMATCH(Table2!D:D,UNIQUE(Table2!C:C)),0))*(A2=Table2!A:A)*(Table2!B:B=Table1!B2),0))