Einer meiner Kunden möchte seine Umsätze nach Preiskategorien auswerten. Die Umsatzdaten werden aus einer SQL-Datenbank mittels Power Query abgerufen und aufbereitet. Die Frage lautet nun, wie sich in Power Query jeder Umsatz einer der fünf Preiskategorien (A bis E) zuordnen lässt.
Klingt nach einem ungefähren SVERWEIS in Power Query. Wie das durch Anfügen von Abfragen und anschließendes Sortieren realisiert werden kann, habe ich am 26.2.2019 im Blogbeitrag Ergebnisse in einer Auswertung gruppieren: Wie ich einen ungefähren SVERWEIS in Power Query realisiere gezeigt.
Eine Alternative zu diesem Vorgehen ist das Erstellen einer M-Funktion in Power Query. Das bietet zwei Vorteile:
Nachfolgend beschreibe ich, wie eine solche Funktion erstellt und angepasst wird und für welche Zwecke sie sich noch einsetzen lässt.
Zunächst lese ich – wie im Blogbeitrag vom 26.2.2019 beschrieben – die beiden Tabellen Umsatz und Kategorien in Power Query ein. Das Erstellen und Einbinden der Funktion funktioniert dann wie folgt:
let Quelle = "" in Quelle
durch
(Verkaufspreis as number) => let Quelle = Kategorien, Vergleich = Table.SelectRows(Quelle, each [von]<=Verkaufspreis and [bis unter]>Verkaufspreis), Ergebnis = if Table.RowCount(Vergleich) <> 1 then null else Vergleich{0}[Kategorie] in Ergebnis
Die Abfrage Umsatz erweitere ich nun wie folgt um eine Spalte:
Auf Basis dieser Abfrage wird jetzt die Pivot-Tabelle erstellt, die pro Kategorie den Umsatz anzeigt.
Die selbst erstellte M-Funktion kann ich leicht anpassen und dann für andere Aufgaben nutzen, beispielsweise, um
HINWEIS: Mehr zum automatisierten Aufbereiten von Daten mit Power Query und zur anschließenden Weiterverarbeitung mittels Datenmodell und DAX gibt es bei den Power BI-Kompetenztagen am 28./29. Oktober 2020 in Kursreihe 1.
Über den Autor