Per Power Query einen Kalender für einen Zeitbereich erstellen.
Was mit Excel prinzipiell recht einfach möglich ist, nämlich durch Ausfüllen einen Kalender zu erstellen (je Tag eine Zeile) ist in Power Query ebenfalls möglich, allerdings geht es nicht nur mit einigen Mausklicks sondern es bedarf einer Formel mit verschiedenen Funktionen der Sprache M. Dafür ist es anschließend aber auch leichter, den Anfangs-und in Endwert in der Ausgangstabelle anzupassen und dann mit einem einzigen Mausklick das neue Ergebnis zu sehen.
Jeder Tag eines Zeitraums
Erstellen Sie eine kleine Tabelle mit den Überschriften Start und Ende in den Zellen A1 und B1. Darunter tragen Sie in Zeile 2 das Datum des 1. bzw. des letztens Tages ein. In der Beispieldatei habe ich den 14.2.2016 bzw. den 15.11.2016 als Eckdaten gewählt. Das Ziel ist, dass für jeden dieser Tage (einschließlich des 29. Februar 2016) eine einzelne Zeile einer neu zu erstellenden Tabelle gefüllt wird.
Wie immer beginnen Sie damit, dass sie die Daten als Tabelle formatieren, beispielsweise per StrgL oder StrgT. Ich gebe der Tabelle auch immer gleich einen „sprechenden” Namen, weil dieser dann auch automatisch im Power Query-Editor verwendet wird: Kalender:
Nach dem Import wird der Datentyp der beiden Felder automatisch angepasst, wobei meistens der Datentyp Datum/Uhrzeit verwendet wird. In der überwiegenden Anzahl der Fälle ist dieses kein Problem, höchstens eine Frage der Optik wegen der automatischen Ergänzung 00:00:00 (Uhr). Hier ist es jedoch ausnahmsweise zwingend erforderlich, den Datentyp auf Datum zu ändern, da eine Funktion der einzusetzenden Formel explizit genau diesen Datentyp verlangt. Ändern Sie also beide Spalten auf den Datentyp Datum.
Die Vorbereitungen sind abgeschlossen. Fügen Sie nun eine Benutzerdefinierte Spalte hinzu. Als Neuer Spaltenname können Sie beispielsweise (vorzugsweise) Tage oder Kalender verwenden, als Benutzerdefinierte Spaltenformel tragen Sie diese Formel ein:
List.Dates([Start], Number.From([Ende])-Number.From([Start])+1, #duration(1,0,0,0))
wobei sie die Feldnamen (Spaltenüberschrift) Start und Ende idealerweise direkt aus dem rechten Kasten des Dialogs per Doppelklick oder über die Schaltfläche « Einfügen übertragen. Power Query erstellt eine neue Spalte mit einer einzigen Zeile, welche den Inhalt List hat.:
Wenn Sie an dieser Stelle eine Fehlermeldung bekommen, dass ein Wort bzw. Name nicht erkannt wurde, dann liegt das in der Regel an einer fehlerhaften Groß-Kleinschreibung oder einem Tippfehler ihrerseits. Erweitern Sie diese Spalte durch einen Klick auf den Doppelpfeil in der Überschrift Tage und in einem DropDown wählen Sie Auf neue Zeilen ausweiten.
Fertig! Eine rasche Kontrolle wird Ihnen zeigen, dass automatisch der 29. Februar erzeugt wurde und auch der Zeitraum Start/Ende exakt beachtet worden ist. Ein Rechtsklick in die Überschrift dieser Spalte und sie wählen Andere Spalten entfernen, denn sie wollen ja ausschließlich die Tage des definierten Zeitraums als Tabelle aufgelistet haben.
Nur Werktage
Diese Abfrage Datum können Sie gut als Basis verwenden, um nur die Werktage (mit oder ohne Samstag) aufzuzeigen. Ich erstelle prinzipiell eine Kopie dieser Abfrage (per Duplizieren), um das Original für weitere Experimente bzw. Auswertungen zu behalten. Fügen Sie hier nun eine weitere Benutzerdefinierte Spalte hinzu, die Überschrift kann beispielsweise Werktage sein und als Formel geben Sie in exakt dieser Groß- Kleinschreibung ein:
Date.DayOfWeek([Tage], Day.Monday)
Als Ergebnis erhalten Sie zu jedem Datum einen numerischen Wert zwischen 0 und 6. Der Startwert 0 ist für uns „Normal-User” etwas gewöhnungsbedürftig, aber in fast allen Fällen ist Power Query 0‑basiert, was die Nummerierung betrifft. Und Sie sollten Sie auch nicht dazu verleiten lassen, das in irgendeiner Form abzuändern. Wenn Sie in einem Kalender des Jahres 2016 nachsehen werden Sie erkennen, dass der Montag den Wert 0 und der Sonntag den Wert 6 zugewiesen bekommen hat.
Je nach Anforderung werden sie nun einen Filter setzen, dass alle Werte kleiner 6 (also einschließlich Samstag) oder kleiner 5 (Montag bis Freitag) in der Tabelle erhalten bleiben.
Auch diese Hilfsspalte werden Sie nun vermutlich löschen, eventuell auch noch die verbleibende Überschrift in Werktage oder Arbeitstage ändern. Schließen & laden und Power Query schreibt Ihnen (nacheinander) in ein neues Tabellenblatt jeweils den Kalender für alle Tage und die (gefilterten) Arbeitstage hinein. Diesen Stand der Dinge können Sie hier von unserem Server herunterladen.
Viele der Leser werden nun wahrscheinlich denken: „Und was ist mit den Feiertagen?” Ich versichere Ihnen, auch das ist mit Power Query möglich, wenn sie in irgendeiner Form für den entsprechenden Zeitraum eine Liste mit den passenden Feiertagen haben. Zugegeben, es ist mit etwas knobeln oder nachdenken verbunden aber wenn sie etwas Zeit investieren, werden sie mit hoher Wahrscheinlichkeit zum Ziel gelangen. Das Internet ist „allwissend” und es gibt einige Quellen im englischen Sprachbereich. – Als Alternative bietet sich an, dass sie mir eine E‑Mail mit dem Betreff „PQ Arbeitstage ohne Feiertage” senden, dann erhalten Sie nach einer 5 €-Spende (auch mit diesem Vermerk) die fertige Datei ebenfalls als E‑Mail. Dort ist dann auch noch als kleiner Bonbon eine Liste eingefügt, wo (natürlich auch per PQ) die Arbeitstage des jeweiligen Monats berechnet worden sind.