Eine benutzerdefinierte Funktion verwendet die Formelsprache M, nimmt eine Reihe von Eingabewerten und gibt dann einen einzelnen Ausgabewert zurück. Wenn Sie über Logik verfügen, die Sie viele Male wiederverwenden oder denselben Satz von Transformationen auf eine andere Abfrage oder einen anderen Wert anwenden möchten, sollten Sie eine benutzerdefinierte Funktion erstellen und die Funktion dann an einem Ort und zu einem späteren Zeitpunkt aufrufen. Es gibt mehrere Möglichkeiten, eine benutzerdefinierte Funktion zu erstellen:
- Verwenden Sie den Erweiterten Editor, um Ihre eigene let-Anweisung hinzuzufügen und ganz von vorne zu beginnen.
- Verwenden Sie den Befehl "Benutzerdefinierte Funktion aufrufen ".
- Es gibt zusätzliche Möglichkeiten zum Erstellen von Funktionen, die in diesem Hilfethema nicht behandelt 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 und Verwenden benutzerdefinierter Funktionen.
Erstellen und Aufrufen einer einfachen benutzerdefinierten Funktion mit dem Erweiterten Editor
Das folgende Beispiel zeigt eine einfache benutzerdefinierte Funktion, die einer langjährigen Programmiertradition folgt.
Erstellen Sie eine leere Abfrage:
ExcelDaten> auswählenDaten>aus anderen Quellen> abrufenLeere Abfrage.
Power Query Klicken Sie mit der rechten Maustaste auf eine leere Stelle im Abfragebereich auf der linken Seite, und wählen Sie dann Neue Abfrage>Andere Quellen>Leere Abfrage aus.
Doppelklicken Sie im linken Bereich " Abfragen " auf den Namen, und benennen Sie die neue leere Abfrage in
HelloWorldum.Wählen Sie die neue Abfrage und dann Home>:Erweiterter Editor aus.
Ersetzen Sie den Startcode der Vorlage durch den folgenden Code:
let
HelloWorld = () => ("Hello World")
in
HelloWorldWählen Sie Fertig aus.
Sie haben die Abfrage
HelloWorldin eine benutzerdefinierte Funktion geändert. Beachten Sie das Funktionssymbol
links daneben.Um die Funktion aufzurufen, wählen Sie sie aus, und wählen Sie dann In der Datenvorschau aufrufen aus.
Die Ergebnisse der Funktion werden in der Datenvorschau angezeigt und dem Abfragebereich als Abfrage mit dem Standardnamen Invoked Function hinzugefügt. Vielleicht möchtest du es in etwas Aussagekräftigeres umbenennen, z. B
HelloWorldResult.Wählen Sie diese Abfrage aus, und klicken Sie dann auf "Start>Schließen & Laden ", um die Ergebnisse in einem Arbeitsblatt anzuzeigen.
Ergebnisse
Erstellen und aufrufen einer benutzerdefinierten Funktion mit einem Parameter im Erweiterten Editor
Im folgenden Beispiel wird gezeigt, wie Sie einen Parameter an eine benutzerdefinierte Funktion übergeben, um eine Dezimalzahl in eine Hexadezimalzahl zu konvertieren.
Erstellen Sie eine leere Abfrage:
ExcelDaten> auswählenDaten>aus anderen Quellen> abrufenLeere Abfrage.
Power Query Klicken Sie mit der rechten Maustaste auf eine leere Stelle im Abfragebereich auf der linken Seite, und wählen Sie dann Neue Abfrage>Andere Quellen>Leere Abfrage aus.
Benennen Sie im linken Bereich "Abfragen " die neue leere Abfrage in
MyHexum.Wählen Sie die neue Abfrage und dann Home>:Erweiterter Editor aus.
Ersetzen Sie den Startcode der Vorlage durch den folgenden Code:
let
MyHex = (parameter1) => Number.ToText(parameter1,"X")
in
MyHexWählen Sie Fertig aus.
Sie haben die Abfrage
MyHexin eine benutzerdefinierte Funktion geändert. Beachten Sie das Funktionssymbol
links daneben.Wählen Sie die Funktion aus, um sie aufzurufen. Geben Sie 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. Power Query fügt die Ergebnisse dem Abfragebereich als Abfrage mit dem Standardnamen Invoked Function hinzu. Vielleicht möchtest du es in etwas Aussagekräftigeres umbenennen, z. B
MyHexResult.Wählen Sie diese Abfrage aus, und klicken Sie dann auf "Start>Schließen & Laden ", um die Ergebnisse in einem Arbeitsblatt anzuzeigen.
Ergebnisse
Hinzufügen einer Spalte durch Aufrufen einer benutzerdefinierten Funktion
Wenn Sie eine Funktion mit mindestens einem Parameter erstellen, 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.
Um eine Abfrage zu öffnen, suchen Sie eine, 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).
Hinweis
In diesem Beispiel benötigt Ihre Abfrage mindestens eine Spalte des Datentyps "Ganze Zahl ".
Erstellen Sie die
MyHexbenutzerdefinierte Funktion wie im Abschnitt Erstellen und Aufrufen einer benutzerdefinierten Funktion mit einem Parameter mit dem Erweiterten Editor erläutert.Wählen Sie in der Abfrage Spalte> hinzufügenBenutzerdefinierte 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 den Namen einer vordefinierten benutzerdefinierten Funktion aus dem Dropdownmenü Funktionsabfrage aus. Wählen Sie
MyHexin diesem Beispiel .Da die benutzerdefinierte Funktion auf einen Parameter verweist, wird der Parameter jetzt angezeigt.
Wählen Sie eine Spalte mit dem Datentyp "Ganze Zahl " als Parameter für die Funktion aus.
Wählen Sie OK aus.
Ergebnis
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 einer Parameterabfrage (Power Query)
Verwalten von Abfragen (Power Query)