Der „wahre” M‑Code

Wis­sens­stand: Lev­el 4 ⇒ GUT! in PQ, Ver­ständ­nis für das Pro­gram­mieren

 

Pro­log über­sprin­gen

Die über­wiegende Anzahl der PQ-User schätzt Pow­er Query wegen der (meist) recht ein­fachen Hand­habung. Sehr viele der Arbeitss­chritte bei Stan­dard-Auswer­tun­gen ein­er Tabelle lassen sich per Mausklick erledi­gen. In der Edi­ti­er- bzw. Eingabezeile des Edi­tors wird automa­tisch jen­er M-Code gener­iert, welch­er im End­ef­fekt in der Abfrage gespe­ichert wird und dafür sorgt, dass bei neuen, aktu­al­isierten Dat­en immer wieder die gle­ichen Schritte in kor­rek­ter Rei­hen­folge abgear­beit­et wer­den.

Eine weit­ere Möglichkeit für anspruchsvollere Funk­tion­al­ität beste­ht ja darin, dass sie auf PQ-Funk­tio­nen zugreifen, welche mehr oder weniger gut doku­men­tiert im Inter­net bei Microsoft abruf­bar sind. Ich räume ein, dass der auf welchem Wege auch immer gener­ierte Code auch für erfahrene User nicht unbe­d­ingt auf den ersten Blick trans­par­ent erscheint. Dazu kommt, dass Sie ja immer nur den winzi­gen Auss­chnitt des ger­ade im recht­en Seit­en­fen­ster markierten Schritts in der Edi­tierzeile nachvol­lziehen bzw. analysieren kön­nen und nicht den Gesamt-Zusam­men­hang.

Und dann gibt es noch jene Zeitgenossen, die in Excel-Foren eine PQ-Lösung anbi­eten, die nicht Schritt für Schritt beschrieben ist son­dern wo ein­fach nur der kom­plette, zusam­menge­fasste Code „hin geklatscht” wird. In US-Fachforen ist das qua­si Stan­dard, ich sehe es aber als deut­lich weniger hil­fre­ich gegenüber der Beschrei­bung der einzel­nen Schritte, welche zum gewün­scht­en Ziel führen. In deutschen Foren empfinde ich es als ein­fach nur arro­gant und über­he­blich, wenn auss­chließlich dieser Code ohne zusät­zliche Erk­lärung „geliefert” wird. Aber es ist deut­lich beque­mer und ruft beim Hil­fe suchen­den oder auch bei Mitle­sern vielle­icht den Ein­druck her­vor, dass der Helfer ein Spezial­ist erster Klasse ist. Ich selb­st gehe auf diese Weise nur vor, wenn der Fragesteller bei mir das Gefühl her­vor­ruft, er sei doch der Größte und brauche nur im Aus­nah­me­fall ein­mal Hil­fe. So kann ich ihm oder ihr recht ele­gant zeigen, wo seine oder ihre Gren­zen in der Real­ität sind. 👿 Ich mag wed­er Ange­ber noch Über­he­blichkeit, möglichst noch ohne ein „bitte” oder „danke” im ersten Beitrag mit der Fragestel­lung.

Aber keine Regel ohne Aus­nahme. Seit Mitte 2024 bin ich dazu überge­gan­gen, meine Blog-Beiträge in Sachen Pow­er Query auch „nur noch“ mit kom­men­tiertem M-Code zu doku­men­tieren und im Foot­er auf die Möglichkeit hinzuweisen, dass ich auch die „Lang­form“ der vorgeschla­ge­nen Lösung zur Ver­fü­gung stellen kann. Für mich ist dieses der „Gold­ene Mit­tel­weg“ zwis­chen ein­er­seits den zeitlichen Gegeben­heit­en als auch dem men­tal­en Aufwand mein­er­seits und ander­er­seits dem immensen Non-Respond­ing der Leser meines Forums.

Fertige Code-Blöcke in das eigene Projekt einfügen oder selbst definierte Funktionen einbinden

In den vorher geschilderten Fällen stellt sich doch die Frage, wie solche Code-Blöcke in das eigene Pro­jekt einge­bun­den wer­den kön­nen. Von der Idee her ist es sehr ähn­lich wie ein Plain Excel, wo sie mit AltF11 den VBA Edi­tor öff­nen und dann entwed­er den eige­nen Code schreiben oder die kopierten Pro­gram­mzeilen ein­fü­gen. In Pow­er Query geht der Weg prinzip­iell über eine neue, Leere Abfrage. In den meis­ten Fällen wird der Aus­gangspunkt ein­er bere­its existierende Query sein, wo sie unter Umstän­den bere­its Dat­en importiert haben. Um in diesen Fällen solch eine „jungfräuliche” M-Code-Abfrage zu erstellen, gehen Sie so vor:

  • Menü Start, Neue Quelle | Andere Quellen | Leere Abfrage
  • Menü Ansicht, Erweit­ert­er Edi­tor was sich dann so darstellt:

Die leere Abfrage mit den min­i­mal­is­tis­chen Ein­tra­gun­gen

  • Schreiben Sie hier Ihre eigene Benutzerdefinierte Funk­tion, den entsprechen­den Code oder löschen Sie den vorgegebe­nen Funk­tions-Rumpf und fügen Sie den vorher kopierten Text des M-Codes oder der Benutzerdefinierten Funk­tion ein.
  • Wech­seln Sie wieder zu Ihrer Abfrage mit den bish­eri­gen Dat­en.

Pro­bieren Sie aus, ob Ihr Vorhaben von Erfolg gekrönt war. Unter Umstän­den müssen Sie noch Änderun­gen im Code vornehmen. Dazu wech­seln Sie über Ansicht | Erweit­ert­er Edi­tor wieder zum reinen M-Code und führen dort die erforder­lichen Anpas­sun­gen durch.

Möcht­en Sie von vorn­here­in in ein­er (auch noch leeren) Excel-Arbeitsmappe eine solche Leere Abfrage ein­fü­gen ohne dass der Pow­er Query-Edi­tor geöffnet ist, gehen Sie im entsprechen­den Arbeits­blatt über Dat­en | Dat­en abrufen | Aus anderen Quellen | Leere Abfrage und Excel wird automa­tisch den Pow­er Query Edi­tor öff­nen, wo Sie entwed­er in die Edi­tierzeile eine Funk­tion direkt ein­tra­gen oder natür­lich wieder zum Erweit­erten Edi­tor wech­seln kön­nen.

▲ 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,50  freuen …

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