Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Für das heutige Tutorial erstellen wir eine benutzerdefinierte LuckyTemplates-Abfragefunktion, die sich mit einem häufigen, schwer zu handhabenden Format gestapelter Daten befasst. Diese Technik lässt sich problemlos auf mehrere Berichte und mehrere Tabellen anwenden. Das vollständige Video dieses Tutorials können Sie unten in diesem Blog ansehen.

Dies ist eine Fortsetzung des Tutorials, das ich kürzlich durchgeführt habe, in dem wir uns mit einem gängigen, schwer zu handhabenden Format gestapelter Daten befassten und Modulo, Pivot und einige Bereinigungsfunktionen mit Power Query verwendeten, um diese Daten in ein organisiertes und funktionales Format umzuwandeln.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Es ist sehr wahrscheinlich, dass Sie diesen Vorgang wiederholen müssen. Wenn diese Art von Format durch Kopieren und Einfügen entstanden ist, wird es wahrscheinlich wieder passieren. In diesem Fall möchten Sie also wahrscheinlich eine benutzerdefinierte Funktion erstellen, die für mehrere Berichte und mehrere Tabellen wiederverwendbar ist, unabhängig davon, wie sie benannt sind und was sich sonst noch in diesen Tabellen befindet.

Inhaltsverzeichnis

So erstellen und debuggen Sie benutzerdefinierte LuckyTemplates-Abfragefunktionen

Lassen Sie uns dazu auf Power Query eingehen. Wenn wir im erweiterten Editor zu unserer Datentabelle gehen, haben wir den M-Code, der zeigt, wie wir letztendlich von diesen Stapeldaten in das gewünschte Format übergegangen sind.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Wenn wir dies wiederverwenden möchten, klicken wir einfach mit der rechten Maustaste auf Daten und sagen „ Funktion erstellen“ .

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Es heißt, dass auf keinen Parameter verwiesen wird, aber es ist in Ordnung, eine Funktion ohne Parameter zu erstellen. Wir werden mit „Ja“ antworten, da wir die Parameter nach und nach im erweiterten Editor hinzufügen. Wir nennen diese Funktion „ Unstack – 3 Elements“ , nur weil wir die drei Zeilen im Rohformat haben. Wenn wir ein zweireihiges Format hätten, würden wir wahrscheinlich ein separates Format mit zwei oder vier Elementen erstellen.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Jetzt haben wir also diesen Invoke, wir haben keine Parameter, und gehen wir zum erweiterten Editor und beginnen mit der Arbeit an diesem.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Erstens brauchen wir diese Quelle nicht. Wir werden die Funktionsparameter verwenden, um unsere Quelle zu definieren.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Wir möchten den Parameter definieren, der eingegeben werden soll. Das machen wir mit einer offenen Klammer und dann einem Parameternamen. Nennen wir es „ Stack“ . Dabei handelt es sich um die eine Datenspalte, bei der es sich um die unformatierten Stack-Daten handelt, die durch das Einfügen der E-Mail-Adressen eingegangen sind.

Wir möchten, dass dies als Liste eingeht, und wir möchten, dass daraus eine Tabelle entsteht, denn wenn wir die Pivotierung von dieser einzelnen Spalte auf mehrere Spalten aufheben, wird es von einer Liste in eine Tabelle umgewandelt. Und jetzt müssen wir diese eingehende Liste in eine Tabelle konvertieren, damit wir unseren Index hinzufügen, unsere Modulo-Entpivotierung initiieren und alles tun können, was wir tun müssen, um sie neu zu formatieren.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Wir nennen es ConvertStack und verwenden dazu eine Funktion namens Table.FromList . Wie viele der M-Funktionen macht sie genau das, was sie soll. Es braucht nur eine Liste. In diesem Fall ist die Liste unsere Stack-Liste. Und dann müssen wir die Quelle hier durch unseren ConvertStack ersetzen. Es sieht ziemlich gut aus! Wir haben keine Syntaxfehler, also klicken wir auf „Fertig“.

Jetzt gibt es uns das, was wir wollten, nämlich die Möglichkeit, eine Spalte auszuwählen.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Dann wählen wir TestData aus, bei dem es sich um die falsch formatierten Daten handelt. Wir wählen die Spalte „Wert“ aus und klicken dann auf „OK“. Danach klicken wir auf „Invoke“.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Wir erhalten jedoch diesen Fehler. Es ist wirklich schwer, genau zu bestimmen, was dieser Fehler ist. Eines der Probleme bei benutzerdefinierten Funktionen besteht darin, dass sie die angewandten Schritte nicht aufschlüsseln, sondern nur einen Schritt für die gesamte benutzerdefinierte Funktion erhalten. Aber im Debugging, das ich Ihnen zeigen werde, gibt es einen Weg, das zu umgehen. Dadurch wird es viel einfacher herauszufinden, was hier vor sich geht.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Anstatt dies vorerst als Funktion auszuführen, werden wir es als Abfrage ausführen. Wir werden diesen Stack-Aufruf einfach manuell initiieren. Wir müssen definieren, was Stack ist, da wir ihn nicht durch die Interaktion zeichnen, indem wir ihn im Invoke auswählen. Wir haben also einen Stack gleich TestData und die Value-Spalte von TestData.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Es zerlegt es nun in die angewandten Schritte. Dies wird uns helfen herauszufinden, warum dies nicht funktioniert. Beachten Sie eine interessante Sache, wenn wir Stack einlesen. Anfangs werden TestData[Value] eingelesen, aber wenn wir es in eine Tabelle konvertieren, lautet der Spaltenkopf anstelle von „Value“ jetzt „Spalte1“.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Denken Sie an die Fehlermeldung, dass die Spalte „Wert“ nicht gefunden werden konnte. Der Grund dafür, dass die Spalte „Wert“ nicht gefunden werden konnte, liegt darin, dass die Funktion „Table.FromList“ diese in „Spalte1“ umbenennt.

Wenn wir die „Angewandten Schritte“ durchgehen, sehen Sie, dass wir im Schritt „Hinzugefügte benutzerdefinierte Schritte“ den Fehler erhalten. Hier wurde der Wert des Datensatzes nicht gefunden.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Wenn wir also zum erweiterten Editor gehen, finden wir das benutzerdefinierte Feld und können sehen, dass es sich in Text.Remove befindet, wo wir die Junk-Zeichen entfernen, die wir nicht brauchten, auf die es sich aber immer noch bezieht das Wertfeld. Wir werden das in Spalte1 ändern. Ebenso bezieht es sich im Feld „Entfernte Spalten“ auf „Wert“, also ändern wir es auch in „Spalte1“.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Und wenn wir am Ende der angewandten Schritte angelangt sind, ergibt sich das perfekte Endergebnis.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen

Jetzt, da wir wissen, dass es richtig funktioniert, müssen wir nur noch etwas tun. Denken Sie daran, dass wir zum Debuggen die benutzerdefinierte Funktion in eine Abfrage umgewandelt haben. Und jetzt müssen wir diese Abfrage wieder in eine Funktion umwandeln.

Benutzerdefinierte LuckyTemplates-Abfragefunktionen


Erstellen einer benutzerdefinierten Textreinigungsfunktion in Power Query
M-Code in benutzerdefinierten Power Query-Spalten | LuckyTemplates-
Funktionsabfrage und Operatoren im Abfrageeditor

Abschluss

In diesem Tutorial haben wir diese benutzerdefinierte Funktion erstellt, sie debuggt, getestet und sie funktioniert großartig. Und jetzt können wir jedes Mal, wenn wir einen Stapel mit drei Elementen haben, einfach diese Tabelle auswählen, diese Spalte in der Tabelle auswählen und diese benutzerdefinierte Funktion ausführen. Wenden Sie dann das Modulo an, das Unpivot und bereinigen Sie es.

Dies sollte Ihnen einige nützliche Tools zum Erstellen benutzerdefinierter Funktionen zur Verfügung stellen. Denken Sie auch an den Trick beim Debuggen, indem Sie es wieder in eine Abfrage von einer Funktion umwandeln und es nach dem Debuggen wieder zurückschalten. Es ist ein wirklich wertvolles Tool, das das Debuggen benutzerdefinierter Funktionen erheblich erleichtert.

Alles Gute!


Streudiagramm-Visualisierungen mit Charticulator

Streudiagramm-Visualisierungen mit Charticulator

In diesem Tutorial erfahren Sie, wie Sie mit Charticulator eine Streudiagramm-Visualisierung für Ihren LuckyTemplates-Bericht erstellen und entwerfen.

PowerApps-Suchfeld: So fügen Sie es hinzu und passen es an

PowerApps-Suchfeld: So fügen Sie es hinzu und passen es an

Erfahren Sie, wie Sie ein PowerApps-Suchfeld von Grund auf erstellen und es an das Gesamtthema Ihrer App anpassen.

Power Automate String-Funktionen: Substring und IndexOf

Power Automate String-Funktionen: Substring und IndexOf

Erlernen Sie ganz einfach zwei komplizierte Power Automate String-Funktionen, die in Microsoft Flows verwendet werden können – die Funktionen substring und indexOf.

Power Query M: Abwechselndes 0-1-Muster in der Datumstabelle

Power Query M: Abwechselndes 0-1-Muster in der Datumstabelle

Dieses Tutorial konzentriert sich auf die Power Query M-Funktion „number.mod“, um ein abwechselndes 0-1-Muster in der Datumstabelle zu erstellen.

Prognosetechnik: Erkundung der Prognoselogik in LuckyTemplates-Modellen

Prognosetechnik: Erkundung der Prognoselogik in LuckyTemplates-Modellen

In diesem Tutorial führe ich eine Prognosetechnik durch, bei der ich meine tatsächlichen Ergebnisse mit meinen Prognosen vergleiche und sie kumulativ betrachte.

Speichern Sie E-Mail-Anhänge in SharePoint mit Power Automate

Speichern Sie E-Mail-Anhänge in SharePoint mit Power Automate

In diesem Blog erfahren Sie, wie Sie mit Power Automate E-Mail-Anhänge automatisch in SharePoint speichern und E-Mails anschließend löschen.

Führen Sie eine Bis-Loop-Steuerung in Power Automate durch

Führen Sie eine Bis-Loop-Steuerung in Power Automate durch

Erfahren Sie, wie die Do Until Schleifensteuerung in Power Automate funktioniert und welche Schritte zur Implementierung erforderlich sind.

Berechnen eines gleitenden Durchschnitts in LuckyTemplates mithilfe von DAX

Berechnen eines gleitenden Durchschnitts in LuckyTemplates mithilfe von DAX

In diesem Tutorial erfahren Sie, wie Sie mithilfe der ALLSELECTED-Funktion einen dynamischen gleitenden Durchschnitt in LuckyTemplates berechnen können.

Berechnen Sie dynamisch eine laufende oder kumulative LuckyTemplates-Summe

Berechnen Sie dynamisch eine laufende oder kumulative LuckyTemplates-Summe

Durch diesen Artikel erhalten wir ein klares und besseres Verständnis für die dynamische Berechnung einer laufenden oder kumulativen Gesamtsumme in LuckyTemplates.

Power Automate auf jede Aktion in Workflows anwenden

Power Automate auf jede Aktion in Workflows anwenden

Erfahren und verstehen Sie die Bedeutung und ordnungsgemäße Verwendung der Power Automate-Aktionssteuerung „Auf jede anwenden“ in unseren Microsoft-Workflows.