Linker Anti-Join
Eine der Join-Arten, die im Dialogfeld Zusammenführen in Power Query zur Verfügung stehen, ist ein linker Anti-Join, der nur Zeilen aus der linken Tabelle einbringt, die keine entsprechenden Zeilen in der rechten Tabelle haben. Weitere Informationen: Übersicht über Zusammenführungsvorgänge
Das Diagramm zeigt die linke Tabelle mit den Spalten "Datum", "LandNR" und "Einheiten". Die hervorgehobene Spalte "CountryID" enthält Werte von 1 in Zeile 1 und 2, 3 in Zeile 3 und 2 in Zeile 4. Die Tabelle rechts enthält die Spalten "ID" und "Land". Die hervorgehobene ID-Spalte enthält die Werte 3 in Zeile 1 (bezeichnet Panama) und 4 in Zeile 2 (bezeichnet Spanien). Eine Tabelle unterhalb der ersten beiden Tabellen enthält die Spalten "Datum", "LandNR", "Einheiten" und "Land". Die Tabelle enthält drei Zeilen mit zwei Zeilen mit den Daten für CountryID 1 und eine Zeile für CountryID 2. Da keiner der verbleibenden CountryIDs mit einem der Länder/Regionen in der rechten Tabelle übereinstimmt, enthalten die Zeilen in der Spalte "Land" in der zusammengeführten Tabelle alle NULL.
In diesem Artikel wird anhand von Beispieldaten gezeigt, wie ein Zusammenführungsvorgang mit dem linken Anti-Join durchgeführt wird. Die Beispielquelltabellen für dieses Beispiel sind:
Sales (Umsatz): Diese Tabelle enthält die Felder Date (Datum), CountryID (Länderkennung), und Units (Einheiten). CountryID ist ein ganzzahliger Wert, der den eindeutigen Bezeichner aus der Tabelle Länder darstellt.
Countries (Länder): Diese Tabelle ist eine Referenztabelle mit den Feldern ID und Land. Das Feld ID stellt den eindeutigen Bezeichner für jeden Datensatz dar.
In diesem Beispiel führen Sie beide Tabellen zusammen, wobei die Tabelle Umsatz die linke Tabelle und die Tabelle Länder die rechte ist. Die Verknüpfung wird zwischen den folgenden Spalten hergestellt.
Feld aus der Tabelle „Umsatz“ | Feld aus der Tabelle „Länder“ |
---|---|
Länder-ID | ID |
Ziel ist es, eine Tabelle wie folgende zu erstellen, bei der nur die Zeilen aus der linken Tabelle beibehalten werden, die in der rechten Tabelle keine Entsprechung haben.
Screenshot: Endtabelle des linken Anti-Join mit den Spaltenüberschriften „Date“, „CountryID“, „Units“ und „Country“ sowie drei Datenzeilen, deren Werte in der Spalte „Country“ (Land) alle null sind
Durchführen eines linken Anti-Joins:
- Wählen Sie die Abfrage Sales und dann Abfragen zusammenführen aus.
- Wählen Sie im Dialogfeld Zusammenführen unter Rechte Tabelle für Zusammenführung die Tabelle Countries aus.
- Wählen Sie in der Tabelle Sales die Spalte CountryID aus.
- Wählen Sie in der Tabelle Countries die Spalte ID aus.
- Wählen Sie im Abschnitt Art des Joins die Option Linker Anti-Join aus.
- Wählen Sie OKaus.
Tipp
Schauen Sie sich die Meldung unten im Dialogfeld genauer an, die lautet: „Bei dieser Auswahl werden 3 von 4 Zeilen aus der ersten Tabelle ausgewählt“. Diese Meldung ist entscheidend für das Verständnis des Ergebnisses, das Sie mit diesem Vorgang erzielen.
In der Tabelle Sales liegen zwei Instanzen der CountryID 1 und eine Instanz der CountryID 2 vor. Aber keine davon ist in der Tabelle Countries zu finden. Daher wurden beim Abgleich drei von vier Zeilen in der linken (ersten) Tabelle gefunden.
In der Tabelle Countries ist das Land Panama mit der ID 3 aufgeführt. Dieser Datensatz wird nicht in die Tabelle Sales eingefügt, da die Zahlen übereinstimmen. Darüber hinaus ist das Land Spanien mit der ID 4 aufgeführt, es gibt jedoch keine Datensätze für die CountryID 4 in der Tabelle Sales. Daher werden keine der beiden Zeilen aus der rechten (zweiten) Tabelle in die Tabelle Sales eingefügt.
Erweitern Sie in der neu erstellten Spalte Countries das Feld Country. Aktivieren Sie nicht das Kontrollkästchen Ursprünglichen Spaltennamen als Präfix verwenden.
Nachdem Sie diesen Vorgang ausgeführt haben, haben Sie eine Tabelle erstellt, die wie die folgende Abbildung aussieht. Das neu erweiterte Feld Country weist keine Werte auf. Das liegt daran, dass der linke Anti-Join keine Werte aus der rechten Tabelle mitbringt, sondern nur Zeilen aus der linken Tabelle beibehält.
Screenshot: endgültige Tabelle mit Spaltenüberschriften „Date“, „CountryID“, „Units“ und „Country“ sowie drei Datenzeilen Die Werte für die Spalte "Land" sind alle null.