Teil 2 dieser Serie beschäftigt sich mit der Frage, wie äußere Power Query Funktion und Lambda Expression miteinander interagieren.
Globale Syntax:
<outer_powerquery_function> ( ( <variable>, n ) => <lambda_expression> )
Die Details der Interaktion zwischen äußerer und innerer Funktion sind nicht Teil der MSDN Power Query Dokumentation und es liegt an Ihnen als Power Query Entwickler, sich eine Vorstellung davon zu machen, was diese unsichtbare Interaktion jeweils sein könnte. Nachdem Sie ein Vorstellung entwickelt haben, müssen sie diese verifizieren, um Schritt für Schritt zu einem tieferen Verständnis zu gelangen. Wenn Sie das Gefühl haben, die Funktion verstanden zu haben, sollten Sie in der Lage sein, die folgenden vier Fragen zu beantworten:
In diesem Artikel werden drei Power Query Funktionen für die Demonstration benutzt. Alle Funktionen haben Eines gemeinsam: Sie alle wenden Transformations-Logik auf die Input-Daten an:
MSDN-Syntax Hilfe:
List.Transform (
list as list,
transform as function) as list
Table.TransformRows(
table as table,
transform as function) as list
Record.TransformFields(
record as record,
transformOperations as list) as record
Alle drei oben erwähnten Power Query Funktionen führen ETL Aufgaben durch. "ETL" steht für "Extract / Transform / Load":
Die Lambda Expression innerhalb des Power Query Codes ist für den Transformations-Teil verantwortlich.
Alle drei Funktionen sind Iteratoren. Aus der OOP-Sicht implementieren sie alle eine Schleife:
Alle drei Funktionen liefern ein Objekt vom Typ "iterable" zurück:
Alle drei Funktionen verfügen über ein Argument vom Typ "function":
Eine Liste von drei Nummern wird deklariert.
Auf der linken Seite: Jede Nummer der Liste wird succesive der Lambda Variablen zugewiesen. Auf der rechten Seite: die Lambda Expression multipliziert die Nummer mit 10. Das Ergebnis wird in das Result Set eingefügt.
Die Eingabe ist eine Liste mit Nummern, die Schleife läuft drei Mal. In jedem Schleifen-Durchgang wird der konstante Wert "test" in das Result Set eingefügt.
Die Eingabe besteht aus einer Liste von Nummern, das Ergebnis ist eine Liste von Records. Abbildung 7 zeigt Record 1.
Die Eingabe ist eine Liste von Records. Unter Berücksichtigung dieser Tatsache wird die Lambda Variable "record" genannt. Die Lambda Expression auf der rechten Seite gibt ebenfalls einen Wert vom Typ Record zurück. Beides - "Id" und "Name" sind vom Eingabe-Record abgeleitet.
Die Eingabe besteht aus einer Liste von Listen. Unter Berücksichtigung dieser Tatsache ist der Name "list" für die Lambda Variable vergeben. Die Lambda Expression auf der rechten Seite berechnet die Anzahl der Elemente für jede Liste. Das erste Element ist eine Liste mit Nummern zwischen 1 und 3, das zweite Element ist eine Liste mit Buchstaben von "A" bis "G" und das dritte Element ist eine Liste mit Datums-Werten zwischen 01.07.2022 bis 10.07.2022.
Die Eingabe besteht aus einer Tabelle mit ihren Zeilen. Man könnte an dieser Stelle auch sagen: Die Eingabe besteht aus einer Liste von Records. Allerdings würde eine Liste von Records nicht verlangen, dass die Records das gleiche Layout haben. Grundsätzlich kann eine Liste ja sogar Elemente von unterschiedlichen Typen beinhalten. Bei einer Tabelle dagegen ist durch das Tabellen-Schema das gleiche Layout für jede Zeile festgelegt:
Für jede Zeile wird ein neuer Record in das Result Set eingefügt. Das Ergebnis ist also eine Liste von Records:
Inhalt der ersten Zeile:
Eine Herausforderung bei der Verwendung von "Table.TransformRows" besteht darin, die Liste der Records zurück zu konvertieren in eine Tabelle. Diese Aufgabe wird mit "Table.FromRecords" gelöst:
Schritt 1
Ein Record mit dem Namen "record0" mit vier Spalten wird deklariert.
Schritt 2
Das zweite Argument für "Record.TransformFields" ist eine Liste von Funktionen bzw. Lambda Expression. Im folgenden Beispiel werden zwei Lambda Expression zugewiesen, eine für die Spalte "Amount" und eine weitere für die Spalte "Date". Jede Spalte des Eingabe-Records, die nicht in der Liste der Transformationen erwähnt wird, wird in den Ergebnis-Record ohne Änderung übernommen. Dies trifft auf "CustId" und "CustName" zu. Jede Spalte, die in der Liste der Transformation erwähnt ist, wird zunächst transformiert und dann in den Ergebnis-Record eingefügt.
Die Syntax-Hilfe der MSDN enthält ein Beispiel, in dem die Funktion "Record.TransformFields" benutzt wird, um die Typen von Spalten zu modifizieren:
Bezüglich des MSDN-Beispiels kann man sich vorstellen, dass der Ausdruck "Number.FromText" von der Power Query Engine zunächst expandiert wird zu der Lambda Expression "(fieldValue) => Number.FromText (fieldValue)".
Mein Beispiel oben ist generischer. Es zeigt, dass die BuiltIn Funktion "Record.TransformFields" nicht nur dazu gedacht ist, Spalten-Typen zu transformieren, sondern dass Lambda Expressions - zusammen mit "Record.TransformFields" - alle mögliche Transformationen bewerkstelligen können.
Im Allgemeinen könnte das Beispiel auch dazu anregen, grundsätzlich darüber nachzudenken, welches Potential die Kombination von BuiltIn-Funktionen und Lambda Expressions abseits der vorkonfigurierten Beispiele bietet.
Wir erweitern ständig unser Beratungsportfolio. Über 500 Beratungsleistungen haben wir für Sie im Programm. Selbstverständlich lassen sich die einzelnen Themen kombinieren. So erhalten Sie genau die Beratung, die Sie wünschen und brauchen
Mehr IT-, Online-, Digital-Beratungsleistungen anzeigen >>Entwickeln Sie individuelle Geschäftsanwendungen ohne Programmierkenntnisse – mit Microsoft Power Apps! Entdecken Sie in unserem praxisnahen Grundlagen-Seminar, wie Sie Prozesse digitalisieren, Datenquellen integrieren und leistungsstarke Apps für Web und Mobilgeräte erstellen.
Schluss mit monotonen Excel-Aufgaben! Entdecken Sie die Magie der Automatisierung mit Power Automate. In unserem Expertenseminar lernen Sie, wie Sie Stunden an Arbeitszeit einsparen und Ihre Excel-Prozesse auf Autopilot schalten. Werden Sie zum Effizienz-Champion!
Entdecken Sie die nächste Stufe der Büroautomatisierung: Erweitern Sie Ihre Fähigkeiten in Power Automate Desktop für fortschrittliche Workflows, datengesteuerte Entscheidungen und nahtlose Systemintegrationen. Machen Sie den Schritt in eine effizientere Zukunft!
Nutzen Sie den vollen Umfang von Power BI und erlernen den Prozess der Erstellung von Dashboards in Power BI, dem leistungsstarken Tool für Geschäftsanalysen und Datenvisualisierung von Microsoft.
Entdecken Sie, wie Sie mit Power BI schnell Erkenntnisse aus Ihren Daten gewinnen können und Power BI für betriebswirtschaftliche Entscheidungen nutzen.
Power Automate Desktop richtet sich an kleine Unternehmen oder auch größere Firmen, die einfache oder komplexe regelbasierte Aufgaben auf ihren Computern ausführen wollen.
Wollen Sie mehr Zeit mit der Analyse von Daten verbringen als mit deren Verarbeitung? Power BI ermöglicht es Ihnen, Informationen digital und grafisch darzustellen, um die Ergebnisse der Datenanalyse zu vermitteln. Entdecken Sie fortgeschrittene Funktionen von Power BI .
Microsoft Power Automate ist ein großartiges Programm, das Ihnen hilft, sich wiederholende Aufgaben und Prozesse in Ihrem Arbeitsalltag zu optimieren.
Microsoft Power Pages bietet jedem, unabhängig von seinem technischen Hintergrund, eine effektive Plattform, um datengestützte, moderne und sichere Websites zu erstellen.
Mit Power BI Desktop werden Sie Erkenntnisse aus Ihren Daten gewinnen, unabhängig davon, ob diese Daten auf Ihrem Computer oder in der Cloud gespeichert sind.
Excel ist ein sehr, sehr leistungsfähiges Tool, aber Datenvisualisierung, Datenermittlung und Datenautomatisierung sind Funktionen, die sich in Power BI viel besser realisieren lassen. Das spart Ihnen eine Menge Zeit!
Die Microsoft Power Plattfom Apps ist eine No-Code und Low-Code-Anwendungsplattform mit hoher Produktivität, die Anwendern und Entwickler die Möglichkeit gibt individuelle Unternehmenslösungen einfach sowie schnell zu erstellen.
Microsoft Teams ist das am schnellsten wachsende Collaboration-Tool seit der Erfindung des Telefons. Aber wussten Sie, dass Microsoft Teams auch eine moderne Entwicklungsplattform ist?
Mit Power Apps und dem Dataverse für Microsoft Teams lassen sich ganz einfach benutzerdefinierte Apps für Ihre Abteilungen und das gesamte Unternehmen erstellen. Und das ohne eine einzige Zeile Code zu schreiben.
Mit Dataverse (ehemals Common Data Service - CDS) können Sie die Daten Ihres Unternehmens sicher speichern und für die Erstellung mobiler Geschäftsanwendungen nutzen.
Power Fx ist die Low-Code-Programmiersprache in der gesamten Microsoft Power Platform mit der gleichen Syntax und gleichen Funktionen wie Excel.
Microsoft Power Apps ermöglicht es jedem, robuste mobile Geschäftsanwendungen ohne Code zu erstellen.
So schaffen sie es 24 Stunden am Tag und 7 Tage die Woche für ihre Kunden präsent sein. Entdecken Sie, wie Sie mit Power Virtual Agents leistungsstarke Chatbots mit einer grafischen Oberfläche ohne Code erstellen können.
Mit dem AI Builder nutzen Sie KI-Automatisierung für Aufgaben wie Formularverarbeitung, Objekterkennung und Textklassifizierung und das ohne Programmierkenntnisse.
Power BI Dataflows sind eine effektive Lösung für Datenaufbereitung. Lernen Sie das Potenzial von Dataflows anhand praktischer Beispiele kennen und nutzen.
Power in Marketing und Vertrieb mit Microsoft Power BI: Entdecken Sie, wie Sie Power BI erfolgreich einsetzen können, um Ihre Marketing-, Vertriebs- und Verkaufsaktivitäten schnell und präzise zu bewerten.
Aktuelle und interessante Themen und Beiträge für Sie zusammengetragen und aufbereitet.
In Teil 1 dieser Serie über Lambda Expression wird gezeigt, wie Lambda Expressions innerhalb von Power Query Iteratoren arbeiten. Grundsätzlich ist nahezu jede Power Query Funktion ein Iterator. Durch das Platzieren von Lambda Expressions innerhalb von Power Query Funktionen, werden daher die Lambda Funktionen wiederholt aufgerufen. Bei jedem Aufruf werden dabei andere Daten an die Lambda Expression übergeben.