UDF (Benutzerdefinierte Funktion) in Power Query einbinden

Xtract: Detail­lierte Erk­lärung, wie Sie eine (nicht selb­st erstellte, „gelieferte”) PQ-UDF (benutzerdefinierte Pow­er Query-Funk­tion) in Ihr Pro­jekt ein­binden kön­nen.

  Wis­sens­stand: Lev­el 3 ⇒  Excel GUT!, min­destens Basis-Ken­nt­nisse in Pow­er Query   

Mitunter wird Ihnen von exter­nen Quellen (beispiel­sweise aus Foren) eine speziell für Pow­er Query erstellte UDF, eine vom Ersteller selb­st erstellte Benutzerdefinierte Funk­tion zum Ein­satz ange­boten. Die Ver­wen­dung in PQ bedarf ‑genau wie in Plain Excel- ein­er Vor­bere­itung; die Func­tion muss in das Pro­jekt einge­bun­den wer­den. – An dieser Stelle jedoch schon ein­mal ein wichtiger Hin­weis: Speziell in US-Foren und zunehmend auch in DE-Foren wird eine Prob­lem-Lösung als M-Code, also als Text (statt einer*.xlsx) ange­boten. Wenn es nicht aus­drück­lich erwäh­nt wird, ist dieses so gut wie nie eine UDF; die von mir nach­fol­gend beschriebene Vorge­hensweise bezieht sich auss­chließlich auf für Pow­er Query geschriebene Funk­tio­nen, auch wenn die Vorge­hensweise par­tiell gle­ich ist wie beim „nor­malen” M-Code ein­er typ­is­chen Abfrage.

Sie befind­en sich in ein­er existieren­den Abfrage, in welche Sie die vorgestellte Funk­tion inte­gri­eren und ein­set­zen wollen. Wählen Sie dazu in Menü Start in der Gruppe Neue Abfrage den Punkt Neue Quelle:

Eine neue Abfrage händisch erstellen…

Im Kon­textmenü Klick­en Sie dann auf Andere Quellen | Leere Abfrage. Automa­tisch wird eine neue Abfrage erstellt, welche beispiel­sweise den Namen Abfrage1 hat. Wenn das linke Seit­en­fen­ster mit der Über­sicht aller Abfrage nicht einge­blendet ist empfehle ich Ihnen, den Bere­ich sicht­bar zu machen.¿ Und sehen Sie sich ein­mal genau an, wie sich das darstellt:

Die leere, neue Abfrage mit sicht­barem linken Seit­en­fen­ster

Die aktuelle Query ist die Abfrage1. Wech­seln Sie im Menü zu Ansicht und Klick­en Sie in der Sym­bol­leiste auf Erweit­ert­er Edi­tor. Ein neues Fen­ster wird geöffnet und dieses stellt sich so dar:

Die neu erstellte Abfrage mit dem „Dummy”-Default-Inhalt

Hier wird Ihnen der M-Code ein­er aktiv­en Abfrage oder Funk­tion angezeigt. Derzeit ist ja die aktuelle Abfrage (noch ist es ja keine Funk­tion) ohne Dat­en, darum sehen sie auch nur das Grundgerüst. Für Testzwecke habe ich Ihnen eine extrem ein­fache und prinzip­iell nicht notwendi­ge UDF erstellt, denn die Mul­ti­p­lika­tion von zwei Zahlen lässt sich auch direkt in PQ ein­fach­er bew­erk­stel­li­gen. 😎 Aber es geht hier nicht um den Sinn dieser selb­st definierten Funk­tion son­dern darum, wie Sie einen gegebe­nen Funk­tions-Code in ihr Pro­jekt ein­binden. Hier nun der Code, den sie kopieren und anschließend ver­wen­den kön­nen:

(Zahl1 as number, Zahl2 as number) as number =>
let
    Produkt = Zahl1*Zahl2
in
    Produkt

Und ja, ich hätte statt Zahl1 und Zahl2 natür­lich Faktor1 und Faktor2 als Vari­ablenna­men ver­wen­den kön­nen … 😛 Um diesen Code als kün­ftige Funk­tion zu ver­wen­den markieren Sie im Erweit­erten Edi­tor den kom­plet­ten vorgegebe­nen Code und erset­zen diesen durch den eben kopierten Inhalt der Zwis­chen­ablage. Klick­en Sie auf Fer­tig, damit die Änderun­gen über­nom­men wer­den. Umge­hend wird sich das PQ-Fen­ster so darstellen:

Nach dem spe­ich­ern der UDF gibt es die Möglichkeit der Prü­fung

Im Haupt­teil des Dialogs kön­nen Sie die Funk­tion beispiel­sweise zu Prüfzweck­en direkt aus­führen. Betra­cht­en Sie aber noch ein­mal das linke Seit­en­fen­ster. Fällt Ihnen bei Abfrage1 etwas auf? Der Name dieses Objek­ts ist geblieben, jedoch ist das Sym­bol links ist nun das typ­is­che Sym­bol fx für eine Funk­tion. Pow­er Query hat ohne ihr Zutun erkan­nt, dass es sich um eine Funk­tion und nicht eine „nor­male” Abfrage han­delt. Die erste Zeile begin­nt mit ein­er öff­nen­den Klam­mer (, es fol­gen hier die bei­den Argu­mente mit Typ­isierung; nach der schließen­den Klam­mer ) erken­nen Sie noch eine Typ­isierung und die Zeichen­folge =>, welche im End­ef­fekt den Code als UDF charak­ter­isiert.

Und last not least gebe ich jet­zt noch der Funk­tion einen sin­nvollen „sprechen­den” Namen: Mul­ti­p­lika­tion 2 Zahlen. Und ich sichere diese UDF wie eine „gewöhn­liche” Abfrage über den Weg Datei | Schließen & laden in… | Nur Verbindung erstellen, denn es soll ja kein Tabel­len­blatt damit „beglückt” wer­den. 😛 


Wie Sie die jew­eilige Funk­tion in ihrem Pro­jekt anwen­den, sollte vom Ersteller der UDF erk­lärt wor­den sein. In einem weit­eren Beitrag werde ich Ihnen in unserem Blog genau das hier vorgestellte Mul­ti­p­lika­tion-Beispiel anhand ein­er realen *.xlsx in bekan­nter Aus­führlichkeit demon­stri­eren.

▲ nach oben …

Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?

Dann würde ich mich über einen Beitrag Ihrer­seits z.B. 1,00  freuen … (← Klick mich!)

Dieser Beitrag wurde unter Coding / Programmieren, Power Query, PQ-Funktionen & UDFs abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.