Verwenden von Excel 2016 Power Query zum Ausführen einer bedingten inneren Verknüpfung

0

Ich habe zwei Tabellen in Excel 2016, eine Herstellertabelle und eine Transaktionstabelle. Ich versuche, so etwas aus SQL heraus zu machen, aber in der formalen Sprache von Power Query (M):

SELECT * FROM Transcations
INNER JOIN Vendor ON Vendor.Name LIKE '%' + Transactions.VendorName + '%'

Es ist eine einfache Abfrage in SQL. Zusammenführungen in Excel scheinen jedoch keine bedingten inneren Verknüpfungen zuzulassen. Kann mir jemand dabei helfen, M, Code?

Lassen
    Source = Table.NestedJoin (Transaktionen, {"VendorName"}, Anbieter, {"Name"}, "Anbieter", JoinKind.Inner)
im
    Quelle

Hier sind einige Beispieldaten:

Anbieter
-------------------
Name, PeopleCount
-------------------
ACME, 35
Microapple, 2000
Happyworx, 62

Transaktionen
-------------------
Transaktions-ID, Lieferantenname, Betrag
-------------------
1, Xaction: ACME, $ 19,50
2, Microapple 5/27 - RYXTU, 32,75 USD
3, Microapple 5/30 - KJDIU, $ 7,23
4, Xaction: ACME, 22,32 USD
5, Happyworx Store 7362, $ 3,23 

Diese Tabellen müssen in Transactions.VendorName LIKE '%' + Vendor.Name + '%' verknüpft werden (wenn M ein Platzhalter-Trennzeichen hat).

Aaron
quelle
Könnten Sie Beispieldaten hochladen? Und für Join the Tables welches Schlüsselfeld möchten Sie verwenden?
Rajesh S

Antworten:

0

Ich würde eine "Dummy Merge Key" -Spalte zu beiden Abfragen hinzufügen, zB = 1. Dann würde ich von der Transaktionsabfrage ausgehen und eine Zusammenführung mit der Lieferantenabfrage hinzufügen, die mit dieser "Dummy Merge Key" -Spalte übereinstimmt. Erweitern Sie dann alle Kreditorenspalten.

Zu diesem Zeitpunkt haben Sie eine massive "Kreuzverknüpfung" aller Transaktionszeilen, die mit allen Lieferantenzeilen gekreuzt sind. Keine Panik.

Ich würde dann eine bedingte Spalte hinzufügen, um Ihre Kriterien zu überprüfen, zB

Anbieter abgestimmt

= Wenn Vendors.Name VendorName enthält, dann Ja, sonst Nein

Dann Filter for Vendor Matched = Yes.

Die Leistung ist überraschend gut.

Mike Honey
quelle