Rollierung von Dashboards in Power BI mittels Abschlußstichtag

Für die automatische monatliche Rollierung von Dashboards gibt es in Power BI die relativen Zeitfilter (als Slicer oder in der Filterleiste). Diese können aber nur eingesetzt werden, wenn der Periodenwechsel streng nach Kalender, also am 01. des Monats um 0:00, stattfindet. Der folgende Beitrag zeigt, wie mit einfachen DAX Bausteinen eine Lösung mit individuellem Abschlußtstichtag realisiert werden kann.

Schritt 1: Parameter Tabelle mit Abschlußstichtagen

Dem Datenmodell wird eine unverknüpfte (und auch nicht verknüpfbare) Parameter Tabelle mit den Closing Dates hinzugefügt:

Die Tabelle enthält die Abschlußstichtage für das laufende Jahr und den jeweiligen Gültigkeitszeitraum für den reportingfähigen Zeitraum:

Schritt 2: Measures zur Ermittlung des aktuellen Closing Dates

Im nächsten Schritt wird mit einem Measure der aktuell zutreffende Abschlußstichtag ermittelt. Das Measure filtert die Tabelle Closing Dates auf jene Datensätze, deren Closing Date bis zum heutigen Tag liegen und liefert dann das höchste Closing Date dieser gefilterten Liste:

Current Closing Date = 
    CALCULATE(
        MAX('Closing Dates'[Closing Date]);
        FILTER(
            'Closing Dates';
            'Closing Dates'[Closing Date] <= TODAY()
        )
    )

Zum Zeitpunkt der Erstellung dieses Blogbeitrags wird der 03.03.2023 ermittelt:

Ergänzend wird in einem weiteren Measure der aktuelle Reporting Ultimo zur Anzeige in den Reports ermittelt, dazu wird ein einfaches LOOKUPVALUE() - vergleichbar einem SVERWEIS() in Excel - eingesetzt:

Current Reporting Date = 
    LOOKUPVALUE(
        'Closing Dates'[Reporting Until];
        'Closing Dates'[Closing Date];
        [Current Closing Date]
    )

Der aktuelle Tag für den Screenshot oben wird mit folgenden Measure ermittelt:

Today = TODAY()

Schritt 3: Calculated Column in der Datumsdimension

Jetzt wird der ermittelte aktuelle Abschlußstichtag in die Dim Dates Tabelle als Calculated Column eingesetzt. Mit zwei LOOKUPVALUES() wird das Start- und das Enddatum laut Closing Dates Tabelle abgefragt und als Bedingung für die TRUE() / FALSE() Ausgabe in dieser Spalte verwendet:

Open for Reporting = 
VAR varFrom = 
    LOOKUPVALUE(
        'Closing Dates'[Reporting From];
        'Closing Dates'[Closing Date];
        [Current Closing Date]
    )

VAR varUntil = 
    LOOKUPVALUE(
        'Closing Dates'[Reporting Until];
        'Closing Dates'[Closing Date];
        [Current Closing Date]
    )

RETURN
IF(
    'Dim Dates'[Date] >= varFrom
    && 'Dim Dates'[Date] <= varUntil;
    TRUE();
    FALSE()
)

Konkret liefert die Calculated Column ein TRUE() an jedem Tag, der innerhalb des definierten Zeitraums laut Closing Dates Tabelle liegt:

Visualisiert sieht das so aus:

Schritt 4: Aktivieren als Page/Report Level Filter

Jetzt braucht die Column nur noch als Page Level oder Report Level Filter eingesetzt zu werden, in der Praxis sollte der Filter wohl gesperrt und ggfs. auch ausgeblendet werden:

Die Verwendung als Filter ist übrigens auch der Grund, warum im Schritt 3 eine Calculated Column und nicht ein Measure angelegt wurde.

Zusammenfassung

Die Lösung ist einfach aufgebaut und kann in alle Datenmodelle eingesetzt werden, die eine mit den Faktentabellen verknüpfte Datumsdimension haben. Der Gültigkeitszeitraum der einzelnen Einträge kann übrigens auch die Vorjahre umfassen, um auch Vorjahresvergleiche und Zeitreihen zeigen zu können.

Über den Autor

Blog auf Feedly abonnieren

Kategorien

Verwandte Beiträge

Power BI Camp - Präsenztrainings in Wien und Nürnberg!

Dashboarding mit Power BI, DAX & Datenmodellierung und Power Query. Drei Einzelmodule oder als ganze Trainingswoche - für Einsteiger und Fortgeschrittene!

Termine 2022

Wien: (7./8. Februar 2022)
und 25.-28 April 2022
Nürnberg: (14./15. Februar 2022)
und 9.-12. Mai 2022

Jetzt buchen und Rabatt sichern.

Jetzt buchen!

Leave a Replay

Schreibe einen Kommentar

Kostenlos zum Newsletter anmelden

Ihre Anfrage

Schicken Sie uns Ihre Fragen und Anregungen!