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!


So speichern und laden Sie eine RDS-Datei in R

So speichern und laden Sie eine RDS-Datei in R

Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.

Einführung in den Filterkontext in LuckyTemplates

Einführung in den Filterkontext in LuckyTemplates

In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.

Materialisierungsideen für Datencaches in DAX Studio

Materialisierungsideen für Datencaches in DAX Studio

In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.

Geschäftsberichte mit LuckyTemplates

Geschäftsberichte mit LuckyTemplates

Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst