Eine benutzerdefinierte Funktion verwendet die Formelsprache M, akzeptiert einen Satz von Eingabewerten und gibt dann einen einzelnen Ausgabewert zurück. Wenn Sie über Logik verfügen, die Sie mehrmals wiederverwenden oder denselben Satz von Transformationen auf eine andere Abfrage oder einen anderen Wert anwenden möchten, sollten Sie eine benutzerdefinierte Funktion erstellen und dann die Funktion aufrufen, wo und wann Sie sie benötigen. Es gibt mehrere Möglichkeiten, eine benutzerdefinierte Funktion zu erstellen:
-
Verwenden Sie die Erweiterter Editor, um Ihre eigene let-Anweisung hinzuzufügen und von Grund auf neu zu beginnen.
-
Verwenden Sie den Befehl Benutzerdefinierte Funktion aufrufen .
-
Es gibt zusätzliche Möglichkeiten zum Erstellen von Funktionen, die in diesem Hilfethema nicht erläutert werden, einschließlich der Befehle Funktion erstellen und Als Abfrage hinzufügen . Eine ausführliche Erläuterung finden Sie unter Grundlegendes zu Power Query M-Funktionen (docs.com)und Verwenden von benutzerdefinierten Funktionen (docs.com).
Im Folgenden finden Sie ein einfaches Beispiel für eine benutzerdefinierte Funktion, die einer langjährigen Programmiertradition folgt.
-
So erstellen Sie eine leere Abfrage:Excel Select Data > Get Data > From Other Sources > Leere Abfrage abrufen.Power Query Klicken Sie mit der rechten Maustaste auf eine leere Stelle im Bereich Abfragen auf der linken Seite, und wählen Sie dann Neue Abfrage > Andere Quellen > Leere Abfrage aus.
-
Doppelklicken Sie im Bereich Abfragen auf der linken Seite auf den Namen, und benennen Sie die neue leere Abfrage in "HelloWorld" um.
-
Wählen Sie die neue Abfrage und dann Start > Erweiterter Editor aus.
-
Ersetzen Sie den Vorlagenstartcode durch den folgenden Code:
let HelloWorld = () => ("Hello World") in HelloWorld
-
Wählen Sie Fertig aus.
-
Sie haben die Abfrage "HelloWorld" in eine benutzerdefinierte Funktion geändert. Beachten Sie, dass das Funktionssymbol links
. -
Um die Funktion aufzurufen, wählen Sie sie aus, und wählen Sie dann In Datenvorschau aufrufen aus.
-
Die Ergebnisse der Funktion werden in der Datenvorschau angezeigt und dem Bereich Abfragen als Abfrage mit dem Standardnamen Aufgerufene Funktion hinzugefügt. Möglicherweise möchten Sie es in einen aussagekräftigeren Namen umbenennen, z. B. "HelloWorldResult".
-
Wählen Sie diese Abfrage aus, und wählen Sie dann Start > Schließen & Laden aus, um die Ergebnisse in einem Arbeitsblatt anzuzeigen.
Ergebnisse
Das folgende Beispiel zeigt, wie Sie einen Parameter an eine benutzerdefinierte Funktion übergeben, um eine Dezimalzahl in hexadezimal zu konvertieren.
-
So erstellen Sie eine leere Abfrage:Excel Select Data > Get Data > From Other Sources > Leere Abfrage abrufen.Power Query Klicken Sie mit der rechten Maustaste auf eine leere Stelle im Bereich Abfragen auf der linken Seite, und wählen Sie dann Neue Abfrage > Andere Quellen > Leere Abfrage aus.
-
Benennen Sie im Bereich Abfragen auf der linken Seite die neue leere Abfrage in "MyHex" um.
-
Wählen Sie die neue Abfrage und dann Start > Erweiterter Editor aus.
-
Ersetzen Sie den Vorlagenstartcode durch den folgenden Code:
let MyHex = (parameter1) => Number.ToText(parameter1,"X") in MyHex
-
Wählen Sie Fertig aus.
-
Sie haben die Abfrage "MyHex" in eine benutzerdefinierte Funktion geändert. Beachten Sie, dass das Funktionssymbol links
. -
Um die Funktion aufzurufen, wählen Sie sie aus, geben Sie dann in der Datenvorschau eine Zahl in das Feld parameter1 ein, und wählen Sie Aufrufen aus.
-
Die Ergebnisse der Funktion werden in der Datenvorschau angezeigt und dem Bereich Abfragen als Abfrage mit dem Standardnamen Aufgerufene Funktion hinzugefügt. Sie können es in einen aussagekräftigeren Namen umbenennen, z. B. "MyHexResult".
-
Wählen Sie diese Abfrage aus, und wählen Sie dann Start > Schließen & Laden aus, um die Ergebnisse in einem Arbeitsblatt anzuzeigen.
Ergebnisse
Wenn Sie eine Funktion mit mindestens einem Parameter erstellt haben, können Sie sie als benutzerdefinierte Funktion aufrufen, um eine neue Spalte und einen neuen Wert für jede Zeile in einer Tabelle zu erstellen.
-
Suchen Sie zum Öffnen einer Abfrage, die zuvor aus dem Power Query-Editor geladen wurde, wählen Sie eine Zelle in den Daten aus, und wählen Sie dann Abfrage > Bearbeiten aus. Weitere Informationen finden Sie unter Erstellen, Bearbeiten und Laden einer Abfrage in Excel (Power Query).Anmerkung In diesem Beispiel benötigt Ihre Abfrage mindestens eine Spalte des Datentyps Ganze Zahl .
-
Erstellen Sie die benutzerdefinierte Funktion "MyHex", wie im Abschnitt Erstellen und Aufrufen einer benutzerdefinierten Funktion mit einem Parameter mit dem Erweiterter Editor erläutert.
-
Wählen Sie in der Abfrage Spalte hinzufügen > Benutzerdefinierte Funktion aufrufen aus. Das Dialogfeld Benutzerdefinierte Funktion aufrufen wird angezeigt.
-
Geben Sie im Feld Neuer Spaltenname den neuen Spaltennamen ein, z. B. "HexConvert".
-
Wählen Sie in der Dropdownliste Funktionsabfrage den Namen einer vordefinierten benutzerdefinierten Funktion aus. Wählen Sie in diesem Beispiel "MyHex" aus.
-
Da die benutzerdefinierte Funktion auf einen Parameter verweist, wird der Parameter jetzt angezeigt.
-
Wählen Sie eine Spalte des Datentyps Ganze Zahl als Parameter für die Funktion aus.
-
Wählen Sie OK aus.
Result
Es wird eine neue Spalte erstellt, die den Hexadezimalwert der Spalte Ganze Zahl anzeigt, die Sie als Parameter eingegeben haben.
Siehe auch
Hilfe zu Power Query für Excel
Erstellen von Power Query-Formeln in Excel
Erstellen einer Parameterabfrage