Erstellen und Aufrufen einer benutzerdefinierten Funktion

Gilt für
Excel für Microsoft 365 Excel 2024 Excel 2021

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.

  1. 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.

  2. Doppelklicken Sie im linken Bereich " Abfragen " auf den Namen, und benennen Sie die neue leere Abfrage in HelloWorldum.

  3. Wählen Sie die neue Abfrage und dann Home>:Erweiterter Editor aus.

  4. Ersetzen Sie den Startcode der Vorlage durch den folgenden Code:
    let
         HelloWorld = () => ("Hello World")
    in
         HelloWorld

  5. Wählen Sie Fertig aus.

  6. Sie haben die Abfrage HelloWorldin eine benutzerdefinierte Funktion geändert. Beachten Sie das Funktionssymbol Funktionssymbol links daneben.

  7. Um die Funktion aufzurufen, wählen Sie sie aus, und wählen Sie dann In der Datenvorschau aufrufen aus.

    Aufrufen der benutzerdefinierten HelloWorld-Funktion

  8. 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.

  9. Wählen Sie diese Abfrage aus, und klicken Sie dann auf "Start>Schließen & Laden ", um die Ergebnisse in einem Arbeitsblatt anzuzeigen.

Ergebnisse

Ergebnisse von HelloWorld in einem Arbeitsblatt

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.

  1. 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.

  2. Benennen Sie im linken Bereich "Abfragen " die neue leere Abfrage in MyHexum.

  3. Wählen Sie die neue Abfrage und dann Home>:Erweiterter Editor aus.

  4. Ersetzen Sie den Startcode der Vorlage durch den folgenden Code:
    let
         MyHex = (parameter1) => Number.ToText(parameter1,"X")
    in
         MyHex

  5. Wählen Sie Fertig aus.

  6. Sie haben die Abfrage MyHexin eine benutzerdefinierte Funktion geändert. Beachten Sie das Funktionssymbol Funktionssymbol links daneben.

  7. 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.
    Aufrufen der benutzerdefinierten MyHex-Funktion

  8. 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.

  9. Wählen Sie diese Abfrage aus, und klicken Sie dann auf "Start>Schließen & Laden ", um die Ergebnisse in einem Arbeitsblatt anzuzeigen.

Ergebnisse

Ergebnis der MyHex-Funktion in einem Arbeitsblatt

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.

  1. 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 ".

  2. Erstellen Sie die MyHex benutzerdefinierte Funktion wie im Abschnitt Erstellen und Aufrufen einer benutzerdefinierten Funktion mit einem Parameter mit dem Erweiterten Editor erläutert.

  3. Wählen Sie in der Abfrage Spalte> hinzufügenBenutzerdefinierte Funktion aufrufen aus. Das Dialogfeld "Benutzerdefinierte Funktion aufrufen" wird angezeigt.

  4. Geben Sie im Feld Neuer Spaltenname den neuen Spaltennamen ein, z. BHexConvert. . . . .

  5. Wählen Sie den Namen einer vordefinierten benutzerdefinierten Funktion aus dem Dropdownmenü Funktionsabfrage aus. Wählen Sie MyHexin diesem Beispiel .

  6. Da die benutzerdefinierte Funktion auf einen Parameter verweist, wird der Parameter jetzt angezeigt.

  7. Wählen Sie eine Spalte mit dem Datentyp "Ganze Zahl " als Parameter für die Funktion aus.

    Das Dialogfeld

  8. 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.

Die neue MyHex-Spalte mit Werten in einem Arbeitsblatt

Siehe auch

Hilfe zu Power Query für Excel

Erstellen einer Parameterabfrage (Power Query)

Verwalten von Abfragen (Power Query)

Grundlegendes zu Power Query M-Funktionen

Verwenden benutzerdefinierter Funktionen