Saturday 7 January 2017

Moving Average Dax

Das Kumulative Gesamtmuster ermöglicht es Ihnen, Berechnungen durchzuführen, wie z. B. laufende Summen, und Sie können es verwenden, um Lagerbestände und Bilanzberechnungen mit den ursprünglichen Transaktionen zu implementieren, anstatt Snapshots von Daten im Laufe der Zeit zu verwenden. Um beispielsweise eine Inventartabelle zu erstellen, die den Bestand jedes Produktes für jeden Monat anzeigt, können Sie die gleiche Berechnung mit der ursprünglichen Lagerbewegungstabelle vornehmen, ohne vorher Daten zu verarbeiten und zu konsolidieren. Basic Pattern Beispiel Angenommen, Sie wollen die monatliche Summensumme der Transaktionsmengen berechnen. Das Datenmodell hat eine Datumstabelle, die als Datumstabelle markiert ist. In Abbildung 1 hat die Tabelle Transaktionen eine Beziehung mit der Datumstabelle. Vielleicht haben Sie mehr Beziehungen zwischen den Tabellen, aber dies würde nicht die DAX-Maß für dieses Muster ändern. Abbildung 1 Die Tabelle Transactions hat eine Beziehung mit der Datumstabelle. Abbildung 2 zeigt eine Beispieltransaktionstabelle mit wenigen Transaktionen für jeden Monat. Abbildung 2 Beispieldaten in einer Tabelle Transaktionen. Wie in Abbildung 3 dargestellt, berechnen Sie die kumulative Menge, die einer laufenden Summe der Summe der Menge entspricht. Abbildung 3 Das Cumulative Quantity Maß erzeugt eine laufende Summe der Summe der Menge. Zu einem beliebigen Zeitpunkt zeigt das Cumulative Quantity-Maß die Summe der Menge für alle Transaktionen an, die an einem Datum vorgenommen werden, das kleiner oder gleich dem ausgewählten Datum ist. Die kumulative Menge von Februar 2013 entspricht beispielsweise der Summe von Dezember 2012, Januar 2013 und Februar 2013. Sie definieren das kumulative Mengenmaß wie folgt: Die Funktion FILTER gibt die Liste aller Daten zurück, die kleiner oder gleich sind Das letzte Datum in der aktuellen Auswahl. Jede Zelle des PivotTables in Abbildung 3 hat eine andere Datumsauswahl. Sie wenden den Filter auf die Spalte Datum der Datumstabelle an, die als Datumstabelle im Datenmodell markiert werden muss. Sie können das kumulative Gesamtmuster verwenden, wann immer Sie die Summe einer Messung bis zu einem bestimmten Datum anzeigen möchten, unter Berücksichtigung aller früheren Operationen (auch jene, die früher als die aktuelle Datumsauswahl liegen). Sie könnten ähnliche Probleme lösen, indem Sie eine Momentaufnahme-Tabelle erstellen, die den Wert einer bestimmten Entität zu einem bestimmten Zeitpunkt berechnet. Wenn Sie diese Berechnungen zum Abfragezeitpunkt verschieben, wird Speicherplatz gespart, aber Sie haben möglicherweise eine langsamere Antwort zu diesem Zeitpunkt. Die Granularität des kumulativen Gesamtmusters ist immer dieselbe wie die der Transaktionstabelle, ohne dass eine zusätzliche Speicherung erforderlich ist. Sie müssen die Bequemlichkeit des kumulativen Gesamtmusters auf einer Fall-zu-Fall-Basis auswerten. Inventarbestand Die Bereitstellung von Inventarbestandsinformationen erfordert in der Regel eine Momentaufnahme-Tabelle, die die Bestandsverfügbarkeit für jedes Produkt und jeden Tag anhält. Um Platz zu sparen, haben Sie möglicherweise eine unterschiedliche Granularität der Snapshot-Tabelle, die auf wöchentlicher oder monatlicher Ebene statt täglich definiert wird. Sie können die Inventurbestandsberechnung als dynamische Berechnung im DAX implementieren, indem Sie die Bewegungenstabelle als Transaktionstabelle im kumulativen Gesamtmuster verwenden. Bilanz Sie können die Zahlen in den Bilanzkonten (Aktiven, Passiven, Eigenkapital) durch Aggregation aller Transaktionen anhand des kumulativen Gesamtmusters auswerten. Die meisten Transaktionssysteme verfügen bereits über eine integrierte Berechnung für diese Konten, die den aktualisierten kumulativen Wert in die Konten speichert, die bei jeder Transaktion beteiligt sind. Sie können das kumulative Gesamtmuster verwenden, um das historische oder vorhergesagte Verhalten bei jeder beliebigen Granularität neu zu erstellen. Kumulative Saldo Es ist üblich, die kumulative Bilanz als jahrelange Berechnung zu implementieren. In manchen Fällen möchten Sie jedoch die kumulative Bilanz ohne Jahresgrenzen berechnen, wenn Sie beispielsweise Trends und Prognoseanalysen über das Jahr hinaus anzeigen möchten. Sie können das kumulative Mengenmuster zu diesem Zweck verwenden oder anpassen. Komplettes Pattern Sie wenden das Cumulative Total-Muster auf Modelle an, die eine Tabelle als Datumstabelle im Datenmodell haben. Die Berechnung verlängert den Zeitraum um alle Daten vor dem ausgewählten Zeitraum. Um korrekte Ergebnisse zu erzielen, wählen Sie die Datumspalte aus der richtigen Tabelle (die als Datumstabelle markiert ist). Fig. 4 zeigt ein Datenmodell, bei dem die Beziehung zwischen der Transaktionstabelle und der Datentabelle unter Verwendung einer Ganzzahlspalte (DateKey) definiert ist. Die Datumstabelle wird als Datumstabelle im Datenmodell unter Verwendung der Spalte Datum markiert. Abbildung 4 Die Spalte Datumskey (in beiden Tabellen) ist ein Integer-Wert, während die Spalte Datum in der Tabelle Datum einen Datetime-Datentyp aufweist. Um zu vermeiden, dass ein Wert angezeigt wird, wenn die ausgewählte Periode größer als ein Datum in der Transaction-Tabelle ist, können Sie eine bedingte Anweisung anwenden, die diese Bedingung überprüft. Im folgenden Cumulative Quantity-Wert vergleichen Sie den minimalen DatumKey-Wert des ausgewählten Zeitraums mit dem maximalen Wert des DateKey in der gesamten Transactions-Tabelle. In diesem Muster vergleichen Sie die beiden Spalten, die die Beziehung zwischen den Tabellen definieren, die Sie diesen Vergleich an die in Ihrem Datenmodell verwendeten Spalten anpassen möchten. Durch diese Überprüfung vermeiden Sie die Ausbreitung des letzten Wertes in Perioden, die später als die letzten Transaktionen in Ihren Daten liegen. In Abbildung 5 sehen Sie, dass die ungeprüfte Berechnung den Wert April 2013 an alle folgenden Monate weiterleitet, während die gecheckte Version leer bleibt, wenn keine weiteren Transaktionen verfügbar sind. Abbildung 5 Die geprüfte Version des Cumulative Quantity-Messwerts zeigt leere Werte an, wenn der Zeitraum später als die letzte verfügbare Transaktion ist. Weitere Musterbeispiele Sie können das kumulative Gesamtmuster problemlos auf die zuvor beschriebenen Beispiele anwenden. Im folgenden Abschnitt wird die Inventurbestandsberechnung näher erläutert. Inventurbewertung Sie können das allgemeine Kumulierte Gesamtmuster auf die Inventurbestandsberechnung anwenden. Die Tabelle Bewegungen entspricht der Tabelle Transaktionen. Wenn Sie eine Bestandsbewertung berechnen wollen, müssen Sie den Stückpreis pro Produkt zu einem beliebigen Zeitpunkt berechnen. Wenn Sie eine Snapshot-Tabelle mit dem Einheitspreis für jedes Produkt an jedem Tag erstellen, verwenden Sie wahrscheinlich dieselbe Tabelle, um den Bestandsbestand zu speichern. Daher verwenden Sie das Cumulative Total-Muster nur, wenn Sie in einem DAX-Ausdruck den Produkteinheitspreis für einen beliebigen Tag dynamisch berechnen können. Betrachten Sie das Datenmodell in Abbildung 6: jede Zeile in der Bewegungstabelle hat eine Menge und einen Einheitenkosten. Negative Werte in Menge identifizieren Verkäufe, positive Werte in Menge identifizieren Käufe. Der zugehörige UnitCost in der gleichen Zeile ist entweder der Verkauf oder der Kaufpreis. Abbildung 6 Die UnitCost in der Bewegungstabelle stellt den Verkaufs - oder Kaufpreis dar. Sie müssen das Inventarwertprodukt nach Produkt berechnen, da jedes Produkt einen anderen Preis haben könnte. Branchen, die denselben Preis für Produktkategorien verwenden, können eine andere Berechnungsgranularität anwenden. Um einen aggregierten Wert zu erhalten, müssen Sie die folgende Maßnahme implementieren: Die SUMX-Funktion iteriert über alle ausgewählten Produkte. Es ist wichtig, die ProductKey-Spalte in der Tabelle Products anstelle der ProductKey-Spalte in der Movements-Tabelle zu iterieren, da diese Produkte ohne Transaktionen im betrachteten Zeitraum ignorieren würde. Für jedes Produkt multiplizieren Sie zwei weitere Maßnahmen: UnitsInStock und ProductPrice. Sie können die UnitsInStock-Maßnahme implementieren, indem Sie das kumulative Gesamtmuster anwenden: Die ProductPrice-Implementierung hängt von der Bestandsbewertungsmethode ab, die Sie anwenden möchten. Zum Beispiel können Sie den letzten Kaufpreis mit folgender Maßnahme berechnen: Die LastBuyPrice-Maßnahme funktioniert, wenn nur ein Produkt ausgewählt ist. Er berechnet den Durchschnittswert von UnitCost für die Zeilen in der Bewegungstabelle des ausgewählten Produkts am letzten Bewegungstag bis zum ausgewählten Zeitraum. Die Funktion TOPN gibt alle Bewegungen des Produkts am letzten verfügbaren Tag zurück und die Funktion AVERAGEX gibt einen Mittelwert des UnitCost zurück, wenn am gleichen Tag mehr Zeilen vorhanden sind. Die Menge wird gefiltert, um nur Käufe zu berücksichtigen, die positive Zahlen in Bewegungen sind. In ähnlicher Weise können Sie den LastSellPrice implementieren, indem Sie den Filter für Quantity ändern und nur negative Werte berücksichtigen, wie im folgenden Beispiel gezeigt: Die Beispielarbeitsmappe enthält zwei Maßnahmen (ValueBuy und ValueSell), die das Value-Maß implementieren, indem ProductPrice durch LastBuyPrice ersetzt wird Und LastSellPrice. In Abbildung 7 sehen Sie das Ergebnis anhand eines Beispielsatzes aus der AdventureWorks-Datenbank. Die Buy and Sell Werte sind unterschiedlich (obwohl der Unterschied nicht realistisch ist, da der spezielle AdventureWorks Datensatz verwendet wird). Abbildung 7 Die Bestandsbewertung mit zwei verschiedenen Algorithmen (letzter Kaufpreis und letzter Verkaufspreis). Eine ausführlichere Analyse der Lagerbestandsberechnung finden Sie in diesem Artikel auf der SQLBI-Website: tinyurlDaxInventoryStock. Der Artikel vergleicht Größe und Leistung zwischen einer klassischen Snapshot-basierten Berechnung und einer äquivalenten Implementierung basierend auf dem kumulativen Gesamtmuster. Die Wahl zwischen diesen Ansätzen hängt vom Datenvolumen und der Verteilung ab und muss von Fall zu Fall evaluiert werden. Informieren Sie mich über kommende Muster (Newsletter). Deaktivieren Sie die Datei frei herunterladen. Publiziert am 7. Februar 2014 vonGERMAN SE XETRA DAX INDEX GERMAN SE XETRA DAX INDEX Alle Marktdaten, die sich auf FT befinden, unterliegen den FT-Vertragsbedingungen Alle Inhalte auf FT sind ausschließlich zu Ihrer allgemeinen Information und Nutzung und sind nicht dazu bestimmt, Ihre speziellen Anforderungen zu erfüllen . Insbesondere stellt der Inhalt keine Form von Beratung, Empfehlung, Vertretung, Anerkennung oder Vereinbarung durch FT dar und ist nicht dazu bestimmt, von den Nutzern behauptet zu werden, dass sie spezifische Investitions - oder andere Entscheidungen treffen (oder verzichten). Alle Informationen, die Sie über FT erhalten, sind am besten verzögert Intraday-Daten und nicht Echtzeit. Aktie Kursinformationen können gerundet aktualisiert werden und daher nicht ganz richtig. FT ist nicht verantwortlich für jegliche Verwendung von Inhalten von Ihnen außerhalb ihres Anwendungsbereichs, wie in den FT-Bedingungen festgelegt. Willkommen auf der neuen FT


No comments:

Post a Comment