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).
microsoft-excel
power-query
Aaron
quelle
quelle
Antworten:
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.
quelle