Nehmen wir an, ich habe einige Daten in Excel (und nicht in einer echten Datenbank). In einem Blatt habe ich Daten, wobei eine Spalte als ID fungiert, und ich habe sichergestellt, dass die Werte in dieser Spalte eindeutig sind. In einem anderen Blatt habe ich auch einige Daten, wiederum mit einer Spalte, die als ID verwendet werden kann, und sie sind auch eindeutig. Wenn die Zeile N in Blatt 1 einen bestimmten Wert hat und die Zeile M in Blatt 2 denselben Wert hat, sind sich die Zeilen N und M sicher, dass sie dasselbe Objekt der realen Welt beschreiben.
Was ich frage: Wie kann ich das Äquivalent eines vollständigen Outer-Joins erhalten, ohne Makros zu schreiben? Formeln und alle Funktionen, auf die über das Menüband zugegriffen werden kann, sind in Ordnung.
Ein kleines Beispiel für "Spieldaten":
Blatt1:
Dostoyevski Russia
Pushkin Russia
Shelley England
Flaubert France
Hugo France
Eichendorff Germany
Byron England
Zola France
Blatt 2:
Shelley Percy Bysshe
Eichendorff Josef Freiherr Von
Flaubert Gustave
Byron Lord
Keller Gottfried
Dostoyevski Fyodor
Zola Emile
Balzac Honoré de
Gewünschte Ausgabe (Sortierung ist nicht wichtig):
Dostoyevski Russia Fyodor
Pushkin Russia
Shelley England Percy Bysshe
Flaubert France Gustave
Hugo France
Eichendorff Germany Josef Freiherr von
Byron England Lord
Zola France Emile
Keller Gottfried
Balzac Honoré de
Allen, die von diesem Szenario entsetzt sind: Ich weiß, dass dies der falsche Weg ist, es zu tun. Wenn ich eine Wahl hätte, würde ich nicht Excel dafür verwenden. Es gibt jedoch genügend Situationen, in denen eine pragmatische Lösung erforderlich ist, stat und eine bessere (aus IT-Sicht) Lösung nicht angewendet werden kann.
quelle
Antworten:
Einfacher Ansatz - Standard-Excel-Operationen
Kopieren Sie zunächst beide Schlüsselspalten aus beiden Tabellen und fügen Sie sie als einzelne Spalte in ein neues Blatt ein.
Verwenden Sie die Option "Duplikate entfernen", um eine Liste aller Ihrer eindeutigen Schlüssel zu erhalten.
Fügen Sie dann zwei Spalten hinzu (in diesem Fall eine für jede Ihrer Datenspalten in jeder Tabelle). Ich empfehle Ihnen, das Format auch als Tabellenoption zu verwenden, da Ihre Formeln dadurch viel schöner aussehen. Verwenden Sie in vlookup die folgende Formel:
Wobei
Sheet4!A:B
repräsentiert, was auch immer die Quelltabellendatentabelle für den jeweiligen Wert ist. Der IFERROR verhindert die hässlichen # N / A-Ergebnisse, die angezeigt werden, wenn die Suche nicht erfolgreich ist, und gibt in diesem Fall eine leere Zelle zurück.Dies gibt Ihnen Ihre resultierende Tabelle.
Sheet3:
Sheet4:
Ergebnisdaten:
Ergebnisformeln ( Ctrl+ ~schaltet dies um):
Eingebaute SQL-Abfrage
Sie können dies auch mit der integrierten SQL-Abfrage tun. Es ist ... viel weniger benutzerfreundlich, aber vielleicht wird es ein besserer Anwendungsfall sein. Dies erfordert wahrscheinlich, dass Sie Ihre "Quell" -Daten als Tabellen formatiert haben.
Der Teil "Eine Subtraktionsverknüpfung erstellen und dann als Vereinigung hinzufügen" ist komplizierter.
Kehren Sie zum ersten erstellten Outer Join zurück. Bearbeiten Sie SQL und manuell
Union
unten hinzufügenNicht für schwache Nerven. Wenn Sie jedoch die großartige Chance haben möchten, einige nicht aktualisierte Teile von Office zu sehen, solange Sie möglicherweise noch am Leben sind, ist dies eine großartige Chance.
quelle
Kann ich als alternative Lösung Power Query vorschlagen ? Es ist ein kostenloses Excel-Add-In von Microsoft, mit dem genau solche Aufgaben ausgeführt werden können. Die Funktionalität wird auch direkt in Excel 2016 integriert und ist somit zukunftssicher.
Wie auch immer, mit Power Query sind die Schritte ziemlich einfach:
Das Schöne daran ist, dass Sie, sobald Sie dies eingerichtet haben, bei Änderungen an Ihren Basisdatentabellen einfach auf Daten> Alle aktualisieren klicken und Ihr Power Query-Ergebnisblatt ebenfalls aktualisiert wird.
quelle
Eine schnelle Möglichkeit, eine (äußere Verknüpfung) halb zu simulieren, besteht darin, Ihre zweite Liste direkt unter Ihrer ersten Liste einzufügen, dh, Ihre (Primärschlüssel) befinden sich alle in derselben (Primär-) Spalte. Sortieren Sie dann diese Primärspalte. Am Ende erhalten Sie eine verschachtelte Liste. Führen Sie dann eine transponierte IF-Gleichung aus (der Superuser bringt die Tabellenlayoutansicht durcheinander.):
listA listB
sam blue tim 32874 tim red mary 5710 chris green gustav 047 fred blue
mary black
Kopieren / Einfügen / Sortieren, das Ergebnis sieht so aus: AB Chris Green Fred Blue Gustav 047 Mary 5710 Mary Black Sam Blue Tim 32874 Tim Red
dann Formel für Zelle c1: (c1) = if (A1 = A2, B2)
Das Ergebnis sieht so aus:
ABC chris green FALSCH fred blue FALSCH gustav 047 FALSCH mary 5710 black mary black FALSCH sam blue FALSCH tim 32874 red tim red FALSCH
Sortieren Sie C, um Fehler usw. zu beseitigen. Dies ist eine grundlegende Version der Idee. Erweitern Sie sie einfach, wenn weitere Daten erforderlich sind. -wag770310
quelle