Tuesday, 24 January 2017

Powerpivotpro Gleitender Durchschnitt

Trended Moving Averages Ive war schon immer fest davon überzeugt, dass bewegte Durchschnitte wahrscheinlich einen besseren Einblick in Trends innerhalb eines Unternehmens ermöglichen, als eine einfache Trendlinie, die mit einem Satz von Werten wie monatlichen Verkäufen verbunden ist (obwohl ich dazu neige, diese beiden Werte zusammen zu überprüfen). Der Grund dafür ist, dass ein Trend durch einen oder zwei Werte, die möglicherweise nicht repräsentativ für das zugrunde liegende Geschäft wie Spikes, die Saisonalität oder ein bestimmtes Ereignis zugeordnet sind, verzerrt werden kann. Wenn BillD eine Abfrage in Bezug auf dieses Konzept in seinen Kommentaren zu Profit Amp Loss (Teil 2) vergleichen und analysieren hervorgehoben. Ich dachte, dass es eine große Idee sein würde, unseren PampL Datensatz zu verdoppeln, um einige Moving Average Fähigkeit zur Verfügung zu stellen. In diesem Beitrag werde ich erklären, welche gleitenden Durchschnitte beabsichtigt sind, zu liefern und zu erklären, wie man sie mit den Verkäufelementen der Beispieldaten berechnet, die in der Profit-amp Verlust-Reihe von Pfosten verwendet werden. Ich werde dann die Flexibilität für Benutzer hinzufügen, um den Zeitrahmen auszuwählen, den die gleitende Durchschnittsberechnung berücksichtigen sollte, die Anzahl der Trendperioden, die angezeigt werden sollen, und das Endedatum des Berichts. Was ist ein gleitender Durchschnitt Die häufigste gleitende durchschnittliche Maßnahme wird im Allgemeinen als 12 Monate gleitender Durchschnitt bezeichnet. Im Falle unserer Verkaufsdaten für einen bestimmten Zeitraum würde diese Maßnahme die letzten 12 Monate des Umsatzes vor und einschließlich des zu analysierenden Monats addieren und dann durch 12 dividieren, um einen durchschnittlichen Verkaufswert für diesen Zeitraum zu zeigen. In finanzieller Hinsicht ist die Gleichung daher ganz einfach: 12 Monate bewegliche durchschnittliche Summe der Verkäufe für die letzten 12 Monate 12 Dies alles scheint sehr geradlinig, aber theres eine Menge Komplexität beteiligt, wenn wir den Moving Average Zeitrahmen (dargestellt als 12 in Das oben genannte Beispiel) in den Händen des Benutzers, geben ihnen die Macht, die Anzahl der Trendperioden anzuzeigen, die angezeigt werden sollen, und den Monat, den der Bericht bis zu anzeigen soll. Der Dataset Der Dataset, der verwendet wurde, sieht wie unten aus. Hinweis Im mit PowerPivot V1. Design-Viewer ist in V2, aber Ive hashed diese zusammen nichts clever Youll bemerken, dass FACTTran (unsere Datenmenge zu analysieren) ist mit DIMHeading1, DIMHeading2 und DIMDataType verknüpft, um einige Kategorisierung zu unserem Datensatz bieten. Ive auch im Zusammenhang mit Daten, die eine sequentielle Menge von Daten, die mehr als die Zeitspanne unseres Datensatzes. Diese Tabelle enthält einige statische Zusatzinformationen, die auf dem Datum basieren: Wieder einmal waren nicht ganz auf Robs würziger Skala festzustellen. Seien Sie versichert, dass Sie ein intensiveres DAX-Training bekommen werden, während wir weitermachen. Da diese Datumsmessungen arent erwartet werden, um dynamisch zu sein, Ive codierte sie im PowerPivot Fenster. Dies ermöglicht es ihnen, auf Datei refresh berechnet werden, aber sie müssen nicht für jede Slicer-Operation neu zu berechnen, die Performance-Overhead von unserer ultimativen dynamischen Maßnahme entfernt. Aus Gründen, die Kranke später kommen, brauche ich auch das Monatsenddatum auf meiner Faktentabelle, da ich das Monat-Enddatum nicht auf meinem Dates-Tisch in meinen Maßnahmen verwenden kann. Ich kann jedoch den gleichen Wert auf meine FACTTran-Tabelle mit der folgenden Maßnahme: Also, was sind diese unverknüpften MA-Tabellen Der Grund für diese Tabellen sollte deutlich werden, wie wir weitergehen. Kurz gesagt, sie werden als Parameter oder Überschriften in unserem Bericht verwendet werden. Der Grund, dass sie existieren und dass sie nicht mit dem Rest unserer Daten verbunden sind, ist einfach, weil ich nicht will, dass sie durch unsere Maßnahmen gefiltert werden. Stattdessen möchte ich, dass sie die Filterung fahren. Initial PivotTable Setup Im werde eine Reihe von Daten in monatlichen Spalten organisiert werden. Der Benutzer erhält die Aufteiler, um das Monatsenddatum (den letzten auf dem Bericht darzustellenden Zeitraum), die Anzahl der Perioden für den gleitenden Durchschnitt (dies wird letztendlich Teil unserer Divisorberechnung sein) und die Anzahl der Perioden für den Trend (dies wird sein Die Anzahl der monatlichen Spalten, die wir auf unserem Trend anzeigen werden). Wir können diese Schneidmaschinen sofort herstellen und mit dem Drehpunkt verbinden. Ich brauche offensichtlich ein Monatsenddatum als Spaltenüberschrift, aber welch ein bis zu einem gewissen Grad Ive, der dieses weg früher gegeben hat. Kurz gesagt, muss ich mein MADatesMonthEndDate Feld verwenden. Der Grund dafür ist, dass dieses Feld nicht mit unserem Datensatz verknüpft ist und daher nicht von anderen Filtern betroffen sein wird. Wenn ich ein Datumsfeld verwende, das Teil meines Datasets oder Teils einer verknüpften Tabelle ist, können die verfügbaren Werte durch die Benutzerauswahl gefiltert werden. Ich kann um diese mit einem ALL () - Ausdruck, um mir die richtigen Werte, aber das Problem ist, dass die Spalte immer noch gefiltert und meine Ergebnisse werden alle in einer Spalte angezeigt werden. Es ist schwer zu erklären, bis Sie es sehen so gehen Sie vor und versuchen Sie es sich lohnt, die Mauer zu schlagen, um es wirklich zu verstehen Berechnen Summe der Verkäufe für die letzten X Monate Der erste Teil unserer Gleichung ist es, den Gesamtwert für den Umsatz über alle Perioden innerhalb berechnen Einen dynamischen Zeitrahmen, der durch den Benutzer ausgewählt werden soll. Dafür verwende ich eine Calculate-Funktion, die wie folgt aussieht: Ich verwende ein Basismaß namens CascadeValueAll, das in Profit amp Loss Die Art der Cascading-Zwischensumme erstellt wurde. Im dann filtern, dass Maßnahme, um meine Datenmenge auf Datensätze, die sich auf Verkäufe und einen Datentyp von Actual (dh die Beseitigung von Budget) zu begrenzen. Dies ist eine einfache Filterung einer CALCULATE-Funktion. Allerdings wird es ein wenig mehr lecker mit dem dritten Filter, die die Datenmenge auf eine Reihe von Daten, die abhängig von den Benutzer-Auswahl in Slicers und unsere Spalte Datum Spalte begrenzt. Die DATESBETWEEN-Funktion hat die Syntax DATESBETWEEN (Datum, Startdatum, Enddate) und funktioniert wie folgt: Ich setze das Feld, das Filter (DatesData) benötigt. Ich habe festgestellt, dass dies am besten funktioniert, wenn dies eine verknüpfte Tabelle der sequentiellen Daten ohne Pausen ist. Wenn Sie irgendwelche Pausen haben, gibt es eine Chance, dass Sie möglicherweise keine Antwort erhalten, da die Antwort, die Sie bewerten, in der Tabelle verfügbar sein muss. Mein Startdatum ist eine DATEADD-Funktion, die das Spaltenüberschriftdatum abzüglich der Anzahl der Monate berechnet, die der Benutzer auf dem Moving Average No of Periods Slicer ausgewählt hat. Ich benutze die Funktion LASTDATE (VALUES (MADatesNextMonthStartDate)), um den Wert NextMonthStartDate aus der Tabelle MADates abzurufen, die sich auf das in der Spaltenüberschrift dargestellte Datum bezieht. Ich dann zurückspulen durch die Anzahl der Monate auf dem Slicer mit MAX (MAFunctionPeriodsMovingAverageNoPeriods) -1 ausgewählt. Das -1 wird verwendet, um in die Zeit zurückzukehren. Der Grund, warum ich NextMonthStartDate und ein Vielfaches von 1 verwenden, wird in Slicers zum Auswählen der letzten X-Perioden genauer erklärt. Mein Endedatum ist einfach das MonthEndDate, wie in der Spaltenüberschrift des Berichts angezeigt. Dies wird mit LASTDATE (VALUES (MADatesMonthEndDate) berechnet. Dies ist großartig, aber meine Maßnahme nimmt keine Berücksichtigung meiner Anzeigenperioden bis zur Auswahl und die Trend Nr der Perioden, die Ive ausgewählt. Wir müssen daher die Maßnahme nur ausführen, wenn bestimmte zu begrenzen Ich möchte nur, dass Werte angezeigt werden, wenn mein Spaltenüberschreitungsdatum ist: Kleiner als oder gleich dem ausgewählten Monatsenddatum auf meinen Anzeigenperioden Bis Slicer AND Größer als oder gleich dem ausgewählten Monatsende Datum WENIGER die ausgewählte Anzahl von Perioden auf meinem Trend No of Periods slicer. Um dies zu tun, benutze ich eine IF-Anweisung, um festzustellen, wenn meine CALCULATE-Funktion ausführen soll. Nehmen wir diese Maßnahme auf SalesMovingAverageTotalValue Die IF-Anweisung funktioniert wie folgt: Ich muss zuerst bestimmen Dass Im nur, wenn ich einen Wert für MADateMonthEndDate. Wenn ich dies nicht tun, bekomme ich, dass alte Lieblings-Fehler in meiner nachfolgenden Auswertung, dass eine Tabelle mit mehreren Werten geliefert wurde ich dann bewerten, um festzustellen, ob meine Spalte Überschrift Datum (VALUES (MADatesMonthEndDate) ist kleiner oder gleich dem Datum, das auf der Monatsendzeitspanne (LASTDATE (datesDateMonthEnd) AND (ampamp) ausgewählt wurde. Mein Spaltenüberschreitungsdatum ist größer oder gleich einem berechneten Datum, das X Perioden vor den ausgewählten Show Periods ist Bis zu, wie auf dem Slicer ausgewählt. Ich benutze eine DATEADD-Funktion für diese ähnlich wie die in meiner CALCULATE-Funktion außer wurden die Anpassung des Datums durch den Wert auf der Trend No of Periods Slicer ausgewählt. Mit diesem vorhanden, haben wir den Gesamtumsatz für den ausgewählten Zeitraum in Bezug auf die Benutzer-Auswahl. Also ist meine Tabelle nun auf die Anzahl der ausgewählten Trendperioden beschränkt und repräsentiert das ausgewählte Monatsenddatum. So, jetzt teilen wir nur durch die Gleitende Durchschnittliche Anzahl der Perioden Right eh NO Weve berechnet unsere Gesamtverkäufe für den Zeitraum in Bezug auf die Benutzer-Auswahl. Sie würden vergeben werden, für den Vorschlag, dass wir einfach durch die Anzahl der gleitenden durchschnittlichen Perioden ausgewählt. Abhängig von Ihren Daten, können Sie dies tun, aber das Problem ist, dass der Dataset möglicherweise nicht halten die ausgewählte Anzahl von Perioden, vor allem, wenn der Benutzer ein Monat Enddatum, das zurück in der Zeit wählen kann. Als Ergebnis müssen wir erarbeiten, wie können Perioden in unserer SalesMovingAverageTotalValue Maßnahme vorhanden sind. Diese Maßnahme ist im Wesentlichen die gleiche wie meine SalesMovingAverageTotal-Maßnahme. Der einzige wirkliche Unterschied ist, dass wir die unterschiedlichen Datumswerte in unserem Datensatz zählen, im Gegensatz zum Aufrufen der CascadeValueAll-Maßnahme. Ich erwähnte früher, dass es einen Grund, warum ich brauchte das Monatsende auf meinem FACTTran Tisch gehalten werden und dies ist der Grund. Wenn ich eine andere Tabelle verwenden, die das Enddatum des Monats enthält, wird diese Tabelle nicht in der Weise gefiltert, dass der Core-Dataset gefiltert wurde. Als Beispiel hat meine Dates-Tabelle eine Reihe von Daten, die meine Datenmenge Zeitrahmen und vieles mehr. Infolgedessen ergibt die Auswertung dieser Tabelle, dass die Tabelle tatsächlich Daten hat, die meinem Dataset vorangehen, und es gibt daher keine Bewertung, ob es eine Transaktion in dem Datensatz für dieses Datum stattfindet. Wie Sie sehen können, da mein Datensatz läuft ab 1. Juli 2009, habe ich nur 9 Perioden von Daten für meine 31032010 Spalte zu bewerten. Wenn ich durch 12 geteilt hatte (nach meinem Moving Average No von Periods Slicer Auswahl), hätte ich eine sehr falsche Antwort bekommen. Offensichtlich ist dies etwas konstruiert, aber seine würdig zu berücksichtigen. Und jetzt die einfache Bit Ich kann verstehen, dass die letzten beiden Maßnahmen einige absorbiert haben, vor allem, wenn bestimmte Datum Felder verwendet werden. Für einige leichte Erleichterung, wird die nächste Maßnahme nicht wirklich steuern Sie Dies ist eine einfache Teilung mit ein wenig Fehlerprüfung, um jede nasties zu vermeiden. Wenn seine alle zusammengestellt werden, da alle diese Maßnahme tragbar sind, kann ich eine andere Pivot-Tabelle auf der gleichen Basis wie die oben (mit SalesMovingAverageValue bei einem Alias ​​von Moving Average) erstellen, bewegen einige Dinge herum, fügen Sie ein Maß für die tatsächlichen Verkäufe Wert für den Monat (Ich werde nicht in das jetzt gehen, aber seine eine einfache CALCULATE Maßnahme mit einiger Zeit Intelligenz) und ich dann rekonfigurieren, um wie folgt aussehen: Ich kann dann ein einfaches Liniendiagramm und eine Trendlinie auf meine tatsächliche Maßnahme Mit dem Diagramm bequem versteckt mein Daten-Raster, dass es fährt. Wie Sie sehen können, zeigt ein Trend auf meine Tatsächliche Maßnahme einen stetigen Rückgang. Mein Moving Average zeigt jedoch einen relativ stabilen, wenn auch nicht leicht verbesserten Trend. Saisonalität von einigen anderen Spikes sind offensichtlich daher beteiligt und die Realität ist, dass beide Maßnahmen wahrscheinlich müssen nebeneinander überprüft werden. Für diejenigen, von denen Sie lesen, die daran interessiert sind, die Arbeitsmappe dieses Beispiels sehen, Ill schauen, um dies in einem zukünftigen Beitrag Post, wenn ich diese Analyse einen Schritt weiter, um die gesamte PampL. Sorry, damit Sie warten. Ich hoffe, dies hilft Ihnen aus BillD One More Point to Note Die Adler gemusterten DAX-Profis da draußen haben wahrscheinlich bemerkt, dass meine IF-Funktionen nur eine Berechnung enthalten, um zu bewerten, wenn der logische Test eine echte Antwort erreicht. Der Grund dafür ist, dass die Funktion BLANK () übernimmt, wenn eine falsche Evaluierungsbedingung nicht bereitgestellt wird. Ich havent ausgearbeitet, wenn theres jede Leistung Auswirkungen mit dieser Methode auf große Datensätze. Seine bis zu Ihnen, was Sie gewählt haben, zu tun und wenn jemand kann mich überzeugen, warum die Kodierung der falschen Bedingung als BLANK () ist die beste Praxis, werde ich schnell meine Gewohnheiten ändern Dieser Beitrag hat 6 Kommentare Renato Lyke sagt: Ich habe gerade diesen Blog-Post Von Bill Anton, wo er diskutiert mehrere Ansätze zur Berechnung der Median einer bestimmten Menge in T-SQL, MDX und DAX. Am Ende seiner Posten, wenn es um die DAX Berechnung geht, verweist er auf mehrere Post von Marco. Alberto und Javier (post1. Post2), die diese Art der Berechnung bereits im DAX ansprechen. Aber er behauptet auch, dass nicht die Lösungen elegant sind. Nun, Grund genug für mich zu versuchen, es auf meine eigene und hier ist, was ich kam mit. Es liegt an Ihnen zu entscheiden, ob diese Lösung ist eleganter als die anderen oder nicht Im Allgemeinen ist die mittlere Berechnung immer abhängig von der Anzahl der Elemente und ob diese Zahl gleich oder ungerade ist. Für eine gerade Population ist der Median der Mittelwert der Werte in der Mitte: der Median von 3. 5. Fig. 7 9 ist (5 7) 2 6 Bei einer ungeraden Population ist der Median der mittlere Wert: der Median ist 5 In beiden Fällen müssen die Werte vor der Berechnung geordnet werden. Beachten Sie, dass es keinen Unterschied macht, ob die Werte in aufsteigender oder absteigender Reihenfolge sortiert werden. In diesem Beispiel enthält unser Set 12 Items (Monate), so dass wir die 2 Items in der Mitte des bestellten Sets Dezember und Februar finden und den Mittelwert berechnen müssen. Also, wie können wir dieses Problem mit Hilfe von DAX Die meisten der Beiträge, die ich oben erwähnt verwenden eine Art Kombination von Ranking RANKX () und Filtern von FILTER (). Für meinen Ansatz werde ich keine dieser verwenden, sondern verwenden Sie stattdessen TOPN (ja, ich wirklich wie diese Funktion, wie Sie wahrscheinlich wissen, wenn Sie mein Blog für einige Zeit gefolgt). In diesem speziellen Fall kann TOPN () für uns sowohl das Ranking als auch das Filtering machen. Aber zuerst müssen wir wissen, wie viele Elemente in unserem Satz vorhanden sind: CntMonths: DISTINCTCOUNT (8216Date8217 Monat) Dieser Wert wird nachfolgend in unseren nächsten Berechnungen verwendet. Um den Wert (s) in der Mitte zu finden, benutze ich TOPN () zweimal, zuerst die erste Hälfte der Items (vergleichbar mit TopCount) und dann ein zweites Mal die letzten Werte, die wir für unsere Medianberechnung benötigen (ähnlich To BottomCount): Da die mittlere Berechnung für gerade und ungerade Mengen unterschiedlich ist, muss dies auch bei unserer Berechnung berücksichtigt werden. Bei beiden Berechnungen wird MOD () - Funktion verwendet, um beide Fälle zu unterscheiden: ItemsTopCount: IF (MOD (CntMonths, 2) 0, (CntMonths 2) 1, (CntMonths 1) 2) Für eine gerade Anzahl von Elementen (z Einfach dividieren Sie die Anzahl der Elemente durch 2 und fügen Sie 1, die gibt uns eine (12 2) 1 7 für unsere Probe. Für eine ungerade Zahl von Elementen (zB 5) addieren wir zuerst 1 zu unserer Anzahl von Items und teilen uns dann durch 2, die uns ergibt (5 1) 2 3 ItemsBottomCount: IF (MOD (CntMonths, 2) 0, 2, 1) For Eine gerade Anzahl von Elementen, die wir die letzten 2 Werte berücksichtigen müssen, während wir für eine ungerade Anzahl von Elementen nur den letzten Wert berücksichtigen müssen. Diese Berechnungen werden dann in unserer Medianrechnung verwendet: Median SA Monate: CALCULATE (SumSA, TOPN (ItemsBottomCount, TOPN (ItemsTopCount, VALUES (8216Date8217 Monat), SumSA), SumSA -1)) ItemsBottomCount Da DAX kein eingebautes BOTTOMN ) - Funktion, müssen wir die Funktion TOPN () missbrauchen und den OrderBy-Wert mit 1 multiplizieren, um die Funktion BOTTOMN () zu erhalten. Wie Sie sehen können, wird die meiste Logik bereits durch unsere ItemsTopCount und ItemsBottomCount Maßnahmen gehandhabt und dieses Muster kann sehr leicht wiederverwendet werden. Selbstverständlich können alle diese Berechnungen auch kombiniert und die Verwendung von IF () vermieden werden: Median SA Monate v2: BERECHNUNG (SumSA, TOPN (2 8211 MOD (CntMonths, 2), TOPN ((CntMonths 1) 2, VALUES (CntMonths, 2)) Anmerkung: Für eine gerade Population (CntMonths 1) 2 gibt X.5 zurück, das automatisch aufgerundet wird, wenn es in einer Funktion verwendet wird, die Erwartet eine ganze Zahl. In unserem Beispiel ist dies der Fall: (12 1) 2 6,5 gt 7 Dies sind die Endergebnisse: Wir könnten auch AVERAGEX () verwenden, um unseren Median zu berechnen, aber ich denke, dass es eine Art Overhead ist, um AVERAGEX () nur zu benutzen Dividiert durch 1 oder 2 abhängig von der Anzahl der Elemente, die unsere TOPN-Funktionen zurückgeben: Median SA Monate AvgX: AVERAGEX (TOPN (2-MOD (CntMonths, 2), TOPN ((CntMonats 1) 2, VALUES (8216Date8217 Monat) SumSA), SumSA -1), SumSA) Wie Sie sehen können, gibt es verschiedene Ansätze zur Berechnung der Median, seine bis zu Ihnen, die auf Sie wie die meisten. Ich habe nicht getestet, einer von ihnen in Bezug auf Leistung über größere Sets dieses Thema für eine bevorstehende Post sein kann. Download Final Model (Office 2013) Dies ist nur für die Zeitdimension funktioniert, habe ich Lösung für andere Dimensionen und Aggregationen: Trick ist die Verwendung von Fact-Tabelle ID, IFFACT und SUMMARIZE (8216FFACTSMMEASURE) Median von MMEASURE: CALCULATE (SUM (MMEASURE) TopN (ItemsBottomCount TopN (ItemsTopCount Summarize (8216FFACTS82178217FFACTSIDFACT8217FFACTSMMEASURE) MMEASURE) MMEASURE 1)) ItemsBottomCount Und diese Duplikate von MMEASURE vermeiden: Median von Maßnahme: CALCULATE (SUM (MMEASURE) TopN (ItemsBottomCount TopN (ItemsTopCount Summarize (8216FFACTS82178217FFACTSIDFACT8221tmpMMEASURE8221SUM (8216FFACTSMMEASURE)) tmpMMEASURE) tmpMMEASURE Hallo Kazo, danke für eure Rückmeldung dazu gibt es zwei Probleme, die ich mit eurer Lösung sehe: 1) mit dem Colum aus der Faktentabelle gibt verschiedene Ergebnisse nur annehmen, dass Sie den Median für ein gegebenes Jahr berechnen wollen und der aktuelle Monat Juni ist Haben Sie nur 6 Monate in Ihrer fact-Tabelle, während Sie 12 Monate in Ihrer Zeit-Tabelle haben und natürlich die Berechnung der Median über 6 Monate Rückkehr sehr unterschiedliche Ergebnisse im Vergleich zu 12 Monaten würde ich sagen, dies sehr viel depens auf die geschäftlichen Anforderungen , Im Allgemeinen sind beide Berechnungen gültig 2) Wenn Sie den Median auf einer Spalte in Ihrer Faktentabelle durchführen, müssen Sie diese Spalte auf die Faktentabelle verschieben (z Und ich würde die SUMMARIZE () durch eine einfache ADDCOLUMNS (): ADDCOLUMNS (VALUES (8216FFactsIDFACT), 8220tmpMMEASURE8221, MMEASURE) auch Sie müssen nicht verwenden, um SUM () Wenn MMEASURES bereits die Summe über Ihre Fact-Tabelle berechnet Hallo Gerhard Ich bin ein wenig neu für DAX und benötigen auch eine mediane Funktion. Ich bin nicht sicher, die Lösungen vorgeschlagen hier könnte für mich arbeiten. Kann ich eine Medianberechnung für eine Zelle (beim Pivottable Browsing von Excel), die ähnlich wie eine Summe oder avg Funktion funktionieren würde (hängt nicht von einer anderen Spalte, sondern nur die gefilterten Spalten auf der Zelle ohne Leerwerte). Dies ist für die Berechnung Medianen in Hypothek Betrag Feld, je nachdem, welche Auswahl der Benutzer sie den Median für die Auswahl haben wollen. Die Funktion muss emptynull 8216s und auch viele Duplikate in der Menge behandeln (scheint, wie TOPN-Funktion in die Bindungen bringt, kann es Tausende von Duplikationen in Betrag Feld für Hypotheken in US etc.) Vielen Dank Hallo Gokhan, der Ansatz I Die hier beschriebene Methode berechnet den Median auf Basis einer gegebenen Spalte und den aggregierten Betrag einer Maßnahme, wenn ich Sie richtig verstanden habe. Sie benötigen diese Berechnung für jede Spalte, die Sie in die Pivot-Tabelle ziehen können, dies wäre nur möglich, wenn die Berechnung durchgeführt wird Auf dem untersten graingrain der fact-table ist das was du brauchst Vielen Dank für die Lösung von Median. Ist es möglich, den endgültigen Median in allen Monaten8217 Zeilen anzuzeigen. Dh von Januar bis Dezember für alle 12 Zeilen 8211 Median 564.035 Diese Berechnung liefert den Jahreswert für alle Monate: Median SA Jahr: CALCULATE (Median SA Months v2, ALLE (8216DateMonth), ALLE (8216DateMonth Name)) macht diese Arbeit Für Euch Danke Gerhard für die schnelle Antwort. Es funktioniert, wenn es keine Duplikate gibt. Aber meine Daten haben viele Duplikate, die berücksichtigt werden müssen. Was meinst du mit Duplikaten Der gleiche Wert für zwei oder mehr Monate dies sollte keinen Unterschied machen für Ihre Median Berechnung Die Frage, ob es ist, dass wenn es8217s eine Krawatte, es summiert die Summe der Bindungen als der mittlere Wert. Zum Beispiel: 1, 1, 2, 2, 3, 3, der Median wäre 4 statt 2. Vielleicht it8217s, weil ich das Datum VALUES mit meiner ganzen Tabelle CALCULATE (SumSA, TOPN (ItemsBottomCount, TOPN (ItemsTopCount, VALUES DATA8217), SumSA), SumSA -1)) ItemsBottomCount ja, einige Leute berichteten schon Probleme mit doppelten Werten, wenn Sie mit Power BI können Sie auch die native MEDIAN-Funktion anstatt freundliche Grüße, - gerhard Ich habe eine Herausforderung Hoffnung kann ich bekommen Einige Antworten. Ich habe eine Tabelle mit 3 Spalten und 4. Spalte sollte eine berechnete Spalte auf die Daten in 3 Spalten basieren. SO Datum PO Arr (berechnetes Feld) 123 212013 PO1 123 234 412013 PO1 123 345 512013 PO1 123 Arr Für die SO, die die gleiche PO hat, wird Arr das früheste Datum von SO sein Könnten Sie mir bitte helfen, wie Sie dies mit DAX tun. Ihre Hilfe wird groß geschätzt. Ich halte die Überprüfung dieser Webseite für alle Antworten. Danke nochmals Hallo, sollte dies funktionieren CALCULATE (VALUES (Table1SO), TOPN (1, FILTER (ALLE (Tabelle1), PO EARLIER (PO)), Datum)), aber ich denke, es sollte auch eine Lösung mit FIRSTDATE () aber Ich habe keine Zeit im Moment Gerhard, könnte ich zurückpacken zu Gokhans E-Mail August 11, 2013 um 19:07 Er fragte, ob er eine Zelle Version von Median haben könnte, und Sie antwortete nur möglich, auf dem niedrigsten graingrain der Faktentabelle Vielleicht könnte ich erweitern, dass ein bisschen Ich habe eine Tatsache-Tabelle (total denormalisiert), die relative Stärke der Aktien an der NYSE hat. Es hat Felder für sectorindustryticker und relative Stärke. In einer sehr einfachen Pivot-Tabelle würde ich eine 3-Tier-Hierarchie für Zeile, relative Stärke als Wert, und avg rel str für Spalte. Auf der Korn-Ebene, ein Tickers avg rel str die ursprüngliche rel str. Auf Branchenebene ist der Durchschnitt der Durchschnittswert aller rel str der Tickers in der Branche. Auf der Sektorebene, wie für die Industrie, aber jetzt für alle Tickern der Branchen in der Branche. Was Sie für Median haben. Mit TOPN-Zählung Monate, würde die folgenden geben: 1. median rel str ursprüngliche rel str an der Tickerkorn-Ebene Ja 2. mediane Industrie rel str. Auf der Industrie Ebene 1up von Getreide Ebene 3. median Sektor rel str. Auf der Sektorebene 2up von der Kornstufe Iff kann die Hierarchiefunktion den Bereich erweitern, um die zusätzlichen Tickers zu zählen, die die zusätzlichen Monate zählen. Das ist, wie Pivot-Tabellen bekommt den Durchschnitt zu erweitern Umfang ich denke. Also ich denke, ich frage, ob das machbar ist oder ist, dass im Grunde der Grund Median ist nicht Teil der grundlegenden Pivot-Tabelle Werte Optionen Und nicht Teil der DAX Hallo Ron, ist das Hauptproblem, dass DAX nicht sehr auf unterschiedliche Berechnungen auf verschiedene zu bekommen Spalten oder Handhabungshierarchien. Gokhans-Anfrage war, um es dynamisch so funktioniert es für alle Spalten, die nicht wirklich möglich ist, wenn Sie die Berechnung für jede Spalte separat definieren. In Ihrem Fall haben Sie nur 3 Spalten, die auch in einer Hierarchie, die den Ansatz bereits beschrieben von Alberto Ferrari machbar macht: sqlbiarticlesclever-Hierarchie-Handling-in-dax Check out der RatioToParent Berechnung am Ende des Beitrags. Sie müssen grundsätzlich dasselbe tun: 1) verwenden Sie ISFILTERED (), um herauszufinden, auf welcher Ebene Sie momentan sind 2) nehmen Sie die Berechnung an, um VALUES zu verwenden (DAX selbst ist keiner Hierarchie bekannt


No comments:

Post a Comment