Im letzten Blog-Beitrag haben wir DATEADD() vorgestellt für flexible Periodenvergleiche. DAX bietet eine ähnlich klingende Funktion mit dem Namen PARALLELPERIOD – die aber tatsächlich etwas anderes tut!

Ausgangsdaten

Für das Beispiel benötigen wir Ausgangsdaten. Es genügt eine einfache Faktentabelle und eine Kalendertabelle. Als Faktentabelle verwenden wir die aus dem letzten Blogbeitrag – einfach ein Datum und ein Wert: Faktendaten Die Kalendertabelle lassen wir uns generieren: In Excel am schnellsten mit der integrierten Funktion in Power BI mit der Funktion CALENDAR():

Die Kalendertabelle erweitern wir um das Jahr, das Quartal und den gekürzten Monatsnamen (in Excel geben Sie den Spaltennamen nicht in der Formel, sondern im Spaltenkopf an):

Beide Tabellen verknüpfen wir über die Datumsangabe.

Den Vorjahreswert mit DATEADD ermitteln

Dann legen eine Measure für den Vorjahresvergleich an – mit DATEADD:

Damit können wir folgende Pivottabelle darstellen: Pivottabelle mit Vorjahreswerten

Und PARALLELPERIOD?

Wir legen ein weiteres Measure an. Dieses Mal mit der Funktion PARALLELPERIOD - die Signatur der Funktion ist identisch:

Wenn wir die zweite Measure einfügen sieht die Pivot-Tabelle auch identisch aus: Vorjahreswerte mit PARALLELPERIOD Also macht PARALLELPERIOD doch das gleiche?

Same same but different

Fügen Sie in die Pivot-Tabelle noch den Monat ein – dann sehen wir einen Unterschied: Vorjahreswerte auf Monatsbasis DATEADD() betrachtet den aktuellen Zeitraum im Benutzerkontext. Daher wird das Jahr in der Zeile, also der Zeitraum von 1.1. bis zum 31.12., um ein Jahr verschoben. PARALLELPERIOD() hingegen nimmt die gesamte Vorperiode, die in der Funktion übergeben wurde. Und zwar unabhängig, welcher Benutzerfilter gesetzt wurde. Da auch hier Jahr angegeben wurde, sind die Ergebnisse beider Funktionen in diesem Fall identisch. Wählen wir jedoch zusätzlich den Monat aus, verschiebt DATEADD() auch nur den ersten bis zum letzten des Monats um ein Jahr nach vorne. PARALLELPERIOD() hingegen nimmt weiterhin das ganze Intervall, das in der Formel hinterlegt wurde. In diesem Beispiel also weiterhin das gesamte Vorjahr. Damit wird immer das gesamte Vorjahr mit dem aktuellen Monat verglichen. Fügen wir noch das Quartal ein. Wie Sie in der Abbildung sehen können, verschiebt DATEADD() immer um drei Monate zur Ermittlung des Wertes, PARALLEPERIOD() nimmt das gesamte vorherige Quartal: Werte des vorherigen Quartals - DATEADD vs. PARALLELPERIOD

Einfaches Anwendungsbeispiel

Vergleich des Umsatz des aktuellen Quartals mit dem Vorquartal – wobei der Wert des Vorquartals als Ziel verwendet wird: Anwendungsbeispiel mit Gauge