Messen im DAX zu berechnen, YTD für den gewählten Monat nur für Power BI
Wie konstruieren DAX-measures zu berechnen, die Summe der YTD-Wert für einen bestimmten Monat?
Hier haben wir FactTable gruppiert nach Monaten. FactTable ist gefüllt mit sowohl ist-und Prognosedaten. Der einzige Weg zu wissen, wenn Tatsächliche Ende ist die information in der Tabelle [Schnitt Datum] in der Spalte [Ende des Jahres]. In der Tabelle [Schnitt Datum] in der Spalte [Ende YTD] – es ist ein einzelner Wert Tabelle – wir haben die interessanten gewählten Monat, die wir sehen wollen, die Berechnung der JBH. In unserem Fall ist es März. FactTable aktualisiert unregelmäßig jeden Monat in der Regel mit einem Monat Verzögerung. Es gibt keine Möglichkeit der Verknüpfung mit Zeit-Funktionen wie HEUTE, weil der unregelmäßig update.
Wir würden gerne einen richtigen Wert von YTD-gelb dargestellt-Karte Visual für den Monat [Ende des Jahres]. Wenn wir klicken auf den slicer auf "2018-03" wir bekommen fast das, was wir wollen – korrigieren Sie den Wert 66 in die gelbe Karte. Aber diese Lösung ist nicht automatisch. Ich möchte sehen, richtigen Wert automatisch ein, wenn die [Ende YTD] Monat ändert, in unserem Fall bis April oder dann im Mai. Ich will es nicht vom Benutzer erfolgt sind.
Meine verzweifelten Anstrengungen, die heruntergeladen werden kann, aus der Datei: DAX YTD.pbix
Verfolgte ich das Reh auf verschiedene Weise:
- Mithilfe FILTER - Funktion in DAX-Maßnahmen. Aber es scheint, dass die
- FILTER-Funktion ist zu hart. Es wird angewendet, um Faktentabelle erste,
die Auswahl von nur einem Monat, und dann die Berechnung der YTD-Wert falsch. Also, wenn
es wäre eine option für zwingen Reihenfolge der Berechnung und Filterung, es würde
Hoffnung. - Ich versuchte SCHALTER - Funktion angezeigt ordentliches Ergebnis
für einen bestimmten Monat und 0 oder null für andere Monate. Obwohl Ich
gelingt dies, ich war nicht in der Lage, um es auszunutzen. Wenn es
kam zu filtern ich war so hoffnungslos wie zuvor. BTW ich würde in der Lage sein
zu machen, wenn der SCHALTER erzeugt die Summen am Ende der Tabelle, aber es
nicht. Überraschend. - Setzte ich einige Hoffnungen in VERWANDTE Funktion zur Anzeige der richtigen Ergebnisse in der [Stichtag] - Tabelle. Ich habe nicht zu Fuß aus dem Nebel so weit.
Ich würde Ihre Hilfe schätzen.
Update vor bounty.
Geht eine Ebene höher. Ich habe eingeführt eine Spalte Kategorie, um FactTable. Bitte laden Sie DAX YTD-Kategorie.pbix. Damit abfiltrieren wird komplexer nun. Ich hätte gerne richtige YTD-zahlen für Äpfel Kategorie.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie die
Date
Spalte aus derCalendar
Tisch, statt ausFactTable
?Wenn Sie die Datum-Spalte aus
FactTable
, wenn Sie einen filter anwenden, der auf das Datum, es werden filter auf der Tatsache Datensätze, die im März, und führen Sie dann die Berechnung danach, damit das Ergebnis33
.Wenn du die eine aus
Calendar
, wenn Sie einen filter anwenden, auf, es filtert die Datensätze aufCalendar
(die Sie zeigen wollen in der Grafik), so ist die zugrunde liegende Berechnung wird weiterhin intakt bleiben.Einem Beispiel arbeiten:
Calendar = CALENDAR(DATE(2010, 1, 1), DATE(2020, 12, 31))
Ich schlage vor, Sie ändern die Berechnungen zu den Maßnahmen zur Vermeidung von fehlenden Werten in einigen Fällen:
UPDATE:
Ist es viel deutlicher zu mir, was Sie erreichen wollen, jetzt, aber es scheint immer noch ein XY-problem mir.
Ich verstehe, dass Sie wollen, um zu zeigen, das dashboard ist so, dass Benutzer nicht brauchen, um klicken Sie auf/Eingabe jedes mal zu sehen, was Sie sehen sollen. Das ist, warum ich verstehe nicht, warum Sie benötigen, um erstellen Sie eine neue Tabelle zum speichern der
Cut off date (End of YTD)
. Wie wird es sich automatisch verwaltet werden?Den
relative date filtering
Lösung oben eigentlich noch funktioniert in die .pbix Datei, die Sie geteilt haben. Wenn Sie ziehen Sie dieDate
Spalte aus derCalendar
Tabelle auf visueller Ebene Filter für die gelbe Karte, und fügen Sie ein relatives Datum filtern, es sollte funktionieren wie folgt:Für die
End of YTD
visual, können Sie die folgende Maßnahme um den ersten Tag des letzten Kalendermonats, so brauchen Sie nicht, um erstellen Sie eine weitere Tabelle für Sie:Und hoffentlich das ist, was Sie erreichen wollen:
Aktualisierte Datei für Ihre Referenz.
Wieder ein UPDATE:
Denke ich, werden Sie haben, um schreiben Sie Ihre eigenen
YTD
Berechnung anstelle der Verwendung der built-in eine, so dass Sie machen können Verwendung von cut-off-Datum, das Sie in einer anderen Tabelle definiert. Hier nehme ich an, dass Sie eine haben und nur eine Zeile in'Cut off date'[End of YTD]
. Beachten Sie, dass ich Hinzugefügt habeALL()
dem filter, so dass die gelbe Karte bleibt die gleiche (66) anstatt zu zeigen, leer, wenn einige andere Zeilen/Filter geklickt:Calendar
Tabelle für den aktuellen Tag relatives Datum filtern. Wie Sie sehen können, meineCalendar
Tabelle enthält alle Termine von 2010 bis 2020, aber die relatives Datum filtern ist mit Verweis aufNow
(2018-04-09 oder 2018-04-10 hängt von Ihrer Zeitzone), nicht alle Daten in der Tabelle.Cut off date (End of YTD)
in der Lage sein zu wissen, wenn die Tatsächlichen endet und Forcast beginnt. Die gelbe visual gemeint ist, für die Eigentliche nur. Es gibt keine Verbindung zwischenCut off date (End of YTD)
- und real-Kalender. Die Arbeitsbiene kann neu laden Aktuelle Daten von 10 Tagen nach Ende des Kalendermonats oder 25 Tage. Also ich muss den filter aus der Tabelle.YTD_special
aktualisiert werden, die von anderen filtern können Sie entfernen Sie dieALL()
- Funktion, um zu sehen, ob es für Sie arbeitet. Gerne helfen!Ich würde dieses Problem beheben, indem Sie hinzufügen einer berechneten Spalte zu Ihrem Kalender-Tabelle zu kategorisieren jede Zeile entweder "YTD" oder "Andere", z.B.
Ich würde dann die neue hinzuzufügen Ist YTD Feld der Visuellen Ebene filtern Sie Ihre Karte im visuellen und wählen Sie YTD aus der Basic-Liste filtern. Die Maßnahme gezeigt werden kann, Ihre einfache Insgesamt Maßnahme: SUMME(FactTable[Wert]).
Dies ist ein weit mehr flexibel und wiederverwendbar Lösung als jede Maßnahme, die gymnastik. Sie nicht brauchen, eine explosion von Maßnahmen anwenden, die erforderliche Logik der oben auf jeder base-Maßnahme - Sie alle arbeiten einfach natürlich. Sie können den filter auf jeder Ebene: Visual, Page, Report, oder legen Sie es in einen Datenschnitt für die Kontrolle durch den Endbenutzer.
Bevorzuge ich den text wieder ergibt z.B. "YTD" /"Andere" (statt 1/0, Wahr/Falsch oder ja/Nein), da dies ermöglicht die einfache Erweiterung auf andere Anforderungen z.B. "Vor YTD" (1. Januar 2017 bis 1. März 2017). Es ist auch klarer, wenn verwendet, in visuals.
Eigentlich darf ich nicht behaupten, den Kredit für dieses design - dies entspricht in etwa folgt, wie Cognos Transformer Relative Funktionalität Zeit arbeitete in den 90er Jahren.
Cut off date'[End of YTD]
geändert EOMONTH?Cut off date'[End of YTD]
gespeichert ist, als der erste Tag des Monats ie 2018-03-01 obwohl es bedeutet, März 31.Is YTD = IF ( [Date] >= DATE( YEAR( DISTINCT( 'Cut off date'[End of YTD] ) ) , 1 , 1 ) && [Date] <= DISTINCT( ENDOFMONTH( 'Cut off date'[End of YTD] ) ) , "YTD" , "Other" )
Ich habe so etwas in meinem Regelmäßigen/Jahres-Bericht (letztes Blatt): http://ciprianbusila.ro/
Habe ich verwendet der index-Wert des Monats ausgewählt (range 1-12) und auf dieser Basis habe ich eine Maßnahme mit max-Funktion sehen Sie bitte den folgenden code: