Einstieg in Power Query Formula Language (M) – Syntax (Teil 2/3)

Power Query Formula Language ist die Sprache, die man beherrschen sollte, um in Power Query eigene Transformationen umzusetzen. Nachdem er im ersten Teil die Grundlagen abgehandelt hat, gibt Philipp Rouaiha nun einen kurzen Überblick über die Basiselemente der Syntax und schafft damit die Voraussetzung, um dann im nächsten Schritt im Editor eigene Abfragen erstellen zu können.

Power Query Formula Language ist die Sprache, die man beherrschen sollte, um in Microsoft Power Query eigene Transformationen umzusetzen. Nachdem er im ersten Teil die Grundlagen abgehandelt hat, gibt Philipp Rouaiha nun einen kurzen Überblick über die Basiselemente der Syntax und schafft damit die Voraussetzung, um dann im nächsten Schritt im Editor eigene Abfragen erstellen zu können.

Los geht es mit der Erstellung einer neuen Abfrage über das Power Query Ribbon („Externe Daten abrufen“ -> „Aus anderen Quellen“ -> „Leere Abfrage“) mit folgendem Inhalt:

 

Das Keyword „let“ eröffnet den Bereich, in dem Variablen, Listen, Quellen etc. definiert werden, die im weiteren Verlauf verwendet werden. Nach dem Keyword „in“ wird der gewünschte Output angegeben oder aus den definierten Objekten berechnet bzw. zusammengesetzt.

Hinweis: Die Sprache ist „Case-Sensitive“, d.h. „Quelle“ ist nicht gleich „quelle“.

Wie in der Abfrage oben zu sehen ist, gibt es zwei Möglichkeiten, um Kommentare zu platzieren, entweder ein- oder mehrzeilig.

Im Unterschied zu anderen Sprachen erfolgt die Wertzuweisung über ein einfaches „=“.

 

Die wichtigsten Sprachelemente

Listen

Eine Liste ist eine sortierte Reihe von Werten, die auch aus gemischten Datentypen bestehen kann.

Syntax:

Records

Ein Record ist eine Menge von Feldern, die sich jeweils aus dem Paar Name und Wert zusammensetzen.

Syntax:

Tabellen

Innerhalb einer Query kann eine Tabelle als Variable erzeugt werden, indem die Spaltennamen und optional Zeileninhalte angegeben werden.

Syntax:

Funktionen

Ein weiteres mächtiges Werkzeug sind Funktionen. Dies sind Programmstücke, die aus Eingabeparametern ihre Ergebnismengen berechnen. Mithilfe der Parameter lassen sich Rechnungen dynamisch gestalten.

Syntax:

Abfrage:

 

In dieser Abfrage ist nur die Funktion selbst definiert, ohne Berücksichtigung der Parameter. Diese ist dann im Workbook verfügbar. Nach Doppelklick kommt ein Dialog zur Abfrage der Parameter, danach öffnet sich eine neue Abfrage im Editor.

 

Abbildung 6: Aufruf einer Funktion, Quelle: eigene Darstellung

 

In der neuen Abfrage wird nun die vorherige Abfrage aufgerufen, was daran zu erkennen ist, dass nicht der Funktionsname selbst, sondern der Name der Abfrage angegeben wird.

Andere Abfrage als Parameter

In folgender Funktion ist der Parameter eine Liste:

Über dieses Icon im Power Query Ribbon kann eine einfache Abfrage erstellt werden, die auf den folgenden Tabellenbereich aus dem Workbook zugreift:

Wenn nun die Funktion mit dem Listen-Parameter aufgerufen wird, können im folgenden Dialog Spalten aus vorhandenen Abfragen ausgewählt werden (siehe Abbildung 7).

Hier werden nur Abfragen zur Wahl gestellt, nicht jedoch Tabellenblätter selbst.

Abbildung 7: Andere Abfragen als Funktionsparameter, Quelle: eigene Darstellung

 

Um die Funktion innerhalb einer Abfrage direkt zu verwenden, wird sie, anders als zuvor, mit Parametern aufgerufen.

Abfrage:

Dies war ein kurzer Überblick über die gängigsten Elemente der Sprache. Die komplette, umfassende Sprachreferenz ist unter folgendem Link zu finden: Microsoft Power Query Formula resources.

Im dritten und letzten Blog Post dieser Reihe geht es dann darum, die Sprache an einem gängigen praktischen Beispiel anzuwenden – der Erzeugung einer eigenen Zeit-Dimension.

Philipp Rouaiha

Philipp Rouaiha ist seit mehreren Jahren als Berater im Data Warehouse- und Business Intelligence-Bereich unterwegs. Hier entwickelt er Lösungen auf Basis des Microsoft BI-Stacks und realisiert Datenanbindungen an SAP mithilfe des pmOne-Werkzeugkastens. Darüber hinaus engagiert er sich im OneLab Self Service-BI.

Blog-Beiträge von diesem Autor