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