2016-08-03 68 views
0

Ich habe zum ersten Mal mit einem Dataset zu tun, das [Export_Date_ & _Time] jedes Mal anfügt, wenn ein Export von der Datenquelle ausgeführt wird. Veranschaulichen:DAX/PowerBI Min./Max. Datum und Suchen nach dem 2. Spätestem Datum

ID   Export_Date_&_Time 250 more data elements/fields.... 
01A  01/01/2015 24:00:00  
02B  01/01/2015 24:00:00  
01A  12/12/2015 24:00:00  
02B  12/12/2015 24:00:00  

Ich bin ein Bündel von Maßnahmen mit den [Export_Date_ & _Uhrzeit] Werte zu schaffen. Zum Beispiel:

MAXDate = MAX(REF_Opportunites[Export_Date_&_Time]) 
MINDate = MIN(REF_Opportunites[Export_Date_&_Time]) 
AbsoluteMAXDate = CALCULATE(MAX(REF_Opportunites[Export_Date_&_Time]), ALL(REF_Opportunites)) 
AbsoluteMINDate = CALCULATE(MIN(REF_Opportunites[Export_Date_&_Time]), ALL(REF_Opportunites)) 

Dann wird eine Reihe von Spalten, die ich meine Visuals filtern helfen:

IsEarliestExportDate = IF(REF_Opportunites[Export_Date_&_Time]= [AbsoluteMINDate], "Earliest", "Later") 
IsLatestExportDate = IF(REF_Opportunites[Export_Date_&_Time] = [AbsoluteMAXDate], "Latest", "Not Current") 
IsEarliestandLatestExportDates = IF(REF_Opportunites[Export_Date_&_Time] = [AbsoluteMINDate] || REF_Opportunites[Export_Date_&_Time]= [AbsoluteMAXDate], "Yes", "No") 

Ich habe 2 Fragen ... Warum ist es, dass, wenn ich versuche zu verwenden [MaxDate] (vs [AbsoluteMaxDate]) in meiner IF-Anweisung "IsLatestExportDate", dass ich nicht das gleiche Ergebnis bekomme? Mit [Max Date] ändert sich alles in meiner Spalte zu "Latest"? Ich möchte [Max Date] verwenden können, wenn ich einen Slicer/Filter auf meinem Dashboard installieren möchte, der das Feld [Export_Date_ & _Time] verwendet. Wenn ich in diesem Szenario eine andere Option im Slicer auswähle, die nicht [AbsoluteMaxDate] ist, werden alle Visualisierungen leer gelassen (vorausgesetzt, dass "IsLatestExportDate" ein visueller/Seitenfilter ist).

Wie würde ich eine Measure/Spalte erstellen, die die Auswahl des Maximalen Datums UND der Periode direkt vor dem Maximum ermöglichen würde? (Ich habe versucht, LATEST hier zu verwenden, aber es gab mir einen Fehler über doppelte Datumswerte in einer Spalte).

Wenn es hier einen besseren Ansatz gibt würde ich gerne hören, ich bin Das Finden von Datums- und Uhrzeitfunktionen in DAX ist extrem frustrierend. Bevor Sie das Feld [Export_Date_ & _Time] fragen, wird das Feld nicht in einem vordefinierten Intervall generiert, daher glaube ich nicht, dass eine der Time Intelligence-Funktionen von Nutzen sein wird.

Antwort

0

Q1: Der Grund, warum die Verwendung von [MAXDate] immer die letzte zurückgibt, wenn sie innerhalb von [IsLatestExportDate] verwendet wird, wird durch den berechneten Spaltenkontext verursacht.Wenn Sie das [MAXDate] -Maß verwenden, wird es unter den aktuell berechneten Spaltenkontextfeldern berechnet, das nur die aktuelle Zeile der Tabelle besitzt. Wenn Sie die MAX() -Funktion innerhalb des MAXDate-Measures ausführen, wird es immer mit dem einzelnen Wert verglichen , deshalb gibt es immer das "Letzte" zurück.

Um dies zu umgehen, kann man MAX(REF_Oppportunities[Export_Date_&_Time]) innerhalb der [IsLatestExportDate] berechneten Spalte verwenden (anstelle einer Kennzahl, die diese Formel enthält). Wenn Sie jedoch Ihre Datenmenge filtern oder teilen, gibt es meines Wissens keine Möglichkeit, die berechnete Spalte basierend auf der Filterung der aktuellen angewendeten Filter neu zu bewerten. Daher wird "Latest" nur die wahre MAX() der gesamten Spalte identifizieren.

Q2: Da die lastdate() Funktion nicht auf einer Säule mit duplizierten Daten arbeiten kann, habe ich die folgende berechnete Spalte das zweite jüngste Exportdatum zu finden:

Is2ndLatestExportDate = IF(REF_Opportunites[Export_Date_&_Time] = CALCULATE(MAX(REF_Opportunites[Export_Date_&_Time]), filter(REF_Opportunites, REF_Opportunites[Export_Date_&_Time] <> MAX(REF_Opportunites[Export_Date_&_Time]))), "2nd Latest", "Not 2nd Latest")

0

Q1. Wenn Sie eine Schneidemaschine unter Export_Date_&_Time verwenden und die Daten kleiner oder größer als [AbsoluteMaxDate] filtern, erhalten Sie Not Current für jede Zeile in der Spalte IsLatestExportDate. Auch wenn Sie [MAXDate] Maßnahme, so etwas wie folgt verwenden:

IsLatestExportDate = IF([MAXDate] = [AbsoluteMAXDate], "Latest", "Not Current") 

Sie das gleiche Ergebnis erhalten, da [MAXDate] berechnet wird, um die Zeilen aus der Slicer gefiltert verwenden, in diesem Fall die Zeilen anders als [AbsoluteMAXDate] so natürlich erhalten Sie immer Not Current.

Q2. Um das vorherige Datum auf das maximale Datum zu bringen, habe ich eine Spalte und eine Kennzahl erstellt, die diese Spalte verwendet.

Dann erstellen Sie einfach eine Kennzahl, um die letzte vor dem Höchstdatum zu berechnen.

LatestPrevious = 
LASTDATE (REF_Opportunites[Previous]) 

enter image description here

Lassen Sie mich wissen, ob dies hilft Ihnen, oder zumindest treibt Sie in die richtige Richtung.

+0

Hmm gegenüber Q1 Ich denke, ich habe mich schlecht erklärt. Lassen Sie mich wiederholen: Wenn ich verwende: 'IsLatestExportDate = IF (REF_Opportunites [Export_Date _ & _ Zeit] = [MAXDate]," Latest "," Nicht aktuell ")' Dann wird alles in der benutzerdefinierten Spalte mit "Latest" aufgefüllt. Wenn ich 'IsLatestExportDate = IF (REF_Opportunites [Export_Date _ & _ Zeit] = MAX (REF_Oppportunities [Export_Date _ & _ Zeit])," Latest "," nicht aktuell ")' .. dann kategorisiert es die neuesten Daten exportiert als "Latest" korrekt. Ich denke, dass ich nicht verstehe, wie Measures in Filtertabellen funktioniert. –

+0

Aber zu Ihrem Punkt, bringt weder die Messung oder die MAX-Funktion mich zu meinem Ziel Ende ... Gibt es trotzdem, dass [IsLatestExportDate] kann auf der Grundlage aller Slicer/Filter in der Spalte [Export_Date _ & _ Zeit] aktualisiert werden? –

+0

Mit Bezug auf Q2 habe ich den folgenden Fehler beim Erstellen der Spalte erhalten: 'Eine Datumsspalte mit doppelten Daten wurde im Aufruf der Funktion 'LASTDATE' angegeben. Dies wird nicht unterstützt. " Beachten Sie bitte auch, dass die realen Daten mehr als 2 Exportdaten haben. Wenn ich Ihre Spaltenformel richtig lese, kann sie nicht zwischen Daten unterscheiden, die um 1 Punkt kürzer sind als ... 2 Perioden weniger als ... 3 Perioden usw. –