Wie vergleicht man zwei Listen mit mehreren Zeilen pro Element?

Wie vergleicht man zwei Listen mit mehreren Zeilen pro Element?

Ich versuche, eine Möglichkeit zu finden, zwei Listen von „Personen“ mit mehreren Zeilen pro Person mit einer anderen Liste zu vergleichen, die möglicherweise dieselben Zeilen enthält, aber nicht muss.

Jede Person hat eine eindeutige ID. Für jede Person in einer Liste können zwischen 1 und 4 Zeilen vorhanden sein. Sie müssen nicht unbedingt die gleiche Anzahl von Zeilen enthalten oder nicht in der gleichen Reihenfolge sein. Abgesehen davon ist pro Person fast jede Zelle in jeder Zeile redundant und identisch (hauptsächlich persönliche Informationen, die nicht variieren). Die möglichen Zeilen („Artikel“) sind immer dieselben: Jacken, Hüte, Schuhe und Accessoires. Die letzten beiden Zellen in jeder Zeile sind der eigentliche Wert, den ich vergleichen muss.

Englisch ist meine zweite Sprache und ich habe große Schwierigkeiten, sie in Worte zu fassen.also habe ich ein Beispiel in Google Sheets erstellt.

Ich erhalte auch beide Tabellen mit den spezifischen Spalten und dem Format wie in dem Beispiel, das ich verlinke, und ich kann das nicht ändern oder neu anordnen. Ich kann nur die Spalte „Übergegangen?“ hinzufügen.

Für mich klingt das so, als bräuchte ich so etwas wie eine ausgefeiltere Version von SVERWEIS, bei der ich nach der eindeutigen ID (Spalte B) suchen kann, dann irgendwie auch nach dem Artikel (Spalte E) und den Betragswert für diesen bestimmten Artikel zurückgeben kann (Spalte F). Dann heißt es nur noch: WENN A=B, dann „OK!“ usw. Aber ich kenne keine Funktion, die sozusagen wie ein doppelter SVERWEIS funktioniert.

Können Sie, liebe Leute von SU, mir einen Weg zeigen, wie ich die Spalte „Vergleich“ in N so erstellen kann, dass kein Skript erforderlich ist? Wie kann ich sonst jedes Element für jede Person mit denselben Elementen für dieselbe Person in der anderen Liste vergleichen?

Beispieltabelle 1

NAME HERSTELLER-ID # SEX ALTER ERWARTETE ARTIKEL ERWARTETER BETRAG
WATTS, TOM 6505581 M 21 Jacken 44
WATTS, TOM 6505581 M 21 Hüte 20
WATTS, TOM 6505581 M 21 Schuhe 55
WATTS, TOM 6505581 M 21 Zubehör 18
SMITH, JANE 702452 F 32 Hüte 56
SMITH, JANE 702452 F 32 Schuhe 20
SMITH, JANE 702452 F 32 Zubehör 26
KARL, FRANK 1235554 M 54 Jacken 80
KARL, FRANK 1235554 M 54 Zubehör 20

Beispieltabelle 2

NAME HERSTELLER-ID # SEX ALTER ARTIKEL VERKAUFT VERKAUFTE MENGE GING HINÜBER?
WATTS, TOM 6505581 M 21 Jacken 44 OK!
WATTS, TOM 6505581 M 21 Schuhe 65 +10
WATTS, TOM 6505581 M 21 Hüte 20 OK!
WATTS, TOM 6505581 M 21 Zubehör 18 OK!
SMITH, JANE 702452 F 32 Zubehör 26 OK!
SMITH, JANE 702452 F 32 Schuhe 10 -10
SMITH, JANE 702452 F 32 Hüte 56 OK!
KARL, FRANK 1235554 M 54 Jacken 95 +15
KARL, FRANK 1235554 M 54 Zubehör 22 2

Antwort1

Eine Lösung ohne Tabellen undLET

Jetzt habe ich eine Hilfsspalte verwendet, um zuerst den erwarteten Betrag zu erhalten (um die endgültige Formel einfacher zu halten):
=FILTER($F$2:$F$10,($B$2:$B$10=I2)*($E$2:$E$10=L2))

Dann vergleicht die Hauptformel einfach die verkaufte Menge mit der erwarteten Menge:
=IF(M2=N2,"OK!",M2-N2)

Bildbeschreibung hier eingeben

Antwort2

Sie benötigen die Funktion FILTER(). Darüber hinaus habe ich die LET()Funktion verwendet, um die Formel zu vereinfachen, und Tabellen hinzugefügt (Einfügen – Tabelle), sodass ich strukturierte Referenzen verwenden kann.

=LET(expected, FILTER(Table1[AMOUNT EXPECTED],(Table1[VENDOR ID '#]=[@[VENDOR ID '#]])*(Table1[ITEMS EXPECTED]=[@[ITEMS SOLD]])),IF(expected=[@[AMOUNT SOLD]],"OK!",[@[AMOUNT SOLD]]-expected))

Bildbeschreibung hier eingeben

verwandte Informationen