Existierende Power Query-UDF anwenden

Xtract: Am Beispiel ein­er existieren­den und bere­its einge­bun­de­nen sim­plen PQ-UDF wird die Anwen­dung schrit­tweise demon­stri­ert.

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

In diesem Beitrag unseres Blogs wurde Ihnen aufgezeigt, wie eine ein­fache Benutzerdefinierte PQ-Funk­tion (PQ-UDF) in Ihr Pro­jekt inte­gri­eren, ein­binden. Die Funk­tion hat den Namen Mul­ti­p­lika­tion 2 Zahlen und mul­ti­pliziert 2 als Argu­ment übergebene numerische Werte. Sie haben in dem Beitrag erkan­nt, dass Sie beispiel­sweise zu Prüfzweck­en im entsprechen­den Dia­log beliebige Zahlen eingeben und das Ergeb­nis dann über­prüfen kön­nen. Typ­is­cher­weise wer­den Sie aber solch eine Funk­tion direkt in der Abfrage ein­set­zen und sich auf Werte in existieren­den Spal­ten beziehen.

▲ nach oben …

Vorbereitung

Bevor Sie mit ihren eige­nen, realen Dat­en exper­i­men­tieren wer­den Sie vielle­icht mit ein­er von mir zur Ver­fü­gung gestell­ten Datei bessere (und auf jeden Fall risikolosere) Ver­gle­ichsmöglichkeit­en haben. Falls Sie das Ein­binden ein­er solchen PQ-UDF noch ein­mal üben wollen, bietet sich dieses File an. Möcht­en Sie mit der einge­bun­de­nen PQ-UDF gle­ich losle­gen, dann laden Sie diese Datei von unserem Serv­er herunter; dort ist schon eine Abfrage erstellt und die benutzerdefinierte Funk­tion bere­its einge­bun­den.

Die fol­gende Beschrei­bung geht davon aus, dass Sie sich im Abfrage-Edi­tor befind­en, die Query Abfrage1 geöffnet ist und die Funk­tion Mul­ti­p­lika­tion 2 Zahlen bere­its einge­bun­den ist.

▲ nach oben …

Der Test-Dialog

Wie eben beschrieben, stellt sich das Fen­ster mit ihrer Abfrage so dar:

Die Aus­gangslage mit der einge­bun­de­nen PQ-UDF

Da es hier ja nur um den Test der Funk­tion und eine kurze, logis­che Über­prü­fung des Ergeb­niss­es geht, ist die hierüber dargestellte Abfrage nicht rel­e­vant. Natür­lich kön­nen Sie 2 Werte aus der Abfrage ver­wen­den, aber ich per­sön­lich ziehe 2 bis 3 ganz sim­ple Tests wie beispiel­sweise 3 × 3, 4 × 2,5 oder 3,3 × 3,3 vor. Das in Excel als auch ein Pow­er Query das Mul­ti­p­lika­tion­sze­ichen nicht das × ist son­dern der *, das ver­ste­ht sich von alleine. 😉 Aber sie wer­den gle­ich erken­nen, dass Sie keinen Rechen­op­er­a­tor eingeben müssen (und auch nicht dür­fen), son­dern nur Mul­ti­p­lika­tor und Mul­ti­p­likand.

Klick­en Sie in diesem Sta­di­um ein­fach ein­mal im linken Seit­en­fen­ster auf die Zeile mit der Funk­tion. Ihr Bild­schirm wird sich nun so zeigen:

In die bei­den Textfelder Mul­ti­p­lika­tor und Mul­ti­p­likand eingeben …

Nach­dem Sie ihre bei­den Test­werte eingegeben haben Klick­en Sie auf die Schalt­fläche Aufrufen und das Ergeb­nis wird Ihnen sofort angezeigt. Es ist bemerkenswert, dass Sie die Eingabe von Dez­i­malzahlen lan­destyp­isch (hier in Deutsch­land also mit einem Dez­i­malkom­ma) vornehmen. Wenn Sie sich das Ergeb­nis dieses Funk­tion­saufrufs anse­hen, erken­nen Sie in der Edi­tierzeile dass PQ automa­tisch den Dez­i­malpunkt ver­wen­det; und beim Ergeb­nis kommt (wieder ein­mal) die Fließkom­ma-Prob­lematik zum Tra­gen. Sie hät­ten zurecht das Ergeb­nis 10,89 erwartet:

Das Ergeb­nis wird in ein­er sep­a­rat­en Abfrage gespe­ichert

Wenn Sie dieses Ergeb­nis in irgend ein­er Form noch weit­er ver­wen­den wollen, dann kön­nen Sie diese Abfrage beste­hen lassen oder in eine Liste kon­vertieren. Ich lösche sie wieder, denn die Funk­tion soll ja let­z­tendlich wie eine in PQ inte­gri­erte Funk­tion ver­wen­det wer­den.

Ich will Ihnen aber auch eine weit­ere Möglichkeit nicht ver­heim­lichen:

Recht­es Seit­en­fen­ster

Wenn Sie sich im Excel-Arbeits­blatt befind­en und im recht­en Seit­en­fen­ster einen Dop­pelk­lick auf die Funk­tion durch­führen, wird ein „schlanker“ Dia­log einge­blendet, wo Sie die bei­den Zahlen­werte eingeben kön­nen und nach einem Klick auf OK erstellt Excel das gle­iche Ergeb­nis wie zuvor als Pow­er Query-Abfrage, aber auf direk­tem Wege.

▲ nach oben …

Typischer Einsatz der (prinzipiell jeder) PQ-UDF

Aktivieren Sie nun die Query Abfrage1, wo ja mit­tels der PQ-UDF die Fläche aus Länge und Bre­ite berech­net wer­den soll. Und natür­lich sollen die Berech­nun­gen in der Spalte Fläche (cm²) durchge­führt bzw. aus­gegeben wer­den. Da tut sich aber schon das erste Prob­lem auf, denn im Gegen­satz zu ein­er tabel­lar­ischen Auf­stel­lung (nicht „Formatierte”/„Intelligente” Tabelle) in Excel kön­nen Sie in Pow­er Query nicht ein­fach den Inhalt ein­er Zelle durch eine Formel oder Funk­tion erset­zen. Also erstellen Sie eine neue, Benutzerdefinierte Spalte, wo automa­tisch in jed­er Zeile die Funk­tion-Berech­nung durchge­führt wird.

Aber da gibt es ein Prob­lem. Die Über­schrift der neuen Spalte soll natür­lich Fläche (cm²) sein und ihnen ist bekan­nt, dass in ein­er Tabelle keine zwei Spal­ten mit iden­tis­chem Namen (Über­schrift) existieren kön­nen. Da ich grund­sät­zlich faul bin, gehe ich so vor: Ich kopiere den Text der entsprechende Über­schrift in die Zwis­chen­ablage, lösche diese Spalte, erstelle die neue Spalte und füge dann den Inhalt der Zwis­chen­ablage als Über­schrift (Neuer Spal­tenname) für die neue Spalte ein. Anschließend trage ich (und tra­gen auch  Sie) in den Bere­ich Benutzerdefinierte Spal­tenformel diese Formel ein:

= #"Multiplikation 2 Zahlen"([#"Länge (cm)"],
[#"Breite (cm)"])

Nach dem bere­its vorgegebe­nen Gle­ich­heit­sze­ichen kommt die kor­rek­te Schreib­weise der selb­st erstell­ten Funk­tion. Danach eine öff­nende runde Klam­mer, gefol­gt von den bei­den erforder­lichen Argu­menten (Para­me­tern). Wobei Sie natür­lich die Spal­tenna­men aus dem Bere­ich Ver­füg­bare Spal­ten per Dop­pelk­lick übernehmen können.Abschließend fol­gt dann noch die schließende runde Klam­mer. Ich habe die Formel mehrzeilig eingegeben, damit sie über­sichtlich­er und somit bess­er les­bar ist.

Ach ja, dass der Funk­tion­sname mit ein­er Raute (#) begin­nt und in Gänse­füßchen ("") einge­fasst ist liegt daran, dass im Funk­tion­sna­men Leerze­ichen enthal­ten sind. Wäre es bei Abfrag1 geblieben, dann würde der exak­te und nicht durch # und Klam­mern erweit­erte Name aus­re­ichen. – Und nach einem Klick auf OK wird die Berech­nung der Flächen ruck zuck für jede Zeile der Abfrage durchge­führt. Bleibt in dieser Sit­u­a­tion prinzip­iell nur noch, die Spalte mit der Flächen­berech­nung an die kor­rek­te Posi­tion zu ver­schieben.

Hin­weis: In manchen Fällen haben Sie eine PQ-UDF vor­liegen, welche ohne Argu­mente genutzt wird. Denken Sie beim Aufruf daran, dass Sie auch hier die öff­nende und schließende Klam­mer ver­wen­den müssen.

Epilog

Dieses oder jenes ließe sich noch verän­dern oder anpassen. Pro­bieren Sie beispiel­sweise ein­mal, diese eben ver­wen­dete Funk­tion so anzu­passen, dass das Ergeb­nis in der Ein­heit m² (statt cm²) aus­gegeben wird; natür­lich muss dann auch die Über­schrift angepasst wer­den. 😉 Und dass Sie die Spalte mit der berech­neten Fläche (egal in welch­er Maßein­heit) als Argu­ment für die Vol­u­men­berech­nung mit exakt dieser PQ-UDF nutzen kön­nen, wird Ihnen bewusst sein. Die fer­tige Lösung kön­nen Sie übri­gens hier von unserem Serv­er herun­ter­laden.

Ein Hin­weis ist mir hier noch wichtig: Die vorgestellte Funk­tion ist prinzip­iell unvoll­ständig und nicht „kun­st­gerecht”. Im Nor­mal­fall ist min­destens eine Fehler­prü­fung erforder­lich, ob in bei­den Argu­menten auch ein numerisch­er Wert enthal­ten und auch nicht leer ist. Aber DAS war und ist ja nicht der zu ver­mit­tel­nde Lern­stoff dieser bei­den Blog-Beiträge.

▲ nach oben …

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

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

Dieser Beitrag wurde unter Power Query, PQ-Formeln (Sprache M), PQ-Funktionen & UDFs abgelegt und mit , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.