Kontakt

Nutzen Sie dieses Kontaktformular oder schreiben Sie mir direkt per E-Mail.

Team von Finanzexperten, die auf dem Computerbildschirm ein Dashboard für Geschäftsanalytik (BA) oder Intelligence (BI) diskutieren, in dem die Umsatzdaten und Betriebsdaten sowie die wichtigsten Leistungsindikatoren (KPI) dargestellt werden

Arbeitstage mit Power BI berechnen

  • Arbeitstage berechnen
  • Projekttage ermitteln
  • Kalendertabelle anlegen
  • Feiertage ausschließen
Jan Trummel - Coach für  Excel und  Power BI

Jan Trummel hat mehr als 800 Seminare zu den Themen Power BI, Datenbanken und Excel durchgeführt.

Oft müssen Sie in einem Projekt die Anzahl der verfügbaren Arbeitstage bestimmen. Als versierter Excel-Kenner denken Sie sofort an NETTOARBEITSTAGE. Doch diese Funktion gibt es in Power BI leider nicht. Lesen Sie hier, wie Sie die Arbeitstage trotzdem ermitteln können.

Die Projekttabelle

Gehen Sie einmal von folgender Tabelle aus:

Eine Tabelle in Power BI mit 3 Projekten, deren Beginn- und Enddatum angezeigt werden
Für diese 3 Projekte wollen Sie die Anzahl der Arbeitstage berechnen

Um die Anzahl der Tage zwischen Beginn und Ende zu bestimmen, nehmen Sie ganz einfach die Standardfunktion DATEDIFF. Fügen Sie in der Projekttabelle eine neue Spalte und dort folgende Formel ein:

Tage = DATEDIFF(Projekte[Beginn],Projekte[Ende],DAY) + 1

Die Funktion bestimmt die Anzahl von Intervallen zwischen einem Start- und einem Enddatum. Mit DAY im dritten Argument legen Sie fest, dass die Funktion die Differenz in Tagen ausgibt. Möglich wären hier übrigens auch Jahre, Quartale, Monate und Wochen.

Eine Tabelle in Power BI mit 3 Projekten. Für jedes Projekt die Anzahl der Tage sichtbar.
Die Spalte Tage zeigt nun die Dauer jedes Projektes an

Leider kann die Funktion nicht zwischen Arbeitstagen (Montag bis Freitag) und Wochenenden (Samstag und Sonntag) unterscheiden. Sie müssen daher tiefer in die Trickkiste von DAX greifen.

Legen Sie eine Kalendertabelle an

Um diese Aufgabe zu meistern, benötigen Sie eine Kalendertabelle. Diese muss mindestens eine Datumsspalte sowie eine Spalte mit Wochentagszahlen besitzen und den Datumsbereich der drei Projekte umfassen.

Benutzen Sie die DAX-Funktion CALENDAR, um die Kalendertabelle anzulegen. Wechseln Sie in den Bereich Daten und klicken Sie auf dem Reiter Start auf Neue Tabelle.

Kalender = CALENDAR(DATE(2020,1,1),DATE(2020,12,31))

Erzeugen Sie in der neu gebildeten Kalendertabelle anschließend eine Spalte, in der Sie für jedes Datum eine Zahl zwischen 1 und 7 ausgeben. Dazu nutzen Sie die Funktion WEEKDAY.

Wochentagszahl = WEEKDAY(Kalender[Date],2)

Ihre Kalendertabelle sollte nun so aussehen:

Eine Datumstabelle mit den Spalten "Date" und "Wochentagszahl"
Ausschnitt aus der Kalendertabelle

Die Kalendertabelle zeigt alle Datumsangaben aus dem Jahr 2020. In der Praxis umfassen Kalendertabellen jedoch weitaus größere Datumsbereiche und verfügen über wesentlich mehr Spalten. Für dieses Beispiel reicht eine derart kleine Kalendertabelle jedoch aus.

Damit haben Sie alles, um die Arbeitstage in den Projekten zu bestimmen. Lesen Sie im nächsten Schritt, wie Sie die richtige DAX-Formel dafür schreiben.

Legen Sie eine Tabelle mit Feiertagen an

Neben den Wochenenden gibt es natürlich auch Feiertage, an denen nicht gearbeitet wird. Daher benötigen Sie neben der Kalendertabelle auch eine Tabelle, in der Sie alle Feiertage auflisten.

Eine Tabelle in Power BI, die alle Feiertage in 2020 auflistet.
Die Tabelle enthält alle Feiertage, an denen nicht gearbeitet wird

Verbinden Sie die Feiertagstabelle mit der Kalendertabelle. Ziehen Sie dazu das Feld Datum aus der Tabelle Feiertage auf das Feld Date in der Tabelle Kalender. Power BI legt eine 1-zu-1-Beziehung an, da es in beiden Feldern nur eindeutige Werte gibt.

Die Tabellen "Kalender" und "Feiertage" sind über eine Linie miteinander verbunden. An beiden Enden der Linie steht eine 1.
Verbinden Sie die Tabellen Kalender und Feiertage

Jetzt können Sie in der Kalendertabelle für jedes Datum prüfen, ob es sich um einen Feiertag handelt. Dazu erzeugen Sie in der Kalendertabelle eine neue Spalte, in der Sie für jeden Feiertag ein True ausgeben, für jeden Nicht-Feiertag ein False.

Feiertag = 
IF(
    ISBLANK(RELATED(Feiertage[Bezeichnung])),
    FALSE(),
    TRUE()
)

Die Kalendertabelle hat nun eine neue Spalte:

Tabelle in Power BI mit den Spalten "Date", "Wochentagszahl" und "Feiertag".
Jeder Feiertag ist mit True, jeder Nicht-Feiertag mit False gekennzeichnet

Die Arbeitstage berechnen

Fügen Sie in der Projekttabelle eine weitere Spalte und dort folgende Formel ein:

Arbeitstage = 
COUNTX(
    FILTER(
        Kalender,
        Kalender[Date] >= Projekte[Beginn] && 
        Kalender[Date] <= Projekte[Ende] && 
        Kalender[Wochentagszahl] <= 5 &&
        Kalender[Feiertag] = FALSE()
    ),
    Kalender[Date]
)

Nun sehen Sie für jedes Projekt die Anzahl der tatsächlichen Arbeitstage. In das Projekt A fallen z.B. Christi Himmelfahrt (21.05.2020) und 5 Wochenendtage.

Eine Tabelle in Power BI mit 3 Projekten und der Spalte "Arbeitstage".
Zu jedem Projekt werden jetzt auch die Arbeitstage angezeigt.

Gehen wir die Formel einmal Schritt für Schritt durch: Am Anfang steht die Funktion COUNTX. Sie zählt die Einträge in einer Tabellenspalte. Sie geben zuerst die Tabelle an, im zweiten Argument eine Spalte dieser Tabelle.

Zählen wollen Sie in der Kalendertabelle die Einträge in der Spalte Date. Damit die Kalendertabelle nur Datumsangaben des Projektzeitraums beinhaltet, filtern Sie die Tabelle mit Hilfe der Funktion FILTER:

  • Nur Datumsangaben zwischen Beginn und Ende
    Kalender[Date] >= Projekte[Beginn] && Kalender[Date] <= Projekte[Ende]
  • Nur Datumsangaben, bei denen es sich nicht um ein Wochenende handelt
    Kalender[Wochentagszahl] <= 5
  • Nur Datumsangaben, die kein Feiertag sind
    Kalender[Feiertag] = FALSE()

Das doppelte kaufmännische Und (&&) erlaubt Ihnen übrigens, mehrere Filterbestimmungen in der Funktion zu kombinieren. Weitere Informationen zu den DAX-Operatoren finden Sie hier.

Technisch gesehen erzeugt die Funktion FILTER eine virtuelle DAX-Tabelle, also eine Tabelle, die nur für die Berechnung gebildet und dann wieder aus dem Speicher entladen wird. FILTER liefert damit die Tabelle für das 1. Argument in COUNTX.

Im 2. Argument von COUNTX geben Sie die Spalte Date der virtuellen Kalendertabelle an. Sie enthält nur die Datumsangaben, auf die wir in FILTER gefiltert haben. Da Samstage und Sonntage ausgeschlossen sind, zählt die Funktion nur Montage bis Freitage. Feiertage werden durch den Filterausdruck ebenfalls von der Zählung ausgeschlossen.

Fazit

Auch wenn Power BI (noch) keine eingebaute Funktion zum Ermitteln von Arbeitstagen hat, können Sie diese mit einer Kalendertabelle und guten DAX-Kenntnissen berechnen. Entscheidend sind hier die Funktionen COUNTX und FILTER.

Jetzt Power BI lernen!

Tage = DATEDIFF(Projekte[Beginn],Projekte[Ende],DAY)