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.
In diesem Blogbeitrag werfen wir einen Blick auf eine Frage, die im LuckyTemplates-Forum gestellt wurde, und verwenden eine LuckyTemplates-Technik der DAX-Sprache, um sie zu lösen. Wenn Sie mitmachen und die Dateien herunterladen möchten, besuchen Sie einfach das LuckyTemplates-Forum und gehen Sie zu . Das vollständige Video dieses Tutorials können Sie unten in diesem Blog ansehen.
Um das Szenario zu erklären, das wir behandeln werden, haben wir eine einfache Tabelle als Beispiel. In der ersten Spalte haben wir die Finanzebene 1 . In der zweiten Spalte haben wir ein Datum mit der Bezeichnung „Abgeschlossen“. In der letzten Spalte haben wir die Kombination aus Finanzebene und Abschlussdatum, die wir „Umsatz“ nennen .
Dann haben wir einen Slicer für das Datum und den Kundennamen .
Was wir für einen bestimmten Zeitraum tun möchten, ist, die drei wichtigsten Daten zu identifizieren, die nicht Null sind. Und dann wollen wir an diesen drei Top-Daten die finanzielle Ebene ermitteln.
In der ersten Version der Maßnahme habe ich die Daten aufgelistet, die vor dem 29.04.2021 liegen und an denen wir einige Einnahmen haben.
Und an diesen Terminen möchten wir die Finanzebenen ermitteln, die zu einigen Einnahmen geführt haben. Ich werde Ihnen erklären, wie wir diese Berechnung erreichen können.
Inhaltsverzeichnis
Datenmodellierung
Bevor wir den eigentlichen DAX schreiben, werfen wir einen kurzen Blick auf das Datenmodell, das mehrere Tabellen enthält. Wir sind nur an der Datumstabelle , der Datentabelle , der Jobkategorietabelle und der Kundentabelle interessiert .
Beachten Sie, dass die Customer-Tabelle nicht wirklich wichtig ist, da sie nur innerhalb eines Slicers verwendet wird.
Die Umsatzkennzahl wird in der Datentabelle berechnet. Die Kategorie „Job“ enthält die finanzielle Ebene, die wir in der Matrix haben. Dann verwenden wir die Datumsspalte aus der Datumstabelle in unserem Slicer.
Version 1
Lassen Sie uns alles aus der Matrix entfernen und von vorne beginnen. Ich werde eine neue Kennzahl erstellen und sie V1 nennen, da dies Version eins sein wird. Wir werden uns auch zwei weitere Varianten ansehen.
Vorbereiten des Filterkontexts
Als Erstes werden wir alle Werte der Finanzebene aus dem Filterkontext abrufen. Wir erstellen eine und benennen sie als FinancialLevelInFilterContext .
Um die Werte aus dem Filterkontext abzurufen, verwenden wir die für die Jobkategorietabelle, die die Spalte „Finanzebene“ enthält. Dann müssen wir eine weitere Variable erstellen und sie Result nennen . Schreiben Sie dann und schließen Sie es ebenfalls.
Im ersten Argument haben wir eine Auswahl über den Datumsschneider. In diesen Daten möchten wir die Daten identifizieren, die keine 0 haben und zumindest einen gewissen Umsatz haben.
Wenn Sie auf alle in diesem Slicer ausgewählten Daten zugreifen möchten, müssen wir die über der Datumstabelle verwenden.
Und da wir die Finanzebene in der Matrix haben, müssen wir auch sicherstellen, dass wir diesen bestimmten Wert aus dem Filterkontext entfernen. Wir können die für die Jobkategorie verwenden und dann Finanzebene 1 schreiben.
Nachdem unser Filterkontext nun vorbereitet ist, können wir die innerste Berechnung für CALCULATE schreiben. Zuerst deklarieren wir eine Variable, die eine Kombination aus der Finanzebene und der Datumsspalte ist, wie wir in der ersten Tabelle gesehen haben.
Dann verwenden wir die und verwenden die Datentabelle, um diese beiden Tabellen zusammenzufassen: Jobkategorie und Datumstabelle.
Dadurch wird die Kombination aus der Finanzebene und der Datumsspalte bereitgestellt, die in der Datentabelle vorhanden ist. Dann erstellen wir eine weitere Variable, in der wir den Wert der Umsatzzeile für die erste von uns erstellte Variable speichern.
Der Name dieser Variablen lautet FinancialLevelAndDatesWithRevenue . Der Code dieser Variablen ist gegenüber der vorherigen Variablen. Anschließend erstellen wir eine virtuelle Spalte „Umsatz“, um den Kontextübergang einzuleiten. Daher haben wir jeder Zeile dieser Variablen den Umsatz zugewiesen.
Diese Tabelle enthält die Einnahmen, die ebenfalls Null haben. Wir müssen diese Zeilen mit Null herausfiltern. Dazu können wir eine weitere Variable erstellen und sie RemoveZeroes nennen .
Wir verwenden die für die vorherige Variable und stellen dann sicher, dass der Umsatz nicht gleich Null ist. Er kann größer als Null oder kleiner als Null sein, sollte aber nicht unbedingt gleich Null sein.
Und dann werden wir das Datum aus der Variable RemoveZeroes abrufen . Dazu können wir eine weitere Variable erstellen und sie KeepOnlyDates nennen .
Ich kann die verwenden , um die doppelten Datumsangaben zu entfernen, die von der zurückgegeben werden .
Als Nächstes ermitteln wir die drei besten Termine in absteigender Reihenfolge. Wir verwenden eine andere Variable und nennen sie Last3Dates und verwenden dann die .
Dann verwenden wir für die letzten drei Daten in der Datumsspalte und verwenden dann ein Trennzeichen.
Lassen Sie uns unsere neu erstellte Kennzahl per Drag & Drop in diese Matrix ziehen. Das Ergebnis, das wir erhalten, ist der 31.03.2021, der 07.04.2021 und der 02.04.2021. Das bedeutet, dass unsere Maßnahme funktioniert.
Kehren wir zum Editor zurück und entfernen wir den RETURN CONCATENATEX-Teil. Um diese letzten drei Daten abzurufen, können wir prüfen, welche Zeilen aus der Variable „RemoveZeroes“ tatsächlich Teil dieser letzten drei Daten sind.
Und dafür erstellen wir eine weitere Variable DatesInLast3Dates und verwenden die Funktion FILTER für RemoveZeroes . Dadurch wird eine Tabelle zurückgegeben, die aus einer Jobkategorie und einem Datum besteht.
Wir werden die von uns erstellte Umsatzspalte in dieser Tabelle zusammenfassen. Lassen Sie uns SUMX über DatesInLast3Dates zurückgeben und dann die Umsatzspalte zusammenfassen.
Bei dieser Berechnung erhalten wir nur einen einzigen Wert für jede Zeile, da wir die Kategorie „Job“ aus dem Filterkontext entfernt haben.
Wir verwenden die Variable, die wir zu Beginn erstellt haben, um zu prüfen, ob jede Zeile der Variable „DatesInLast3Dates “ im Filterkontext verfügbar ist. Wir können eine weitere Variable schreiben und sie IsInFilterContext nennen .
Dadurch werden die Daten in der Variable „DatesInLast3Dates“ gefiltert . Dann gebe ich SUMX über den IsInFilter-Kontext zurück und fasse die Umsatzspalte zusammen.
Sobald wir die Eingabetaste drücken , können Sie sehen, dass wir das gleiche Ergebnis wie am Anfang erhalten.
Überprüfen des Ergebnisses der DAX Language LuckyTemplates-Berechnung
Um zu überprüfen, ob wir tatsächlich das richtige Ergebnis erhalten, können wir eine neue CALCULATE-Tabelle erstellen, die uns beim Debuggen, Identifizieren und Überprüfen hilft, ob der Code, den wir bisher geschrieben haben, tatsächlich das richtige Ergebnis zurückgibt.
Erstellen wir eine Kopie des Codes, den wir bisher geschrieben haben. Ich kopiere einfach den unten hervorgehobenen Teil, gehe zurück, um eine neue Tabelle zu erstellen, und füge den hervorgehobenen Code ein. Wir werden uns nicht die Mühe machen, dieser Tabelle einen Namen zu geben, da sie für uns nicht von Interesse ist.
Und wir können einfach RETURN DatesInLast3Dates schreiben . Wenn ich auf „Bestätigen“ klicke, erhalten wir eine Tabelle, aber wir wissen, dass sie noch nicht das richtige Ergebnis zurückgibt, da wir tatsächlich das Verhalten des Slicers nachahmen müssen.
Wir können diesen Code in eine CALCULATETABLE einschließen und alles einrücken. Im letzten Teil werde ich schreiben, dass das Datum größer oder gleich dem 15.03.2021 sein sollte und dass der Kundenname mit DHL Supply Chain übereinstimmen sollte .
Die Tabelle, die wir innerhalb dieser Messung erstellt haben, liefert praktisch das richtige Ergebnis. Wir können eine CALCULATETABLE verwenden, um die virtuelle Tabelle zu überprüfen, die Sie in Ihrer Berechnung erstellen.
Andere LuckyTemplates-Berechnungen in der DAX-Sprache
Da wir nun wissen, dass unsere Berechnung funktioniert und verstehen, was tatsächlich hinter den Kulissen passiert, können wir uns andere Methoden zur Berechnung des gleichen Problems ansehen. Erstellen wir zunächst ein Duplikat der bereits erstellten Kennzahl.
Version 2
Dieses Mal werden wir uns nicht auf die Funktionen VALUES und FILTER verlassen, also werden wir sie entfernen. Wir entfernen das Rückgabeergebnis sowie die letzte Variable, die wir in CALCULATE erstellt haben. Dann konvertieren wir CALCULATE in CALCULATETABLE.
Und anstatt einen Skalarwert zurückzugeben, werden wir dieses Mal DatesInLast3Dates zurückgeben . Dadurch wird dieselbe CALCULATETABLE zurückgegeben, die wir zuvor erstellt haben. Wir werden die CALCULATE-Funktion verwenden und im ersten Argument das Umsatzmaß berechnen und CALCULATETABLE als Filterkontext einfügen.
Sobald ich es in die Matrix übertrage, können Sie sehen, dass wir für jede Zelle den gleichen Gesamtsummenwert zurückgeben.
Verwenden der KEEPFILTERS-Funktion
Im Moment wissen wir, dass die Berechnung hinter den Kulissen korrekt funktioniert, aber wie können wir sicher sein, dass wir für jede Zelle nur den Wert für diese finanzielle Ebene melden?
Mit Hilfe von CALCULATETABLE haben wir eine Tabelle erstellt, die die Finanzebene, die Datumsspalte und die Umsatzspalte enthält. Wir können die Schlüsselfilterfunktion verwenden, um eine Schnittmenge zwischen dem Filterkontext, der außerhalb von CALCULATETABLE existiert, und dem Kontext zu erstellen, der von CALCULATETABLE erstellt wird.
Sobald wir auf „Bestätigen“ klicken, können wir sehen, dass wir für jede Zelle den richtigen Wert melden und dass sowohl Version 1 als auch Version 2 den richtigen Wert zurückgeben.
Wie funktioniert das? Die CALCULATE-Tabelle gibt die Wartungsebene zurück , dann Rental , Service External und Spare parts . Die erstellt eine Schnittstelle zwischen der Wartung und dieser Tabelle.
Rental erstellt den anfänglichen Filterkontext, dann gibt CALCULATETABLE alle Werte der Jobkategorie zurück. Dann wird es einen Schnittpunkt zwischen Rental und der von CALCULATETABLE zurückgegebenen Tabelle geben. Wir werden nur die Tabellen oder Zeilen für diesen Mietteil zurückgeben.
Und schließlich, wenn wir SUMMARIZE in den Filterkontext einfügen, berechnet die CALCULATE-Funktion nur den Umsatz für die Vermietung. Der gleiche Vorgang findet für jede Zeile statt.
Version 3
Schauen wir uns eine andere Möglichkeit zur Berechnung derselben Berechnung mit LuckyTemplates in der DAX-Sprache an. Erstellen wir eine Kopie der Kennzahl der Version 2 und erstellen wir eine weitere Kennzahl. Wir werden diese Version 3 nennen.
Die Idee hinter dieser Berechnung besteht darin, dass wir, da wir den Umsatz mit der Funktion CALCULATE berechnen, den Teil ADDCOLUMNS nicht verwenden müssen, da wir innerhalb und außerhalb von CALCULATE dasselbe duplizieren. Stattdessen können wir einfach schreiben, dass der Umsatz nicht gleich 0 sein sollte.
Sobald ich auf „Bestätigen“ klicke, müssen wir sicherstellen, dass der Code funktioniert. Ziehen wir also die Kennzahl in die Matrix.
Sie können sehen, dass der Code tatsächlich für jede Zelle denselben Wert zurückgibt.
Wenn ich versuche, den Filterkontext zu ändern, indem ich das Datum im Datums-Slicer ändere und einige Werte aus dem Kundennamen auswähle, können Sie sehen, dass alle drei Kennzahlen tatsächlich für jede Zeile denselben Wert zurückgeben.
Abschluss
In diesem Tutorial haben wir gelernt, wie man mithilfe einer komplexen Logik eine Zeitreise vom Enddatum in die Vergangenheit durchführt, um die drei wichtigsten Daten zu ermitteln. Basierend auf dieser LuckyTemplates-Technik in der DAX-Sprache konnten wir den Umsatz berechnen und nur die Werte anzeigen, die im Filterkontext vorhanden sind. Das ist fürs Erste alles in diesem Tutorial.
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
In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.
In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.
In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.
Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.
Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.
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.
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