Xtract: Detaillierte Erklärung, wie Sie eine (nicht selbst erstellte, „gelieferte”) PQ-UDF (benutzerdefinierte Power Query-Funktion) in Ihr Projekt einbinden können.
Wissensstand: Level 3 ⇒ Excel GUT!, mindestens Basis-Kenntnisse in Power Query
Mitunter wird Ihnen von externen Quellen (beispielsweise aus Foren) eine speziell für Power Query erstellte UDF, eine vom Ersteller selbst erstellte Benutzerdefinierte Funktion zum Einsatz angeboten. Die Verwendung in PQ bedarf ‑genau wie in Plain Excel- einer Vorbereitung; die Function muss in das Projekt eingebunden werden. – An dieser Stelle jedoch schon einmal ein wichtiger Hinweis: Speziell in US-Foren und zunehmend auch in DE-Foren wird eine Problem-Lösung als M-Code, also als Text (statt einer*.xlsx) angeboten. Wenn es nicht ausdrücklich erwähnt wird, ist dieses so gut wie nie eine UDF; die von mir nachfolgend beschriebene Vorgehensweise bezieht sich ausschließlich auf für Power Query geschriebene Funktionen, auch wenn die Vorgehensweise partiell gleich ist wie beim „normalen” M-Code einer typischen Abfrage.
Sie befinden sich in einer existierenden Abfrage, in welche Sie die vorgestellte Funktion integrieren und einsetzen wollen. Wählen Sie dazu in Menü Start in der Gruppe Neue Abfrage den Punkt Neue Quelle:
Im Kontextmenü Klicken Sie dann auf Andere Quellen | Leere Abfrage. Automatisch wird eine neue Abfrage erstellt, welche beispielsweise den Namen Abfrage1 hat. Wenn das linke Seitenfenster mit der Übersicht aller Abfrage nicht eingeblendet ist empfehle ich Ihnen, den Bereich sichtbar zu machen.¿ Und sehen Sie sich einmal genau an, wie sich das darstellt:
Die aktuelle Query ist die Abfrage1. Wechseln Sie im Menü zu Ansicht und Klicken Sie in der Symbolleiste auf Erweiterter Editor. Ein neues Fenster wird geöffnet und dieses stellt sich so dar:
Hier wird Ihnen der M-Code einer aktiven Abfrage oder Funktion angezeigt. Derzeit ist ja die aktuelle Abfrage (noch ist es ja keine Funktion) ohne Daten, darum sehen sie auch nur das Grundgerüst. Für Testzwecke habe ich Ihnen eine extrem einfache und prinzipiell nicht notwendige UDF erstellt, denn die Multiplikation von zwei Zahlen lässt sich auch direkt in PQ einfacher bewerkstelligen. 😎 Aber es geht hier nicht um den Sinn dieser selbst definierten Funktion sondern darum, wie Sie einen gegebenen Funktions-Code in ihr Projekt einbinden. Hier nun der Code, den sie kopieren und anschließend verwenden können:
(Zahl1 as number, Zahl2 as number) as number => let Produkt = Zahl1*Zahl2 in Produkt
Und ja, ich hätte statt Zahl1 und Zahl2 natürlich Faktor1 und Faktor2 als Variablennamen verwenden können … 😛 Um diesen Code als künftige Funktion zu verwenden markieren Sie im Erweiterten Editor den kompletten vorgegebenen Code und ersetzen diesen durch den eben kopierten Inhalt der Zwischenablage. Klicken Sie auf Fertig, damit die Änderungen übernommen werden. Umgehend wird sich das PQ-Fenster so darstellen:
Im Hauptteil des Dialogs können Sie die Funktion beispielsweise zu Prüfzwecken direkt ausführen. Betrachten Sie aber noch einmal das linke Seitenfenster. Fällt Ihnen bei Abfrage1 etwas auf? Der Name dieses Objekts ist geblieben, jedoch ist das Symbol links ist nun das typische Symbol fx für eine Funktion. Power Query hat ohne ihr Zutun erkannt, dass es sich um eine Funktion und nicht eine „normale” Abfrage handelt. Die erste Zeile beginnt mit einer öffnenden Klammer (, es folgen hier die beiden Argumente mit Typisierung; nach der schließenden Klammer ) erkennen Sie noch eine Typisierung und die Zeichenfolge =>, welche im Endeffekt den Code als UDF charakterisiert.
Und last not least gebe ich jetzt noch der Funktion einen sinnvollen „sprechenden” Namen: Multiplikation 2 Zahlen. Und ich sichere diese UDF wie eine „gewöhnliche” Abfrage über den Weg Datei | Schließen & laden in… | Nur Verbindung erstellen, denn es soll ja kein Tabellenblatt damit „beglückt” werden. 😛
Wie Sie die jeweilige Funktion in ihrem Projekt anwenden, sollte vom Ersteller der UDF erklärt worden sein. In einem weiteren Beitrag werde ich Ihnen in unserem Blog genau das hier vorgestellte Multiplikation-Beispiel anhand einer realen *.xlsx in bekannter Ausführlichkeit demonstrieren.
Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?
Dann würde ich mich über einen Beitrag Ihrerseits z.B. 1,00 € freuen … (← Klick mich!)