Das grosse Archiv mit 627
VBA-freien Formellösungen und Tips
 
   
 
 ÜBER UNS   NEWS   FORMELN   TIPPS   KONTAKT   GäSTEBUCH   FORUM   LINKS 
   
Übersicht   Zauberbuch   Rätselbuch   Sparbuch   Bücher-Downloads / Errata  
 
Datum/Zeit (1) ->

Wochentag eines Datums vor 1900 berechnen (306)

Autor: Peter Dorigo
 
 
Aufgabe
Die Bestimmung des Wochentages mit den Excelformeln ist auf Daten nach dem
01.01.1900 beschränkt. Um genau zu sein, ist es sogar so, dass für
Daten vor dem 01.03.1900 falsche Wochentage ausgegeben werden.

Wochentag("01.01.1900") gibt 1 aus, entsprechend Sonntag.
TEXT("01.01.1900";"TTTT") gibt Sonntag aus.
In Wirklichkeit war der 01.01.1900 ein Montag.

Das liegt an dem berüchtigten Fehler, dass Excel das Jahr 1900 als
Schaltjahr wertet.


Lösung
In B3 steht der Tag
In C3 steht der Monat
In D3 steht das Jahr

Dann lautet die Formel

=TEXT(REST(B3+KÜRZEN(((C3<3)*12+C3+1)*2,6)+KÜRZEN(D3-(C3<3)-KÜRZEN((D3-(C3<3))/100)*100)+KÜRZEN((KÜRZEN(D3-(C3<3)-KÜRZEN((D3-(C3<3))/100)*100))/4)+KÜRZEN(KÜRZEN((D3-(C3<3))/100)/4)-2*KÜRZEN((D3-(C3<3))/100);7);"TTTT")

In leicht abgewandelter Form kann auch für ein beliebiges Datum des
Julianischen Kalender der Wochentag berechnet werden.

Dann lautet die Formel

=TEXT(REST(B3+KÜRZEN(((C3<3)*12+C3+1)*2,6)+KÜRZEN(D3-(C3<3)-KÜRZEN((D3-(C3<3))/100)*100)+KÜRZEN((KÜRZEN(D3-(C3<3)-KÜRZEN((D3-(C3<3))/100)*100))/4)+5-KÜRZEN((D3-(C3<3))/100);7);"TTTT")

Diese Formel beruhen auf eine vom Mathematiker Ch. Zeller im Jahre 1886
veröffentlichte Kalenderformel.

Und das ganze verkürzte Peter Dorigo (unser Datums-Freak) auf:
=TEXT(DATUM(REST(D3;400)+100;C3;B3);"TTTT")


mit folgender Erweiterung von Ernst-Albrecht wird vermieden, daß ein ungültiges Datum eingegeben wird:
=WENN(TAG(DATUM(REST(D3;400)+100;C3;B3))=B3;TEXT(DATUM(REST(D3;400)+100;C3;B3);"TTTT");"Kein gültiges Datum")



Erläuterung
Achtung:
Wählt man den 29. Februar eines Jahres, das gar kein Schaltjahr ist, wird trotzdem ein Wochentag ausgegeben.
Mit Formel Nr.10 kann geprüft werden, ob das Jahr ein Schaltjahr ist.
 
    zurück


 
powered by telltarget