SVerweis / VLOOKUP in Power Query M

Um in Power Query aus einer Tabelle eine bestimmte Information in eine andere Tabelle zu überführen, gibt es normalerweise die Zusammenführen- Funktionen. Es gibt jedoch Fälle, in denen eine Zusammenführung nicht gewünscht ist und man lieber die Möglichkeit eines SVerweises hätte. Hierfür gibt es mehrere Möglichkeiten, von denen ich eine vorstellen möchte. 

Hier die beiden Beispiel- Tabellen, die ich miteinander kombinieren möchte:

In Power Query, if you want to display information from one table to another, the usual choice is the use of MERGE functions. However, there might be cases, where this MERGE is not wanted and you’d rather use something like a VLOOKUP. There are several possibilities, of which I want to demonstrate one.

 

These are the two tables, I want to combine: 

Tabellen / tables

Zunächst lade ich die Tabellen wie gewohnt in Power Query, und habe somit folgende Situation:

As usual, I need to load them to the Power Query Editor, where I have the following situation:

Customer
Case

In die Tabelle Customer möchte ich die Veränderungsrate „Rate Change“ eingeben, basierend auf der Case_ID. Folgend ist der M Code, der hierzu führt (kopiert aus dem Erweiterten Editor):

In table Customer, I want to have the „Rate change“, based on the Case_ID. Next you will see the M Code snippet, which leads to this result (copied from the Advanced Editor): 

#“LookUp“ = Table.AddColumn(#“StepBefore“, „Rate change“, each (let Case_ID_A = [Case_ID] in Table.SelectRows(#“Case“, each [Case_ID] = Case_ID_A)){0}[Rate change], Percentage.Type)

Und hier noch die Erklärung, was welches Code-Snippet für was verantwortlich ist:

  1. #“StepBefore“ muss ersetzt werden mit dem Namen des vorherigen Schrittes
  2. „Rate change“ ist der Name der neuen Spalte
  3. Case_ID_A ist zur besseren Les- und Nachvollziehbarkeit die Variable zur Spalte Case_ID in der Tabelle Customer
  4. Table.SelectRows(#“Case“… ist die Tabelle, aus der die Information geholt werden soll
  5. [Case_ID] = Case_ID_A vergleicht die Spalte Case_ID aus der Tabelle #“Case“ mit der Spalte Case_ID aus Tabelle #“Customer“ (siehe Schritt 3)
  6. [Rate change] ist die Spalte, die wiedergegeben werden soll

And here the explanation of the code snippets mainly responsible:

  1. #“StepBefore“ needs to be replaced by the name of your step before
  2. „Rate Change“ is the name of the new column
  3. Case_ID_A is the variable of column Case_ID of table #“Customer“ in order to make the code more understandable
  4. Table.SelectRows(#“Case“… is the table of which the information needs to be retrieved
  5. [Case_ID] = Case_ID_A compares column Case_ID from table #“Case“ with column Case_ID from table #“Customer“
  6. [Rate change] is the column that needs to be returned

Schreibe einen Kommentar