DAX-Funktion COLUMNSTATISTICS in LuckyTemplates

DAX-Funktion COLUMNSTATISTICS in LuckyTemplates

Ich möchte die dynamischen Verwendungsmöglichkeiten der DAX-Funktion COLUMNSTATISTICS() weiter erforschen – eine neue, fast vollständig undokumentierte DAX-Funktion, die im August 2021 zu LuckyTemplates hinzugefügt wurde und einige sehr einzigartige Aspekte aufweist, deren Kennenlernen meiner Meinung nach sehr interessant sein wird . Das vollständige Video dieses Tutorials können Sie unten in diesem Blog ansehen.

Ich habe viel experimentiert und einige wirklich interessante neue Dinge darüber gelernt, wie diese Funktion funktioniert und was man damit machen kann. In meinem ersten Blog über diese Funktion habe ich über einige statische Verwendungen gesprochen. Heute werde ich über einige wirklich erstaunliche dynamische Verwendungsmöglichkeiten der Funktion sprechen, die selbst IntelliSense noch nicht auf dem neuesten Stand ist.

Inhaltsverzeichnis

So funktioniert die DAX-Funktion COLUMNSTATISTICS

Für jede Tabelle und jedes Feld in Ihrem Datenmodell erstellt COLUMNSTATISTICS eine Tabelle mit sechs zusätzlichen Feldern, die einen Tabellennamen, einen Spaltennamen, Mindest- und Höchstwerte für die Spalte, Kardinalität und eine Höchstlänge aufweist. Das scheinen nicht viele Daten zu sein, aber man kann damit eine Menge anfangen.

DAX-Funktion COLUMNSTATISTICS in LuckyTemplates

Die Daten, die ich derzeit verwende, sind lediglich der Übungsdatensatz für die externen Tools von LuckyTemplates. Es handelt sich um ein relativ einfaches Datenmodell mit fünf Dimensionstabellen, einer Faktentabelle und einer Messwerttabelle . Ein solches Modell ist nicht so schwer zu verfolgen, aber ein komplexes Modell erfordert eine viel komplexere Datensatzüberwachung.

Die Metadaten für einen komplexen Datensatz werden im Hinblick auf die Betrachtung der Kardinalität, also der Anzahl eindeutiger Werte innerhalb eines Felds, viel wichtiger. Es hat einen großen Einfluss auf die Größe Ihres Modells und möglicherweise auch auf die Verarbeitungsgeschwindigkeit.

Darüber hinaus ist es beim Erstellen eines Modells hilfreich, nicht nur die Anzahl der Tabellen zu kennen, sondern auch den Datumsbereich dieser Tabellen. Beim Aufbau Ihrer Datumstabelle achten Sie darauf, den gesamten Datenbereich Ihrer Faktentabelle abzudecken.

Versuchen wir also für dieses Beispiel, dem Datenmodell, an dem ich arbeite, eine Tabelle hinzuzufügen. In der Power Query gehen wir zu New Source und dann zu Blank Query . Und dann gehen wir in den erweiterten Editor und ich füge einfach eine Funktion namens List.Dates ein . Wir werden damit eine Tabelle mit der Kardinalität 10.000 erstellen, das sind also 10.000 eindeutige Daten.

Es wird eine Liste mit 10.000 Elementen zurückgegeben, die wir einfach in eine Tabelle umwandeln und diese Tabelle dann umbenennen können.

Wir können das Feld hier oben auf den neuesten Stand bringen. Und wenn wir auf „Schließen und Übernehmen“ klicken, werden wir sehen, dass unser intelligentes Narrativ dynamisch aktualisiert wird, ohne dass das gesamte Modell aktualisiert werden muss (wie wir es in der Vergangenheit getan haben).

Der Grund dafür, dass dies völlig dynamisch ist, liegt darin, dass wir alles mit Maßnahmen machen. Das Interessante ist, dass es viele Fehler anzeigt und die Funktion so neu ist, dass IntelliSense sie nicht richtig erkennt, aber tatsächlich funktioniert.

Kommen wir zum Tabelleneditor 3, der meiner Meinung nach der beste Weg ist, herauszufinden, was die komplexen DAX-Kennzahlen tatsächlich bewirken.

Denken Sie daran, dass die DAX-Abfrage Tabellen und keine Skalierer zurückgibt. Wenn wir also dieses Maß nehmen und es in eine DAX-Abfrage kopieren , wird ein Fehler angezeigt, da das Ergebnis hier immer noch ein Skalierer ist. Wir können den Debugging-Ansatz verwenden, bei dem das RETURN-Ergebnis durch einzelne Komponenten der Maßnahme ersetzt wird.

In diesem Fall ersetzen wir es durch ColStats , was wir oben einfach getan haben, indem wir die DAX-Funktion COLUMNSTATISTICS in eine Variable eingefügt haben. Damit erhalten wir genau das, was wir erwarten, nämlich die Standardspaltenstatistiktabelle.

Und jetzt wollen wir uns einfach die Spalte „Tabellenname“ ansehen und daraus die unterschiedlichen Werte herausnehmen und diese zählen. Das ist die Anzahl der Tabellen in unserem Datenmodell.

Zuerst wählen wir Spalten in unserer ColStats-Tabelle aus und geben einfach das Feld mit dem Tabellennamen zurück. Normalerweise möchten Sie in einem DAX-Measure oder einer DAX-Abfrage einen Feldnamen mit dem Tabellennamen davor zurückgeben. In diesem Fall wissen wir jedoch nicht, worauf der entsprechende Tabellenname verweist, da er nur virtuell existiert. Es scheint, dass der Variablenname nicht als Tabellenname akzeptiert wird.

In diesem Fall müssen wir also bei etwas bleiben, das wie eine Kennzahl aussieht, in Wirklichkeit aber eine Spaltenreferenz ohne die Tabellenreferenz davor ist. Und das funktioniert immer noch, auch wenn die Nomenklatur verwirrend ist. Wenn wir nun diese RETURN-Anweisung durch unsere TabCol ersetzen , erhalten wir genau das, was wir erwarten, nämlich das Modelltabellenfeld.

Und für das Ergebnis führen wir dann einfach eine Zählung der einzelnen Tabellenspalten durch. Wenn wir dies also durch DISTINCT(TabsCol) ersetzen , erhalten wir unsere sieben Tabellen.

Werfen wir nun einen Blick auf die höchste Kardinalität in der Tabelle mit der höchsten Kardinalität und sehen wir, wie wir diese erhalten haben. Dies ist tatsächlich ein wichtiges Muster, das Sie für viele verschiedene Dinge verwenden können, bei denen Sie suchen, nicht nur nach der Maximalzahl, sondern auch nach dem dieser Zahl zugeordneten Maximalattribut.

Werfen wir also einen Blick auf die MaxCardinality . Auch wenn es sich hierbei um einen Skalierer handelt, können wir ihn in eine Tabelle mit nur einer Zelle umwandeln, indem wir ihn einfach in Klammern setzen. Und wenn wir fünf erreichen, sehen wir, dass das der Kardinalitätswert von 10.000 ist.

Die Frage ist nun, wie nehmen wir dies und geben die dieser Kardinalität zugeordnete Tabelle zurück?

Dazu verwenden wir dieses sehr häufige Muster mit . Anschließend kopieren wir es in unsere RETURN-Anweisung und erhalten die erwartete Zeile, nämlich die Spalte „10.000 Daten“. Anstatt eine Reihe zu bekommen (weil es TOPN ist), bekommen wir zwei, weil es einen Gleichstand gibt.

ColStats erstellt außerdem für jede Tabelle einen Index in einer versteckten Indexzeile namens RowNumber , wobei es sich um eine eindeutige Kennung für jede Zeile der Tabelle handelt. Daher wird MaxCardinality immer von der RowNumber gespiegelt, wenn es sich um einen eindeutigen Bezeichner handelt.

Es spielt also keine Rolle, dass wir zwei Zeilen haben, denn was wir sehen, ist die maximale Anzahl an Tabellennamen. Und dieses Maximum dient nur dazu, einen Wert zurückzugeben, der andernfalls nur eine nackte Spalte wäre. Aber wir müssen etwas aggregieren, und in diesem Fall verwenden wir .

Wenn wir dann MaxCardinality in unsere RETURN-Anweisung einfügen und es in Klammern setzen, um eine Tabelle statt eines Skalierers zurückzugeben, wird der Wert von Test zurückgegeben.

Dieses TOPN-DAX-Muster ist ein wirklich gutes Muster, das Sie sich merken sollten, wenn Sie grundsätzlich einen Maximal- oder Minimalwert ermitteln und dann ein mit diesem Minimal- oder Maximalwert verknüpftes Attribut zurückgeben möchten.


Optimieren Sie LuckyTemplates-Formeln mithilfe der erweiterten DAX-
DAX-Kennzahlanalyse: Aufschlüsselung langer DAX-Kennzahlen.
DAX-Kennzahlen in LuckyTemplates mithilfe der Kennzahlverzweigung

Abschluss

Ich habe Ihnen den allgemeinen Ansatz und Kontext gegeben, den wir verwenden können, damit Sie die DAX-Funktion COLUMNSTATISTICS auf dynamische Weise optimal nutzen können. Die Möglichkeit, dies dynamisch anhand eines komplexen Modells zu verfolgen, ist meiner Meinung nach von enormem Wert in dieser Funktion.

Je mehr wir mit der COLUMNSTATISTICS-Funktion und ihrer Fähigkeit, Metadaten innerhalb von DAX dynamisch zu verarbeiten, experimentieren, desto interessantere Einsatzmöglichkeiten werden wir meiner Meinung nach finden. Wenn Sie also bereits einige interessante Verwendungsmöglichkeiten für diese DAX-Funktion gefunden haben, lassen Sie es mich bitte in den Kommentaren unten wissen.

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