Excel VBA: Kalenderwoche, Jahr und Tag in Datum umwandeln

M--G

Lieutenant
Registriert
Dez. 2006
Beiträge
762
Hallo zusammen,
manchmal sind es die schier einfachsten Dinge, welche dann doch nicht so einfach sind wie vorgestellt.

Zelle A2 enthält das Jahr
Zelle B2 enthält die Kalenderwoche
Celle D2 enthält den Wochentag

und in C4 möchte ich das Datum ausgeben (Zellennamen sind erstmal noch Platzhalter für mein Testprogramm).

Bisher mit der Formel gelöst, aber diese gibt mir nur immer einen speziellen Tag der Woche aus (in dem Fall +0 = Donnerstag)
=DATUM($A$2;1;7*$B$2+0-WOCHENTAG(DATUM($A$2;;);3))
ggf hilft das irgendwann mal jemanden, wenn es um eine Lösung in Excel Frontend geht.

Da ich aber spätestens bei If schleifen (und ich in dem Dokument sowieso schon eine Vielzahl in Excel VBA machen muss) lieber in die Entwicklertools/VBA von Excel gehe, nun mein Problem.....
ich komme trotz googeln auf Deutsch und Englisch nicht so recht vom Fleck und finde keinen entsprechenden Code.

Deswegen wäre ich sehr dankbar, wenn jemand vielleicht eher den Überblick hat und ggf schon mal ein ganz ähnliches Problem hatte.
p.s. dass es im europäischen Raum wohl andere Formeln benötigt, macht es nicht wirklich leichter.

Gaaaaaanz dickes Dankeschön
 
M--G schrieb:
Zelle A2 enthält das Jahr
Zelle B2 enthält die Kalenderwoche
Celle D2 enthält den Wochentag
Zelle C2 enthält Korrektur KW Anfang (für das entsprechende Jahr - 2021 = 4 (Montag))
Zelle D2 Wochentag als Dropdown Mo-So (zur Vereinfachung)
Zelle E2 ist der Wochentag als Zahl

E2:
Code:
=WENN(D2="Montag";1;WENN(D2="Dienstag";2;WENN(D2="Mittwoch";3;WENN(D2="Donnerstag";4;WENN(D2="Freitag";5;WENN(D2="Samstag";6;WENN(D2="Sonntag";7;"Eingabefehler")))))))

Mein C6 (dein C4) = Enddatum
Code:
=DATUM($A$2;1;$C$2-1)+7*($B$2-1)+$E$2

Klappt soweit auch mit >53 bei KW.
Entspricht es deinen Anforderungen?
 
  • Gefällt mir
Reaktionen: M--G
Dankeschön Xippe :)
klappt so wunderbar!

habe mal beides kombiniert :)

=WENN(D2="Montag";DATUM($A$2;1;4-1)+7*($B$2-1)+1;WENN(D2="Dienstag";DATUM($A$2;1;4-1)+7*($B$2-1)+2;WENN(D2="Mittwoch";DATUM($A$2;1;4-1)+7*($B$2-1)+3;WENN(D2="Donnerstag";DATUM($A$2;1;4-1)+7*($B$2-1)+4;WENN(D2="Freitag";DATUM($A$2;1;4-1)+7*($B$2-1)+5;WENN(D2="Samstag";DATUM($A$2;1;4-1)+7*($B$2-1)+6;WENN(D2="Sonntag";DATUM($A$2;1;4-1)+7*($B$2-1)+7;"Eingabefehler")))))))
 
Das geht noch einfacher :)
Leg dir eine Liste der Wochentage an, zB in G1:G7. Daneben in H1:H7 die Zahlen 1-7
Dann:
=DATUM($A$2;1;4-1)+7*($B$2-1)+sverweis(D2;G1:H7;2;0)
 
  • Gefällt mir
Reaktionen: Xippe
Bleibt 2021 statisch, geht das, ansonsten müsst ihr beide den Korrekturfaktor dynamisch machen, also statt 4-1 muss es auf eine Zelle verweisen -> $C$2-1.

Dynamisch deshalb, weil jedes Jahr die KW1 ein anderes Datum besitzt.

Etwas umständlich, man ändert doch nur die letzte Ziffer, also würde ich nur diese entsprechend ändern ;).

also
Code:
=DATUM($A$2;1;$C$2-1)+7*($B$2-1)+WENN(D2="Montag";1;WENN(D2="Dienstag";2;WENN(D2="Mittwoch";3;WENN(D2="Donnerstag";4;WENN(D2="Freitag";5;WENN(D2="Samstag";6;WENN(D2="Sonntag";7;"Eingabefehler")))))))
 
Zuletzt bearbeitet: (mmmh..)
M--G schrieb:
manchmal sind es die schier einfachsten Dinge, welche dann doch nicht so einfach sind wie vorgestellt.

Zelle A2 enthält das Jahr
Zelle B2 enthält die Kalenderwoche
Celle D2 enthält den Wochentag

und in C4 möchte ich das Datum ausgeben

Um aus einem Jahr und der KW ein Datum zu errechnen, braucht Du folgende Formel:

=DATUM(A1;1;4)-WOCHENTAG(DATUM(A1;1;4);3)+B1*7-7

Damit bekommst Du das korrekte Datum, funzt auch mit einer 53 KW

Gruß

Michael
Ergänzung ()

Moin,

Das Äquivalent - aus einem Datum die Korrekte KW - dazu:

Datum ist in A16

=WENN(ISOKALENDERWOCHE(A16)<10;"KW 0"&ISOKALENDERWOCHE(A16)&"/"&JAHR(A16+3-REST(A16-2;7));"KW "&ISOKALENDERWOCHE(A16)&"/"&JAHR(A16+3-REST(A16-2;7)))

Gruß

Michael
 
Zurück
Oben