merge_queries_with_condition

In diesem Artikel zeigen wir Ihnen, wie Sie Abfragen mit Bedingungen in Power Query zusammenführen.

Abfragen mit Bedingung in Power Query zusammenführen

Merge Query ist nur eine von vielen anderen nützlichen Funktionen, die Sie in Power Query nutzen können. Was es tut, ist, dass es zwei verwandte Tabellen miteinander verbindet, indem Reihen auf der Grundlage einer einzigen gemeinsamen Spalte übereinstimmen. Aber was ist, wenn Sie mehr Kontrolle benötigen – mehr Spalten, um zu übereinstimmen? Beispielsweise haben wir 2 Tabellen namens „tblPerson“ und „ tblJob“. Wir möchten in tblPerson die Berufe von tblJob mit einem Gehalt von 70000 und darüber anzeigen.

tblPerson

table tblPerson

tblJob

table tblJob

In einer solchen Situation bietet die Implementierung einer bedingten Fusion die Möglichkeit, genau festzulegen, wie Zeilen übereinstimmen.

 

Führen Sie Tabellen mit Bedingungen in Power Query zusammen

Hier ist ein Schritt-für-Schritt-Prozess zu folgen, wie man die bedingte Fusion in Power Query anwenden.

  • Schritt 1. Wählen Sie in Power Query die Tabelle tblPerson und dann „Merge Queries“ aus. Wählen Sie dann die Tabelle tblJob. Wählen Sie die Spalte JobID Felder in beiden Tabellen als Hauptverbindungen und lassen Sie den Zusammenschluss auf der linken Außenseite. Es sollte so aussehen.

merge_w_cond_stp1

  • Schritt 2. Klicken Sie jetzt auf OK, um die Fusion durchzuführen und die neue Spalte mit „Occupation“ zu erweitern. Beachten Sie, dass auf der rechten Seite der Tabelle eine neue Spalte hinzugefügt wird.

merge_w_cond_stp2

  • Schritt 3. Klicken Sie jetzt auf Home > “Advanced Editor” um auf den M-Code zuzugreifen. Suchen Sie nach der Zeile „Merge Queries“, denn hier werden wir die zusätzliche Bedingung für die Fusion anwenden.

merge_w_cond_stp3

  • Schritt 4. Ersetzen Sie die markierte Zeile mit dieser Zeile.
#"Merged Queries" = 
        Table.NestedJoin(
            #"Changed Type", 
            {"JobID"}, 
            Table.SelectRows(tblJob, each [Salary] >= 70000), 
            {"JobID"}, 
            "tblJob", 
            JoinKind.LeftOuter
        ),

Und es sollte so aussehen.

merge_w_cond_stp4

Was wir hier getan haben, ist, dass wir den dritten Parameter (tblJob) der Table.NestedJoin() Funktion angepasst haben, indem wir die Tabelle nach der Salary-Spalte mit größer oder gleich 70000 filtern. Standardmäßig bezieht sich tblJob auf alle Daten, weshalb wir sie hier programmatisch filtern müssen.

  • Schritt 5. Jetzt klicken Sie auf Fertig und das ist es. Tabelle tblPerson sollte jetzt nur die Beschäftigung mit einem Gehalt von 70000 oder mehr anzeigen. Diese Spalte sollte jetzt so aussehen.

merge_w_cond_stp5

 

Tipps zur Optimierung

Die Optimierung Ihres Workflows ist wichtig, wenn Sie das Beste aus der Fusion von Abfragen mit Bedingungen machen möchten. Denken Sie daran, Ihre Daten vorzubereiten, um die Bedingungen einfacher zu gestalten, oder komplizierte Fusionen in kleinere, leichter zu verwaltende Teile zu teilen. Es ist auch gut, sich mit den zahlreichen Funktionen und Operatoren von Power Query vertraut zu machen, um alle Herausforderungen effizient zu lösen.

Klicken Sie hier, um mehr über Power Query zu erfahren.

 

Zusammenfassung

In diesem Artikel haben wir zwei verwandte Tabellen verbunden, indem wir Zeilen basierend auf einer einzigen gemeinsamen Spalte abgeglichen haben. Indem Sie mehr Kontrolle darüber haben, wie Ihre Daten zusammengeführt werden, ermöglicht diese Technik es Ihnen, selbst die komplexesten Datenherausforderungen mit Leichtigkeit und Flexibilität zu transformieren.

 

Benötigen Sie einen VBA Programmierer?

Wir als exact construct programmieren mit einem Team von rd. 20 Mitarbeitern seit über 10 Jahren Excel-Tools. Wir sind ein Nischenanbieter der spezialisiert auf Makros/VBA-Codes ist. Daneben unterstützen wir auch als 3rd Level Support die IT-Abteilungen rund um Probleme bei MS Office (Excel, Word, PowerPoint, etc.).

Haben Sie ein Excel-Problem? Benötigen Sie einen Makro-Programmierer? Rufen Sie uns unverbindlich an +41 52 511 05 25 oder kontaktieren Sie uns via Kontaktformular.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen