Xtract: Auf der Basis des Jahres und der Kalenderwoche soll das Datum des Montags der entsprechenden Woche nach ISO berechnet werden. Der Wochenbeginn ist also der Montag und die KW wird auch anders berechnet als in den USA.
Wissensstand: Level 3 ⇒ Excel GUT!, mindestens Basis-Kenntnisse in Power Query
Das kalendarische Datum des Montags einer als numerischen Wert eingegebene Kalenderwoche berechnen
In Plain Excel ist es mit unterschiedlichen Formeln möglich, aus einer gegebenen ISO-Kalenderwoche (KaWo) den Wochenbeginn, also den Montag zu berechnen. Die bei uns gültige ISO-Norm stellt sich in manchen Punkten anders dar als die in den USA gültige Berechnungsgrundlage, darum ist auch ein anderer Berechnungsweg erforderlich.
Warum soll gerade der Montag berechnet werden? Nun ja, hier in Europa ist nicht der Sonntag sondern der Montag der erste Tag der Woche. Und was die Berechnung in Excel angeht, da bieten sich die hier in Excel-Formeln angebotenen Möglichkeiten an, das Problem zu lösen.
Und ich habe mir eine der Formeln heraus gesucht, um diese als Basis für eine Umsetzung in Power Query zu nutzen. Versuchen Sie einfach einmal die Formel von Franz Pölt:
=("4.1." & A2) + A1 * 7 - 7 - REST("2.1." & A2; 7)
denn die lässt sich später auch ganz gut in PQ umsetzen. Falls Sie (beispielsweise) die entsprechende Website gerade nicht vor sich haben hier der Hinweis, was in welcher Zelle steht: In A1 ist der numerische Wert der Kalenderwoche (also beispielsweise 15) und in A2 das Jahr als Zahl, beispielsweise 2020.
Ins Sprachdeutsch übersetzt würde das in etwa so lauten:
("4.1."&A2)
→ Der 4. Januar des entsprechenden Jahres.+A1*7-7
→ Addiere (dazu) den Wert der mit 7 multiplizierten Kalenderwoche und subtrahiere hiervon 7.- Berechne den Rest von diesem Wert:
"2.1.Jahr"
dividiert durch7
und subtrahiere das Ergebnis dieser Berechnung von dem zuvor berechneten Ergebnis.
Angenommen, Sie wollen das oben genannte Beispiel (Montag der KW 15 aus 2020) umsetzen, dann würde die aufgelöste Formel in Excel so aussehen:
=("4.1.2020") + 15*7 - 7 - REST("2.1.2020"; 7)
und wenn Sie das (numerische) Ergebnis dieser Formel als Datum formatieren, dann wird Ihnen der 06.04.2020 als Ergebnis in der entsprechenden Zelle stehen.
Und nun sind Sie gefordert. 😉 Auf der Basis der oben ausgeführten Aufschlüsselungen der Formel ist es durchaus möglich, eine Formel in Power Query zu generieren. Sie könnten in der Power Query-Formel zwar die generierten kalendarischen Daten auch in Anführungsstriche setzen und dann zu einem PQ-gerechten Datum umwandeln, ich halte aber die #date() – Funktion für geeigneter.
Und Sie werden gewiss die Funktion Number.From() nutzen, um zum Ergebnis zu kommen. Die Funktion Date.From() wird im Endeffekt dafür sorgen, dass das Ergebnis der Funktion auch als Datum ausgegeben wird.
Für eine einmalige Anwendung in Power Query mag dieser Weg ja noch ganz passend sein. Wenn Sie aber öfter diese Funktonalität brauchen, dann bietet sich eine UDF (userdefined function), eine benutzerdefinierte Funktion an. Die können Sie in jede beliebige Abfrage per copy/paste einbinden und für die Berechnung des Montags nutzen. Ich habe eine solche Funktion erstellt und auch noch um die Möglichkeit ergänzt, dass optional angegeben werden kann, welcher Wochentag statt des Montags berechnet werden soll; eine Zahl der zu addierenden Tage (1 für Dienstag bis 6 für Sonntag) sorgt dann für die entsprechende Berechnung.
Ein wichtiger Hinweis
Der Link auf den Folge-Beitrag beginnt mit „$$”. Das bedeutet für alle derartig ausgezeichneten Beiträge, dass diese kostenpflichtig sind (eine geringe Spende).
Näheres dazu in der angesprochenen Mail. Auch Wissen hat einen Wert!
Wie eben schon dargelegt habe ich auch eine ausführliche Beschreibung meines Lösungswegs in bekannter, ausführlicher Form erstellt. Eine E‑Mail an mich mit dem Stichwort / Betreff $$ PQ: Montag einer (ISO) Kalenderwoche berechnen und Sie bekommen von mir den entsprechenden Link sowie das erforderliche Passwort zum öffnen des Beitrags, sofern Sie mir eine eine Spende von 4,00€ (Überweisung, Amazon-Gutschein oder PayPal Freundschaft) haben zukommen lassen.