Tabellen in LuckyTemplates: Typen und Unterscheidungen

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Ich möchte heute etwas Zeit damit verbringen, über Tabellen in LuckyTemplates zu sprechen. Wir stoßen bei jedem Problem ständig auf Tabellen, verbringen aber nicht wirklich viel Zeit damit, nur über sie nachzudenken. Das vollständige Video dieses Tutorials können Sie unten in diesem Blog ansehen.

Kürzlich gab es einen Beitrag von LuckyTemplates-Mitglied Ashton, der immer gute, zum Nachdenken anregende Fragen parat hat. Seine Frage brachte mich dazu, über ein Muster nachzudenken, das ich ziemlich regelmäßig sehe und das ich in diesem Tutorial behandeln möchte.

Es war kein Fehler, den er gemacht hat, aber es ist ein häufiger Fehler. Ich sehe oft, dass Leute sagen, dass sie Probleme mit einem virtuellen Tisch haben, wenn es sich beispielsweise gar nicht um einen virtuellen Tisch handelt.

Es gibt einen echten Unterschied zwischen den Tabellentypen in LuckyTemplates.

Die Analogie, die ich anführen würde, wäre, wenn jemand sagen würde: „Hey, ich habe kürzlich einen Hund adoptiert und ich habe Probleme mit dem Hund und frage mich, ob Sie helfen können“ und es ist kein Hund, sondern ein Wolf. Sie sind beide Eckzähne, aber es gibt einige ziemlich große Unterschiede, die Sie berücksichtigen sollten.

Obwohl sie also alle zur gleichen Familie gehören, genau wie die Tabellen in LuckyTemplates, stellen sie wichtige Unterschiede dar, die sich wirklich auf die Lösung und die Art und Weise auswirken, wie Sie diese Tabellen verwenden. Deshalb wollte ich Ashtons Frage noch einmal aufgreifen und mich dann ein wenig mit den Unterschieden zwischen den Tabellen in LuckyTemplates befassen und zeigen, wie sich diese auf die Art und Weise auswirken, wie Sie damit umgehen.

Die Frage war ziemlich einfach, aber es steckt etwas mehr dahinter, als es zunächst den Anschein hat. Er hatte einen einfachen Datensatz, der nur die Kunden, die Art der von ihnen gekauften Früchte, die Menge und dann nur eine Indexnummer enthielt.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Er wollte einen Slicer mit Mehrfachauswahlfunktion haben , damit bei der Auswahl von beispielsweise Orange alle Kunden angezeigt werden, die Orangen gekauft haben, aber auch angezeigt wird, was sie sonst noch gekauft haben.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Wenn wir also diese Auswahl (orange) deaktivieren, können wir den vollständigen Datensatz sehen. Wir können auch sehen, dass dies die beiden Kunden (Joe und Mary) sind, die Orangen gekauft haben, aber jeder von ihnen hat auch einen weiteren Kauf getätigt.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Das erste, was wir wissen, ist, dass es sich bei dem Obstschneider um einen nicht angeschlossenen Schneidetisch handeln muss. Wenn es ein normaler Slicer wäre, würden Sie Orange treffen und im Grunde alles außer Orange in der Tabelle entfernen. Da dies dynamisch ist, wissen wir auch, dass wir ein Problem mit der virtuellen Tabelle haben.

Lassen Sie uns also ein wenig näher darauf eingehen, werfen wir aber vorher einen Blick auf die verschiedenen Tabellentypen, die wir in LuckyTemplates finden.

Inhaltsverzeichnis

Drei Arten von Tabellen in LuckyTemplates

Es gibt drei Arten von Tabellen, die wir regelmäßig finden. Die erste ist die gebräuchlichste und es handelt sich um eine physische Tabelle, bei der es sich tatsächlich um Ihre Primärdaten handelt. Immer wenn Sie Daten abrufen oder Daten direkt über diese Option oder in Power Query eingeben , führen Sie eine Referenz oder ein Duplikat durch oder Sie laden Daten über eine leere Abfrage, wie eine Datumstabelle, das ist eine physische Tabelle.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Eine physische Tabelle ist nicht vollständig dynamisch, verfügt aber über all diese anderen Eigenschaften, die die Dateigröße erhöhen, da es sich um physische Daten handelt. Es ist in Power Query zugänglich. Typischerweise werden die Beziehungen im Datenmodell durch physische Beziehungen aufgebaut. Das muss nicht sein, ist es aber in der Regel. Sie werden für Primärdaten verwendet und Sie visualisieren diese entweder über die Datenansicht oder über Power Query.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Eine physische Tabelle ist nicht vollständig dynamisch, verfügt aber über all diese anderen Eigenschaften, die die Dateigröße erhöhen, da es sich um physische Daten handelt. Es ist in Power Query zugänglich. Typischerweise werden die Beziehungen im Datenmodell durch physische Beziehungen aufgebaut. Das muss nicht sein, ist es aber in der Regel. Sie werden für Primärdaten verwendet und Sie visualisieren diese entweder über die Datenansicht oder über Power Query.

Diejenige, die oft mit der virtuellen Tabelle verwechselt wird, ist diese berechnete Tabelle oder das, was wir auch als DAX-Ausdruckstabelle bezeichnen können. Dies hat eine direkte Analogie zu berechneten Spalten, die durch DAX- Ausdrücke erstellt werden . Dies erfolgt über die Registerkarte „Modellierung“ und die Option „Neue Tabelle“. Anschließend geben Sie den DAX-Ausdruck ein.

Diejenige, die oft mit der virtuellen Tabelle verwechselt wird, ist diese berechnete Tabelle oder das, was wir auch als DAX-Ausdruckstabelle bezeichnen können. Dies hat eine direkte Analogie zu berechneten Spalten, die durch DAX-Ausdrücke erstellt werden. Dies erfolgt über die Registerkarte „Modellierung“ und die Option „Neue Tabelle“. Anschließend geben Sie den DAX-Ausdruck ein.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Wie Sie der Vergleichstabelle unten entnehmen können, unterscheidet sich das Profil der berechneten Tabelle deutlich von der physischen oder der virtuellen Tabelle. Es ist nicht vollständig dynamisch.

Es muss aktualisiert werden, um die neuen Informationen aufzunehmen. Es erhöht die physische Dateigröße. Im Gegensatz zu einer direkten physischen Tabelle ist sie in Power Query nicht zugänglich. Genauso wie eine berechnete Spalte in Power Query nicht angezeigt wird, wird dies auch bei einer berechneten Tabelle nicht der Fall sein. Aber es besitzt die anderen Aspekte eines physischen Tisches.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

In der Regel werden berechnete Tabellen zur Unterstützung von Tabellen und häufiger zum Debuggen verwendet. Mittlerweile gibt es bessere Tools wie DAX Studio und Tabular Editor, daher wird es dafür nicht so häufig verwendet. Sie können diese Tabelle über die Datenansicht anzeigen.

Und ehrlich gesagt ist es, wie bei berechneten Spalten, im Allgemeinen etwas, von dem man die Finger lassen sollte. Es gibt bessere Möglichkeiten, Dinge zu erledigen, als mit berechneten Tabellen.

Und die Analogie zu den Maßen sind die echten virtuellen Tabellen . Diese werden im Rahmen von Kennzahlen durch den DAX Measure Code erstellt. Im Gegensatz zu den beiden anderen Tabellentypen sind sie vollständig dynamisch. Sie erhöhen die Dateigröße nicht, da sie auf Abruf verfügbar sind. Genau wie Kennzahlen werden virtuelle Tabellen bei Bedarf im Speicher berechnet und alle im Verlauf der Kontexte verwendet, für die sie benötigt werden.

Sie sind in Power Query nicht zugänglich. Man kann ihnen keine körperliche Beziehung zuordnen. Wenn Sie sie in Ihrem Datenmodell in Beziehung setzen, tun Sie dies mithilfe virtueller Beziehungen, am häufigsten mit .

Virtuelle Tabellen werden für Zwischenberechnungen in Kennzahlen verwendet, da eine Kennzahl keinen Tabellenwert zurückgeben kann und einen Skalarwert zurückgeben muss. Daher verwenden Sie diese normalerweise als Zwischenberechnung, auf deren Grundlage Sie Ihre Skalierer generieren, die das resultierende Produkt Ihrer Messung sind.

Sie können diese Tabellen in Tools wie DAX Studio, Tabular Editor oder New Table visualisieren, was wiederum wahrscheinlich die am wenigsten wünschenswerte Methode ist, da Ihr Datenmodell mit einer Menge zusätzlicher Tabellen überladen wird, es sei denn, Sie löschen diese.

DAX-Measure-Lösung für einen virtuellen Tisch

Um auf Ashtons Frage zurückzukommen: Wenn wir uns die Tabelle ansehen, können wir erkennen, dass sie dynamisch ist. Wir können auch mehrere Auswahlmöglichkeiten treffen und dies ändert sich völlig spontan. Daher wissen wir, dass es sich um eine virtuelle Tabelle handelt, da die anderen beiden (physische und berechnete Tabellen) nicht vollständig dynamisch sind. Wir wissen auch, dass es sich um eine nicht verbundene Tabelle handelt, wie ich eingangs erwähnt habe.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Um dieses Problem zu lösen, habe ich das Rubber Duck-Konzept verwendet. In einem früheren Tutorial habe ich über dieses Konzept des Rubber Ducking gesprochen, bei dem eine konzeptionelle Lösung für das Problem entwickelt wird, bevor man sich mit dem spezifischen DAX befasst.

Und so habe ich für die Gummi-Enten-Lösung hier im Wesentlichen diesen getrennten Slicer-Tisch zusammengestellt. Dann habe ich den Wert dieser Slicer geerntet. Als nächstes habe ich mir eine virtuelle Tabelle ausgedacht, die die Kunden nach denen filterte, die die Auswahl in der nicht verbundenen Tabelle gekauft hatten.

Dann nahm ich diese Kundenliste und filterte unseren ursprünglichen Datensatz nach diesen Kunden, um zusätzlich zum Slicer-Wert die Kunden und die von diesen Kunden getätigten Käufe zu ermitteln.

Werfen wir einen Blick auf die spezifische Maßnahme, um zu sehen, wie sich dies ausgewirkt hat, und um einige Überlegungen anzustellen, die Sie bei der Arbeit mit virtuellen Tischen berücksichtigen müssen.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Zunächst galt es, zwei Erntemaßnahmen für unsere Werte zu entwickeln. Der erste Wert ist der Wert des getrennten Slicers.

Da wir die Mehrfachauswahl in der Anforderung hatten, bedeutete das, dass wir nicht einfach verwenden konnten . Also habe ich die Funktion verwendet, um möglicherweise eine oder mehrere Auswahlen in diesem nicht verbundenen Slicer zu erfassen. Für Kunden können wir SELECTEDVALUE verwenden, da wir in jeder auszuwertenden Zeile einen Kunden haben.

Das nächste, was ich tat, war diese virtuelle Tabellenvariable ( VAR Buyers ), die mit beginnt . Anschließend werden die Kunden danach gefiltert, ob sie einen Obstkauf getätigt haben, der unseren Werten des nicht verbundenen Slicers entsprach.

Wir können dies überprüfen, indem wir eine DAX-Abfrage durchführen. Wir können dies entweder in DAX Studio oder im Tabelleneditor tun. Nehmen wir also hier unser virtuelles Tabellenmaß und kopieren es in den Tabelleneditor. Wir werden sicherstellen, dass es uns die Werte vermittelt, die wir erwarten, nämlich Joe und Mary.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

DAX-Abfragen geben immer Tabellen zurück und sie begannen immer mit EVALUATE, daher fügen wir hier EVALUATE hinzu. Allerdings erhalten wir im Ergebnis nichts. Dies liegt daran, dass die ausgewählte Erntevariable zum Trennen von Früchten ( SelDisconnFruit ) keine Kenntnis vom Slicer hat. Es ist aus dem Kontext gerissen.

Die Art und Weise, dies zu testen, besteht darin, den Slicer-Wert künstlich festzulegen. Wir ersetzen SelDisconnFruit hier durch eine kleine Tabelle. Geben Sie Orange (den Wert dieses Slicers) in geschwungenen Klammern ein . Und jetzt erhalten wir hier das Ergebnis, nämlich Joe und Mary. Damit funktioniert der virtuelle Tisch genau so, wie wir es uns vorgestellt haben.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Wir können jetzt also zu unserem Maßausdruck zurückkehren. Eine der Herausforderungen an virtuellen Tabellen besteht darin, dass sie sich einfach innerhalb einer Kennzahl erstellen lassen . Sie können jedoch keine virtuelle Tabelle als Ergebnis einer Maßnahme zurückgeben . Wir müssen also einen Skalar zurückgeben, der jedoch den relevanten Aspekt der virtuellen Tabelle erfasst.

Hier haben wir also die virtuelle Tabelle, die uns sagt, welche Kunden die Früchte gekauft haben, die im Value Slicer waren. Wir können eine weitere Variable ( VAR BuyerIn ) einrichten, die besagt, dass, wenn der ausgewählte Kunde in der Tabelle dieses Käufers war, er eine Eins erhält . Und wenn nicht, erhält es eine Null .

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Dann nehmen wir die Ergebnisse und fügen sie in den Filterbereich ein. Wir sagen, dass es sich bei der Kennzahl „Key Buyers“ um eine handelt, nämlich um die Kunden, die in diesem Fall Orangen gekauft haben.

Tabellen in LuckyTemplates: Typen und Unterscheidungen

Auf diese Weise filtern wir unsere ursprüngliche Datentabelle nach den richtigen Datensätzen. Sie können sehen, dass jetzt diese virtuelle Tabelle erstellt wird und die Filterung basierend auf jeder Auswahl ordnungsgemäß durchgeführt wird.


Virtuelle Tabellen in iterierenden Funktionen in LuckyTemplates – DAX-Konzepte
Erstellen virtueller Beziehungen in LuckyTemplates mithilfe der TREATAS-Funktion.
So verwenden Sie die COUNTROWS-DAX-Funktion in virtuellen Tabellen

Abschluss

Das ist der Großteil dessen, was ich heute behandeln wollte. Es handelt sich um ein recht einfaches Beispiel für eine virtuelle Tabelle, wobei der Schwerpunkt jedoch auf dem Unterschied zwischen physischen Tabellen, berechneten Tabellen und virtuellen Tabellen liegt.

Im Hinblick auf virtuelle Tabellen gibt es viele interessante Probleme, die es noch einmal zu betrachten gilt, insbesondere beim Debuggen virtueller Tabellenkennzahlen. Darauf werde ich in den nächsten Wochen zurückkommen, aber im Moment ist das alles in diesem Tutorial.

Beifall!


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.