PQ: Projekt-Arbeitstage je Quartal

  Wis­sens­stand: Lev­el 2 ⇒ Solides Basiswis­sen in Excel, etwas Erfahrung in PQ   

In einem Forum wurde die Frage gestellt, wie die Anzahl der Arbeit­stage jedes Quar­tals in einem definierten Zeitraum berech­net wer­den kann. Natür­lich führen (wie in Excel typ­isch) viele Wege nach Rom, ich stelle Ihnen hier einen möglichen Weg mit Pow­er Query vor.

Laden Sie diese Datei von unserem Serv­er herunter, wo im Blatt Tabelle1 die kalen­darischen Dat­en für den Pro­jekt-Start und ‑Ende ver­merkt sind und im Arbeits­blatt Feiertage alle arbeits­freien Feiertage der 3 betrof­fe­nen Jahre aufge­führt sind. Und bei der Gele­gen­heit auch gle­ich ein Hin­weis: Es existieren zwar 2 Abfra­gen in dem File, aber Sie wer­den rasch erken­nen, dass dort ein Fehler enthal­ten ist:

Fehler­mel­dung wegen falsch­er Daten­quelle

Pow­er Query sucht für den Import die benan­nte Tabelle mit dem Namen Tabelle1 bzw. auch nach Tabelle2, welche aber nicht (mehr) existieren. Ich haben die bei­den „Intel­li­gen­ten” Tabellen nach dem Erstellen des Pro­jek­ts umbe­nan­nt und (natür­lich) die neuen, „sprechen­den” Tabel­len­na­men hier im Beitrag ver­wen­det. Sie kön­nen das „bere­ini­gen”, wenn Sie in der Eingabezeile den Teil [Name=„Tabelle1”] dahinge­hend per Hand ändern: [Name=„Start_Ende”] bzw. [Name=„Feiertage”].

Da alle Dat­en bere­its als for­matierte Tabelle vor­liegen, kön­nen Sie mit Ihrem Vorhaben gle­ich starten. Importieren Sie in den Pow­er Query-Edi­tor die Tabelle mit den Dat­en für Start und Ende, spe­ich­ern Sie diese sofort über Schließen & laden in… und wählen die Möglichkeit Nur Verbindung erstellen. Anschließend wer­den Sie dieses Vorge­hen mit den Dat­en des Arbeits­blatt Feiertage wieder­holen.

Öff­nen Sie nun wiederum die Abfrage Start_Ende und im ersten Schritt wer­den Sie die bei­den einzi­gen Spal­ten in den Daten­typ Datum umwan­deln. Ich gebe zu, dass dieser Schritt nicht unbe­d­ingt notwendig ist, aber mich stört ein­fach die wirk­lich über­flüs­sige Uhrzeit-Angabe 0:00 Uhr. Wech­seln Sie nun zu Abfrage Feiertage und reduzieren Sie auch diese Dat­en auf das reine Datum.

▲ nach oben …

Liste aller Tage von Start bis Ende

Im fol­gen­den Schritt wer­den Sie eine Liste aller Tage vom ersten bis zum let­zten Tag des Pro­jek­ts erstellen. Dazu wech­seln Sie in die Abfrage Start_Ende und aktivieren das Reg­is­ter Spalte hinzufü­gen. Ein Klick auf Benutzerdefinierte Spalte und es öffnet sich ein Dia­log. Tra­gen Sie hier bei Neuer Spal­tenname den Wert Datum ein und schreiben Sie in Benutzerdefinierte Spal­tenformel:

Diese Formel ist zielführend, um eine Liste mit allen kalen­darischen Dat­en zu erstellen

Hier noch ein­mal als Text und auch zum Kopieren (ohne das führende Gle­ich­heit­sze­ichen) die eigentliche Formel:

= List.Dates([Start], Duration.Days([Ende]-[Start])+1,
#duration(1,0,0,0))

Sie acht­en darauf, exakt die hier dargestellte Groß-Klein­schrei­bung zu ver­wen­den. Pow­er Query hat in der Abfrage eine neue Spalte erstellt, Über­schrift Datum und in der einzi­gen Zeile das Wort List. Erweit­ern Sie nun diese Spalte durch einen Klick auf den Dop­pelpfeil Doppelpfeil und wählen Sie anschließend Auf neue Zeilen ausweit­en. Wenn Sie so mis­strauisch sind wie ich 😉 wer­den sie den ersten Ein­trag in der Spalte Datum mit dem Wert in der Spalte Start ver­gle­ichen, ganz bis zum Ende scrollen und dort fest­stellen, dass auch hier der Wert in Spalte Ende mit dem in der Spalte Datum übere­in­stimmt.

▲ nach oben …

Wochenenden entfernen

Da PQ ein umfan­gre­ich­es Port­fo­lio an Datums­funk­tio­nen hat gibt es natür­lich auch diverse Möglichkeit­en, die Woch­enen­den aus dem Dat­en-Bestand zu ent­fer­nen. Ich ziehe den etwas län­geren, aus mein­er Sicht aber trans­par­enteren Weg über den aus­geschriebe­nen Namen des Wochen­t­ages vor. Die Spalte Datum ist markiert. Spalte hinzufü­gen | Datum | Tag | Name des Tags. Ruck­zuck wird der Name des Wochen­tags in die neu erstellte Spalte einge­tra­gen. Und jet­zt ist es ein leicht­es die Spalte so zu fil­tern, dass Sam­stage und Son­ntage aus der Abfrage ent­fer­nt wer­den. Aus vorher 618 Zeilen sind nun 440 Zeilen gewor­den. 💡 

▲ nach oben …

Auch die Feiertage löschen

Da naturgemäß auch die Feiertage arbeits­frei sind müssen auch diese aus der Abfrage ent­fer­nt wer­den. Und nun kommt die Abfrage Feiertage auch ins Spiel. Wech­seln Sie zum Reg­is­ter Home und Klick­en Sie auf Kom­binieren. Abfra­gen zusam­men­führen und im Dia­log wählen Sie im schmalen, mit­tleren Fen­ster die Abfrage Feiertage. Markieren Sie im oberen Kas­ten die Spalte Datum und im unteren die einzige Spalte Feiertage. Bei Join-Art wählen Sie Link­er Anti-Join, um jene Zeilen zu fil­tern, die nur in der Abfrage Start_Ende enthal­ten sind. Ganz unten im Dia­log mit Ihnen noch angezeigt, dass diese Auswahl 18 von 440 Zeilen der ersten Tabelle ent­fer­nen wird:

So wer­den die Feiertage aus der Abfrage ent­fer­nt

Die Zahl von 18 Daten­sätzen ergibt sich aus der Tatasche, dass in de Abfrage Feiertage „nur” 18 Tre­f­fer gefun­den wur­den. Oster­son­ntag, Pfin­gst­son­ntag, etc. sind ja schon im vorheri­gen Schritt gelöscht wor­den und außer­dem sind ja auch die Feiertage der kom­plet­ten Jahre aufge­lis­tet, im ersten und let­zten Jahr wurde aber nur ein Teil des Jahres abgeglichen.

▲ nach oben …

Quartal und Jahr zuordnen

Nun ist es an der Zeit, die Tabelle etwas aufzuräu­men. Markieren Sie die Spalte Datum, Recht­sklick in die Über­schrift und im Kon­textmenü Andere Spal­ten ent­fer­nen. Es bleibt nur noch die Spalte mit den kalen­darischen Dat­en aller Arbeit­stage erhal­ten. Das Ziel ist nun, in ein­er weit­eren Spalte Quar­tal und Jahr auszugeben. In Zeile 1 wäre dieses beispiel­sweise 4/2019 oder Quar­tal 4/2019. Auch bei diesem Vor­gang sind einige kleine Zwis­chen­schritte sin­nvoll. Wech­seln Sie zum Reg­is­ter Spalte hinzufü­gen | Datum | Quar­tal | Quar­tal des Jahres. Sie erken­nen, dass hier das Quar­tal inner­halb des entsprechen­den Jahres berech­net, jedoch nicht das Jahr als Wert aus­gegeben wird. Darum noch ein­mal die Spalte Datum markieren, Datum | Jahr | Jahr.

Wenn sie nur Quar­tal und Jahr durch einen / verknüpfen wollen, dann beschre­it­en Sie diesen rel­a­tiv ein­fachen Weg: Markieren Sie erst die Über­schrift Quar­tal, Shift und Klick­en Sie dann in die Über­schrift Jahr. Wech­seln Sie zum Reg­is­ter Trans­formieren und in der Gruppe/dem Sym­bol Textspalte wählen Sie Spal­ten zusam­men­führen. Bei Trennze­ichen markieren Sie Benutzerdefiniert und tra­gen in das Textfeld den / ein. Als Neuer Spal­tenname ver­wen­den Sie beispiel­sweise Quartal/Jahr. Nach einem OK ist der Erfolg sofort gegeben.

Möcht­en Sie den Zusatz „Qrt.” oder „Quar­tal” vor der Quar­tal­sangabe ste­hen haben, dann kön­nen Sie an dieser Stelle entwed­er eine neue Spalte ein­fü­gen, wiederum Textspalte wählen und dort For­mat | Prä­fix hinzufü­gen wählen. Alter­na­tiv (ohne den eben beschriebe­nen Umweg) würde das beispiel­sweise so gehen: Nach­dem sie alle Spal­ten mit Aus­nahme der Spalte Datum ent­fer­nt haben, bei markiert­er Spalte Datum Spalte hinzufü­gen | Benutzerdefinierte Spalte und geben als neuen Spal­tenna­men beispiel­sweise Quartal/Jahr ein. Die Benutzerdefinierte Spal­tenformel ist aber schon etwas kom­plex­er:

= "Qrt. " & Text.From(Date.QuarterOfYear([Datum]))
& "/" & Date.ToText([Datum], "yyyy")

… und als Über­schrift geben Sie beispiel­sweise Quar­tal ein. Sie haben ohne Umweg und mit einem Schlag die entsprechende Spalte erstellt. Diese Vorge­hensweise hat einen weit­eren Vorteil: Möcht­en Sie das Jahr nur zweis­tel­lig aus­gegeben, dann ver­wen­den Sie in der Formel statt der Zeichen­folge "yyyy" logis­cher­weise nur "yy" und der Erfolg ist gegeben.

▲ nach oben …

Arbeitstage je Quartal berechnen

Auf in die let­zte Runde. 😀 Das gewün­schte Ziel ist ja, die Anzahl der Arbeit­stage je Quar­tal zu berech­nen und in ein­er getren­nten Liste/Tabelle auszugeben. Markieren Sie die Spalte Quar­tal per Recht­sklick in die Über­schrift und wählen Sie Grup­pieren nach… Im Dia­log brauchen Sie keine der Vor­gaben zu ändern, es reicht ein Klick auf OK. Das Ergeb­nis überzeugt, die exakt berech­neten Arbeit­stage wer­den in ein­er Abfrage dargestellt. Schließen & laden oder Schließen & laden in… und sie haben das Ergeb­nis als Excel-Tabelle vor­liegen:

Das gewün­schte Ergeb­nis

▲ nach oben …

Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?

Dann würde ich mich über einen Beitrag Ihrer­seits z.B. 2,00€ bis 5,00 € freuen …

Dieser Beitrag wurde unter Daten zusammenführen, Datentyp anpassen, Datum & Zeit, Datum und Zeit, Filtern & Sortieren, Foren-Q&A, Join-Art, Power Query abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.