Berechnen des Gesamtumsatzes mit mehreren Kriterien über zwei Tabellen hinweg

Berechnen des Gesamtumsatzes mit mehreren Kriterien über zwei Tabellen hinweg

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 1

Tabelle 2:

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:

Bildbeschreibung hier eingeben


C2• In der Zelle verwendete Formel Sheet Named Table1zum 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 und Stock Unitbasierend auf undSales UnitSalesIDName
  • Als nächstes verwenden Sie SUM()eine Funktion, die eine Boolesche Operation ausführt, um die oben extrahierten Arrays zu vergleichen Sales Unitund Stock Unitdie 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 benutzerdefinierte LAMBDA()Berechnungen durchzuführen.
  • Innerhalb der LAMBDA()Verwendung von a LET()wird eine Funktion übergeben, FILTER()um die drei gewünschten Spalten basierend auf IDund zu extrahieren.Name
  • Als nächstes wird hier die Summe der Produkte der entsprechenden Arrays berechnet, mit Stock Unit--> verglichen, INDEX(z,,1)mit Sales Unit--> INDEX(z,,2)was und zurückgibt TRUE, FALSEund dann dasselbe mit multipliziert, Salesum nach der Summierung die gewünschte Ausgabe zu erhalten.

Eine einfache Möglichkeit wäre die Verwendung SUMIFS()von „ Sales UnitSpalte übernommen als“ Criteria Rangeund Stock Units„Spalte als“ Criteria. Dies hängt jedoch von Ihren Vorlieben ab:

Bildbeschreibung hier eingeben


=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)) 

verwandte Informationen