PQQ: Jahreskalender mit Power Query erstellen (3)

Power Query Quickies: Einen Jahreskalender automatisch erstellen lassen

Auch in Pow­er Query gibt es mehrere Wege, einen Jahreskalen­der automa­tisch erstellen zu lassen. In jedem Falle wer­den Sie dazu Funk­tio­nen der Abfrage­sprache M ein­set­zen. Und den­noch brauchen Sie keine Pro­gram­mi­er-Erfahrung, wenn die hier dargelegten Schritte exakt nachvol­lziehen. Ein grundle­gen­der Hin­weis vor­weg: Acht­en Sie unbe­d­ingt darauf, die Groß- Klein­schrei­bung genau so zu schreiben, wie hier im Beitrag dargestellt.

(3) Jahreskalender, ausschließlich Arbeitstage

In manchen Fällen wird ein Jahreskalen­der gebraucht, wo auss­chließlich die Arbeit­stage gelis­tet sind. Prinzip­iell wäre es dur­chaus mach­bar, das direkt und ohne Umwege mit Pow­er Query zu erledi­gen. Aber da es sich hier um ein Quicky han­delt, beschränke ich mich auf die „schlanke” Form. Das meiste aber geschieht natür­lich in Pow­er Query.

Sie begin­nen damit, auf eine beliebige Weise einen Jahreskalen­der mit allen Tagen des Jahres zu erstellen. Vorzugsweise naturgemäß in Pow­er Query. 😎 Anschließend wer­den Sie eine neue Spalte gener­ieren und dort den Tag der Woche berech­nen lassen. Natür­lich gibt es auch hier ver­schiedene Möglichkeit­en, ich stelle Ihnen die mein­er Mei­n­ung nach am leicht­esten nachzu­vol­lziehende Meth­ode vor.

Spalte hinzufü­gen, Gruppe Aus Datum und UhrzeitTag | Tag der Woche. Automa­tisch wird eine Spalte mit den Werten 0 bis 6 erstellt. Da sie wis­sen (oder nachgeschaut haben), dass der 1. Jan­u­ar 2018 ein Mon­tag war und dieser in der pro­duzierten Liste mit der Zahl 0 dargestellt wird ist auch klar, dass die Werte 5 und 6 der Sam­stag und der Son­ntag sind, und aus diesem Grunde aus­ge­blendet bzw. aus der Abfrage gelöscht wer­den sollen. Erweit­ern Sie nun die Spalte Tag der Woche und  fil­tern Sie diese so, dass das Häkchen bei 5 und 6 ent­fer­nt wird. In der Spalte Datum bleiben dadurch nur die Arbeit­stage über.

▲ nach oben …

Betriebsurlaub

Eigentlich war’s das. 😉 In manchen Unternehmen gibt es aber auch einen Betrieb­surlaub, wo grund­sät­zlich nicht gear­beit­et wird. Auch solch ein Zeitraum lässt sich rel­a­tiv prob­lem­los mit Pow­er Query erstellen bzw. ver­ar­beit­en. Dazu erstellen Sie eine neue Abfrage. Den Weg dazu ken­nen Sie ja bere­its, ide­al­er­weise gehen Sie über Start, Neue Quelle | Andere Quellen | Leere Abfrage. Als Test-Zeitraum für den Betrieb­surlaub habe ich den 30. Juli 2018 bis zum  26. August 2018 fest­gelegt. Geben Sie in die Funk­tions-Textzeile diese Formel ein:
= List.Dates(#date(2018,7,30), Number.From(#date(2018,8,26)-#date(2018,7,30))+1,#duration(1,0,0,0))

Wie üblich eine kurze Kon­trolle, ob nach einem Return/Enter die erstellte Liste auch den kor­rek­ten Datums­bere­ich umfasst. Bei mir stimmt alles, darum wer­den Sie die Liste auch in eine Tabelle kon­vertieren, indem Sie auf die Schalt­fläche Zu Tabelle Klick­en. 

Damit sie den Überblick behal­ten, soll­ten Sie den Namen der Abfrage entwed­er im linken oder den recht­en Seit­en­fen­ster so anpassen, dass der Inhalt deut­lich wird. Da bietet sich Betrieb­surlaub an. Bei der Gele­gen­heit kön­nen Sie auch die zuerst erstell­ten Abfrage eine entsprechen­den Namen geben, beispiel­sweise Arbeit­stage.

Nun müssen sie ihrer Abfrage Arbeit­stage irgend­wie beib­rin­gen, dass auch noch die in der Abfrage Betrieb­surlaub aufge­führten Kalen­dertage ent­fer­nt wer­den. Dazu wech­seln Sie erst ein­mal in die Abfrage Arbeit­stage. Die Spalte Tag der Woche ist jet­zt nicht mehr rel­e­vant, löschen Sie diese ein­fach. Wech­seln Sie erforder­lichen­falls zum Reg­is­ter Start und Klick­en und dort auf die Schalt­fläche Kom­binieren. Im Pull­down-Menü wählen Sie den oberen Punkt Abfra­gen zusam­men­führen und im Dia­log wer­den sie im mit­tleren, einzeili­gen Eingabefeld die Abfrage Betrieb­surlaub wählen. Klick­en Sie anschließend in den bei­den großen Feldern jew­eils in ein Datum, damit in bei­den Bere­ichen die gesamte Spalte markiert ist.

Das Ziel ist nun ja, aus der Tabelle Arbeit­stage nur jene Zeilen zu übernehmen, die nicht in der Abfrage Betrieb­surlaub aufge­führt sind. Dazu wer­den sie im Bere­ich Join-Art den Punkt Link­er Anti-Join (Zeilen nur ein erster) auswählen. Nach einem OK wird in der Abfrage Arbeit­stage eine neue Spalte mit dem Namen Betrieb­surlaub erstellt. Sie stellen fest: Durchgängig ist der Inhalt jed­er einzel­nen Zelle das Wort Table.

Um es kurz zu machen: Die Abfrage ist jet­zt kor­rekt gefiltert und sie wer­den bei ein­er Kon­trolle fest­stellen, dass die Tage des Betrieb­surlaubs nicht mehr in der Auflis­tung enthal­ten sind. Löschen Sie auch die Spalte Betrieb­surlaub und sie haben Ihr Ziel erre­icht.

▲ nach oben …

Feiertage

Es wird ihn vielle­icht schon unter den Nägeln gebran­nt haben, das The­ma „Feiertage”. Und genau dieses ist auch der Punkt, welchen ich hier im Quicky aus dem nur-Pow­er Query Bere­ich her­aus genom­men habe. Es ist zwar dur­chaus möglich, eine Liste oder Abfrage der fes­ten und beweglichen Feiertage inner­halb des Pow­er Query zu erstellen aber hier gehe ich den Weg, das in Plain Excel zu gener­ieren. Wie sie eine solche Auf­stel­lung der Feiertage in Excel gener­ieren kön­nen, lesen Sie beispiel­sweise hier nach.

Falls die in Excel erstellte Auflis­tung der Feiertage noch nicht als For­matierte Tabelle vor­liegt, soll­ten Sie die Dat­en als Tabelle for­matieren. Diese Auf­stel­lung des Feiertage importieren Sie nun als weit­ere Abfrage in ihr Pow­er Query-Pro­jekt. Acht­en Sie darauf, Dass die importierten Dat­en anschließend im Daten­for­mat Datum vor­liegen. Erforder­lichen­falls wer­den Sie den Daten­typ anpassen.

Im näch­sten Schritt wer­den sie exakt so vorge­hen, wie bere­its beim Betrieb­surlaub geschehen. Sie geben der Abfrage einen sin­nvollen Namen: Feiertage und gehen dann den Weg über das Zusam­men­führen der Abfrage. Damit ist das Ziel erre­icht, im Jahreskalen­der ste­hen nur noch Tage, an denen auch gear­beit­et wird.

Die Abfra­gen mit den Feierta­gen und dem Betrieb­surlaub lasse ich nicht als Excel-Tabelle anzeigen, darum werde ich diese via Schließen & laden in… als Nur Verbindung erstellen spe­ich­ern, nur die eigentliche Datum-Abfrage werde ich naturgemäß „ganz nor­mal” über Schließen & laden in… und dann Tabelle | Beste­hen­des Arbeits­blatt | Zelle A1 spe­ich­ern und anzeigen lassen.

▲ nach oben …

Dieser Beitrag wurde unter Datum & Zeit, Join-Art, Power Query, PQ-Quickies abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.