Jahreskalender „Spezial”

Jahreskalender „Spezial”, nur Dienstag & Freitag und keine Feiertage

  Wis­sens­stand: Lev­el 1 ⇒ Ein­steiger in PQ, keine/kaum Erfahrung   

In einem Forum wurde die Anfrage gestellt, wie mit­tels VBA ein Jahreskalen­der erstellt wer­den kann, wo auss­chließlich die Wochen­t­age Dien­stag und Fre­itag enthal­ten sind. Und als „Sah­ne­häubchen” sollen auch jene verbliebe­nen Tage nicht im Kalen­der erscheinen, wenn sie ein Feiertag sind. Also muss (in Deutsch­land auf jeden Fall) der Kar­fre­itag aus der Tabelle ent­fer­nt wer­den. Eine Teil-Lösung in VBA lag vor, es haperte aber daran, dass die Feiertage nicht berück­sichtigt wor­den sind und in der Liste geblieben sind.

Ich hat­te die Gele­gen­heit ergrif­f­en und den Fragesteller darauf hingewiesen, dass in VBA die Funk­tion WorksheetFunction.CountIf dur­chaus hil­fre­ich sein kön­nte. Gle­ichzeit­ig bot ich ihm an, das Ganze in Pow­er Query zu lösen. Und hier nun der Lösungsweg, der eher auf Trans­parenz als auf „Ele­ganz” auf­baut.

Erstellen Sie zu Beginn in ein­er beliebi­gen Excel-Mappe eine Liste / Tabelle welche die Feiertage des entsprechen­den Jahres enthält. Nutzen Sie wegen der beweglichen Feiertage dazu gerne diesen oder jenen Beitrag aus unserem Blog. In diesem File ist bere­its eine Feiertags-Tabelle erstellt, welche automa­tisch die Dat­en für das aktuelle Jahr enthält. Einzige Voraus­set­zung: Das File muss ein Mal im aktuellen Jahr geöffnet und wieder gespe­ichert wor­den sein, damit die Formeln neu berech­net wer­den.

▲ nach oben …

Import der Feiertage

Sie erstellen ein neues, leeres Work­book und aktivieren das Reg­is­ter Dat­en (bzw. in älteren Ver­sio­nen Pow­er Query). Nun Dat­en abrufen | Aus Arbeitsmappe | und im Dat­en importieren – Dia­log wählen Sie das entsprechende Verze­ich­nis und dort das File mit den Feiertage-Dat­en, beispiel­sweise Feiertage_berechnung_xls.xlsx oder jen­em Namen, den Sie Ihrer *.xlsx gegeben haben.

Nach dem Klick auf Importieren öffnet sich der Nav­i­ga­tor-Dia­log. Schauen Sie sich die 3 Vari­anten Tabelle1 (Tabelle/Liste), Feiertage (Tabel­len­blatt) und Feiertage1 (Benan­nter Bere­ich) durch einen ein­fachen Klick auf den jew­eili­gen Ein­trag an; im recht­en Bere­ich des Fen­sters sehen Sie eine Vorschau der zu importieren­den Dat­en:

Auswahl und Vorschau der zu importierenden Daten

Auswahl und Vorschau der zu importieren­den Dat­en

 Entschei­den Sie sich für eine Möglichkeit. Vorzugsweise sollte dieses Tabelle1 oder Feiertage1 sein; je nach­dem, ob Sie nur die kalen­darischen Dat­en nutzen wollen oder auch die Feiertags­beze­ich­nun­gen. Der Bequem­lichkeit wegen wäh­le ich Feiertage1. Erweit­ern Sie die Schalt­fläche Laden  und wählen Sie Laden in…

Im Dat­en importieren-Dia­log markieren Die die Option Nur Verbindung erstellen. Dadurch wird sich rechts ein Seit­en­fen­ster öff­nen, wo in einem Feld der Name der Abfrage mit dem Ver­merk Nur Verbindung aufgezeigt wird. Der Excel-Daten­bere­ich bleibt dadurch leer, obwohl die Abfrage erhal­ten bleibt.

▲ nach oben …

Der Jahres-Kalender

Alle Tage des Jahres

Aktivieren Sie erforder­lichen­falls die Zelle A1. Reg­is­ter Dat­en und dann Dat­en abrufen | Aus anderen Quellen | Leere Abfrage und es zeigt sich der Pow­er Query-Edi­tor. Geben Sie hier in das Textfeld in exakt dieser Groß- Klein­schrei­bung fol­gende Formel ein:
= List.Dates(#date(2019,1,1), 365, #duration(1,0,0,0))

Der Erfolg zeigt sich sofort, wenn Sie entwed­er auf das Häkchen links des Textfeldes oder irgend­wo in den freien Bere­ich unter­halb Klick­en oder Eingabe betäti­gen:

Die Formel steht nun in dem Textfeld der leeren Abfrage, darunter das Ergebnis

Die Formel ste­ht nun in dem Textfeld der leeren Abfrage, darunter das Ergeb­nis

Nun noch in der Gruppe Kon­vertieren ein Klick auf Zu Tabelle und bestäti­gen Sie den fol­gen­den Dia­log ein­fach mit OK. Klick­en Sie nun im schmalen Streifen links auf Abfra­gen und dieser Bere­ich erweit­ert sich zum linken Seit­en­fen­ster. Markieren Sie nun Abfrage1, F2 und vergeben Sie für diese Abfrage den Namen Datum. Übri­gens: Der Name in recht­en Seit­en­fen­ster wird dabei auch automa­tisch geän­dert. 💡 

▲ nach oben …

Nur Dienstag und Freitag

Der wohl ein­fach­ste Weg zum separi­eren der bei­den Wochen­t­age ist gewiss, vorüberge­hend eine Hil­f­ss­palte zu erstellen. Markieren Sie die einzige Über­schrift Column1 und aktivieren Sie dann das Reg­is­ter Spalte hinzufü­gen. In der Gruppe Aus Datum und Uhrzeit erweit­ern Sie die einzig aktive Auswahl Datum und dann Tag | Name des Tags. Ruck zuck schreibt PQ den passenden Wochen­tag in die zweite Spalte:

Power Query hat den Wochentag in eine neue Spalte geschrieben

Pow­er Query hat den Wochen­tag in eine neue Spalte geschrieben

Erweit­ern Sie nun die Spalte Name des Tags, Häkchen bei (Alles auswählen) ent­fer­nen und anschließend bei Dien­stag und Fre­itag die Markierung set­zen. Sie kön­nen jet­zt schon ein­mal eine Zwis­chen­spe­icherung vornehmen: Reg­is­ter Datei, Schließen & laden in… und wählen Sie hier die Option Beste­hen­des Arbeits­blatt. Da Sie zu Beginn die Zelle A1 markiert hat­ten, wird Ihnen diese Adresse auch vorgeschla­gen. Bestäti­gen Sie mit OK. Und wahrschein­lich sind Sie jet­zt gewiss mehr oder weniger irri­tiert:

Serielle Zahl statt eines Datums

serielle Zahl statt eines Datums 🙁

Im Prinzip ist das Ergeb­nis ja richtig. Nur die Darstel­lung ist „leicht unge­wohnt”. Obwohl in Pow­er Query das „nor­male” Datum angezeigt wird, sehen Sie hier die serielle Zahl des Datums. Natür­lich kön­nten Sie hier in Excel die For­matierung auf Datum ändern, aber bei der näch­sten Aktu­al­isierung wird wieder die Zahl statt des Datums sicht­bar sein. Darum öff­nen Sie die Abfrage in PQ. Das geht beispiel­sweise über den Menüpunkt Abfrage | Bear­beit­en. Die 1. Spalte ist ja markiert und im Menüband find­en Sie in der Gruppe Trans­formieren bei Daten­typ: den Ein­trag Beliebig. Ändern Sie diesen Wert auf Datum und anschließend ein Klick auf Schließen & laden. Sie sehen, dass es manch­mal nur eine Kleinigkeit ist, die zum Erfolg führt. 😎 

▲ nach oben …

Feiertage aus der Liste entfernen

Jet­zt geht es noch darum, die Feiertage aus der Liste zu ent­fer­nen. Öff­nen Sie die Abfrage also wieder zum Bear­beit­en und erweit­ern Sie bei Bedarf das linke Seit­en­fen­ster. Kon­trol­lieren Sie noch ein­mal durch einen Klick auf die Abfrage Feiertage1, ob auch die kor­rek­ten Dat­en des aktuellen Jahres in der Liste ste­hen. Wählen Sie anschließend wieder im linken Seit­en­fen­ster die Abfrage Datum. Im Reg­is­ter Start Klick­en Sie nun auf die Schalt­fläche Kom­binieren und anschließend auf Abfra­gen zusam­men­führen. Im Zusam­men­führen-Dia­log wählen Sie im mit­tleren, schmalen Drop­Down die Abfrage mit den Feierta­gen. Ganz unten bei der Über­schrift Join-Art wählen Sie Link­er Anti-Join (Zeilen nur in erster). Nun noch jew­eils ein Klick in die Spalte mit dem Datum (jew­eils Column1) und das Ganze stellt sich so dar:

So werden die Daten korrekt zusammengeführt

So wer­den die Dat­en kor­rekt zusam­menge­führt

Stören Sie sich nicht an der Aus­sage, dass die Auswahl mit 4 der ersten 105 Zeilen übere­in­stimmt. Damit ist gemeint, dass 4 Zeilen ent­fer­nt wer­den. Ein Klick auf OK und sie wer­den sehen, dass nur noch 101 Zeilen in der Abfrage enthal­ten sind:

Ganz unten in der Statuszeile ist die Anzahl der Spalten und Zeilen vermerkt

Ganz unten in der Sta­tuszeile ist die Anzahl der Spal­ten und Zeilen ver­merkt

Feiertage1 ist markiert, darum Shift und ein Klick in die Über­schrift Name des Tags. Nun sind bei­de Spal­ten markiert und ein Klick auf Entf wird die bei­den Spal­ten löschen. Was jet­zt noch bleibt ist die Auf­gabe, die Über­schrift entsprechend anzu­passen. Das kann beispiel­sweise Datum sein oder Arbeit­stage oder was auch immer sie mögen. Hin­weis: Das geht beispiel­sweise entwed­er durch einen Klick in die Über­schrift und dann F2 oder einen Dop­pelk­lick in die Über­schrift und dann jew­eils gle­ich den Text schreiben. Ein let­ztes Mal Schließen & laden und das Ergeb­nis ist exakt das, was sie haben woll­ten. Die erzeugte Tabelle im Excel-Arbeits­blatt hat sich automa­tisch ver­schlankt und die Anzahl der Zeilen ist auch kor­rekt angepasst wor­den.

▲ nach oben …

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

Dann würde ich mich über einen Beitrag (€ 1,00 – € 2,00) Ihrer­seits freuen …

Dieser Beitrag wurde unter 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.