Tabellen zusammenführen mit relativer Bedingung

Tabellen in Power Query und Power BI Desktop zusammenzuführen oder anzufügen ist über die Benutzeroberfläche einfach zu realisieren. Dies gilt jedoch nicht, falls relative Bedingungen wie “gültig von bis” im Spiel sind.
Im heutigen Beispiel soll zur Sales Tabelle die Bruttomarge aus einer andern Tabelle hinzugefügt werden. Die Bruttomarge ist jedoch nicht starr und ändert sich von Zeit zu Zeit.

Die Sales Tabelle sieht wie folgt aus:
Tabelle Sales
Um Änderung über die Zeit abzubilden, verfügt die Tabelle Bruttomarge über zwei Felder:
  • Gültig von
  • gültig bis

Die Tabelle sieht wie folgt aus:Tabelle Bruttomarge

Relative Bedingung mittels einer Funktion

Die Funktion “Tabelle zusammenführen” kennt nur absolute Join-Bedingungen in der Form “Werte der Spalte Z aus Tabelle A entsprechen den Werten der Spalte Z aus Tabelle B”. Für relative Bedingungen ist sie daher nicht geeignet.
Der Lösungsansatz ist nicht intuitiv. Aber mal erstellt, erscheint die Lösung als einfach und logisch.
Erstellt als erstes folgende Funktion:
Funktion Tabellen zusammenfügen mit Bedingungen
Erläuterung:
  • Die erste Zeile definiert die Inputparameter für die Funktion. Dies sind Produkt und Datum.
  • In der zweiten Zeile holt die Funktion alle Spalten der Tabelle Bruttomarge.
  • Die nächste Zeile vergleicht das Inputdatum mit den beiden Feldern “gültig ab” und “gültig bis” sowie die Übereinstimmung der Produktnamen. Nichtzutreffende Einträge werden herausgefiltert.
  • Die letzte Zeile blendet alle Spalten ausser Bruttomarge aus. Diese wird zurückgegeben. Falls mehr als zwei Zeilen vorhanden sein sollten, so liegt eine Datumsüberschneidung vor und es wird null zurückgegeben.

Bruttomarge einfügen

Zur Verwendung der Funktion erstellt Ihr in der Sales Tabelle eine neue Spalte und ruft die Funktion mit folgendem Code auf:
Funktion einfügen

Eh voilà: die gewünschten Werte werden in der Tabelle Sales angezeigt.

Resultat Tabelle Sales

Weitere Lösungsmöglichkeiten

Während der Erstellung dieses Beitrags hat meine deutsche Kollegin, Imke Feldmann, eine alternative Lösung publiziert. Diese ist vor allem bei Tabellen mit sehr grossen Datenmengen geeignet. Den sehr lesenswerten englischen Artikel findet Ihr hier.

Mehr Artikel über Power Query findet Ihr im Power Query Online Buch.

Happy Querying!