Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[Bug] WOCHENTAG(FALSCH) = Samstag
#1
Information 
Hier nur mal eine Eigenheit von Excel, die mir gerade aufgefallen ist:

Excel berechnet Wochentage auch aus booleanischen Werten (WAHR/FALSCH).
=WOCHENTAG(WAHR) ergibt Sonntag und WOCHENTAG(FALSCH) ergibt Samstag. Getestet in Excel 2013 und 365.
Grund dafür ist, dass die Werte ins Binäre übersetzt werden und die 1 dann in Excels unixzeitähnlichem Datumsrechner für den 1. Januar 1900 steht. Bei der 0 ist das noch etwas absurder, die steht offenbar für den 0. Januar 1900. Und da der 1. Januar 1900 ein Sonntag war, muss streng nach Logik der 0. Januar ein Samstag gewesen sein. Gleichermaßen ergibt WOCHENTAG(LEERE ZELLE) einen Samstag. Ich finde, dass Excel in beiden Fällen besser einen Fehler ausgeben sollte.

Mir ist bei der Fehleranalyse weiterhin aufgefallen, dasst Excel die Wochentage der ersten 60 Tage im Jahr 1900 falsch berechnet. Excel hat zwar von Haus aus das 1900er Schaltjahr-Problem, aber ich wusste bisher nicht, dass sich das auch auf die Wochentagsberechnung vom 1. Januar bis 28. Februar 1900 auswirkt. Also vorsicht, wenn jemand in solchen Bereichen hantiert, wo das vielleicht von Bedeutung ist. Mir hat es jetzt wenigstens nur meine bedingte Formatierungsformel verhagelt.
Antworten Top
#2
Hurra, der Erste, dem auffällt, dass Excel im Jahr 1900 ein Kalenderproblem hat... "... Und da der 1. Januar 1900 ein Sonntag war... " Bist du Zeitzeuge..? Der 01.01.1900 war ein Montag!!!! Das kann man (über einen kleinen  Umweg) auch in Excel ausrechnen - ebenso Wochentage vor dem 01.01.1900) - danke an lupo1 für einen dementsprechenden Hinweis

Aber mit =WOCHENTAG(WAHR)..? So ein Quatsch habe ich noch gar nicht gesehen. Sorry... Was kommt da raus? 1 Ist ja auch klar..: WOCHENTAG(WAHR) --> WOCHENTAG(1) = 1  aber schau mal genauer hin

Arbeitsblatt mit dem Namen 'Tabelle1'
B
9Sonntag

ZelleFormatWert
B9TTTT31.12.1899

ZelleFormel
B9=WOCHENTAG(WAHR)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Arbeitsblatt mit dem Namen 'Tabelle1'
B
91

ZelleFormel
B9=WOCHENTAG(WAHR)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg



Richtig ist in PQ -->

Arbeitsblatt mit dem Namen 'Tabelle1'
KL
1DatumName des Tags
231.12.1899Sonntag
301.01.1900Montag
402.01.1900Dienstag
503.01.1900Mittwoch
604.01.1900Donnerstag
705.01.1900Freitag
806.01.1900Samstag
907.01.1900Sonntag
1008.01.1900Montag
1109.01.1900Dienstag
1210.01.1900Mittwoch
1311.01.1900Donnerstag
1412.01.1900Freitag
1513.01.1900Samstag
1614.01.1900Sonntag
1715.01.1900Montag
1816.01.1900Dienstag
1917.01.1900Mittwoch
2018.01.1900Donnerstag
2119.01.1900Freitag
2220.01.1900Samstag
2321.01.1900Sonntag
2422.01.1900Montag
2523.01.1900Dienstag
2624.01.1900Mittwoch
2725.01.1900Donnerstag
2826.01.1900Freitag
2927.01.1900Samstag
3028.01.1900Sonntag
3129.01.1900Montag
3230.01.1900Dienstag
3331.01.1900Mittwoch
3401.02.1900Donnerstag
3502.02.1900Freitag
3603.02.1900Samstag
3704.02.1900Sonntag
3805.02.1900Montag
3906.02.1900Dienstag
4007.02.1900Mittwoch
4108.02.1900Donnerstag
4209.02.1900Freitag
4310.02.1900Samstag
4411.02.1900Sonntag
4512.02.1900Montag
4613.02.1900Dienstag
4714.02.1900Mittwoch
4815.02.1900Donnerstag
4916.02.1900Freitag
5017.02.1900Samstag
5118.02.1900Sonntag
5219.02.1900Montag
5320.02.1900Dienstag
5421.02.1900Mittwoch
5522.02.1900Donnerstag
5623.02.1900Freitag
5724.02.1900Samstag
5825.02.1900Sonntag
5926.02.1900Montag
6027.02.1900Dienstag
6128.02.1900Mittwoch
6201.03.1900Donnerstag
6302.03.1900Freitag
6403.03.1900Samstag
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#3
Moin!
Man kann Microsoft ja vieles anlasten, aber die Schaltjahresproblematik von 1900 gehört definitiv nicht dazu!
Der Fehler wurde bewusst eingebaut, um die Kompatibilität zum damaligen Marktführer Lotus 1-2-3 zu gewährleisten.
Dort war es tatsächlich ein Bug.
Deshalb kennt der Mac Daten erst ab 1904, in Excel kann man diesen Zahlenraum in den Optionen einstellen.

Break:
Wenn ich mit Daten vor dem 1.3.1900 rechnen will/muss, was ja extrem selten vorkommt, dann nehme ich gleich VBA.
Dort kann man ab dem 1.1.100 rechnen.
Hier ist auch das Schaltjahrproblem durchaus elegant gelöst:
VBA toleriert zwar die Eingabe des falschen 29.2.1900, rechnet dieses falsche Datum intern aber direkt in den 1.3.1900 um.

Beweis (Direktfenster):
?Format(DateSerial(1900, 2, 28), "dddd")
Mittwoch
?Format(DateSerial(1900, 2, 29), "dddd")
Donnerstag
?Format(DateSerial(1900, 3, 1), "dddd")
Donnerstag

Insbesondere siehe:
?Format(DateSerial(1900, 2, 29), "ddd dd.mm.yyyy")
Do 01.03.1900


Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
(12.09.2018, 05:56)RPP63 schrieb: Moin!
...
Wenn ich mit Daten vor dem 1.3.1900 rechnen will/muss, was ja extrem selten vorkommt, dann nehme ich gleich VBA.
Dort kann man ab dem 1.1.100 rechnen.
Gruß Ralf

Hallo Ralf, das geht? Ab 1.1.100 In Wirklichkeit? Oder ist das ein Verschreiber..?
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#5
Hallo,

Date ist ein 8 bit Datentyp mit Nachkommastellen und läuft von -657.434 (1.1.100) bis +2.958.465,99998843 (31.12.9999 23:59:59).
https://docs.microsoft.com/en-us/office/...-data-type
Gruß
Michael
Antworten Top
#6
(12.09.2018, 05:56)RPP63 schrieb: Dort war es tatsächlich ein Bug.
It's not a bug, it's a feature! Angel
Gruß
Michael
Antworten Top
#7
Hi, und was ist mit den wechselnden Kalendarien..? Aber wer braucht das schon..? Egal. Aber es ging ja um den [Bug]  mit WOCHENTAG(WAHR) oder WOCHENTAG(FALSCH) ...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#8
(11.09.2018, 23:58)Gimlee schrieb: =WOCHENTAG(WAHR) ergibt Sonntag und WOCHENTAG(FALSCH) ergibt Samstag.
Wenn Du mal nachliest, wirst Du merken, dass die Funktion WOCHENTAG eine Zahl als Agrument erwartet: https://support.office.com/de-de/article...04C190949A
Wenn Du die Funktion nun mit sinnfreien Datenformaten bewirfst, wird excel versuchen, diese als Zahl zu interpretiern und umzuwandeln. So geschehen mit den Wahrheitswerten. Welchen Sinn macht es, Wahrheitswerte in die Funktion WOCHENTAG einzugeben (außer es ist pure Absicht!)???? Huh Huh
Gruß
Michael
Antworten Top
#9
(12.09.2018, 15:03)Der Steuerfuzzi schrieb: Wenn Du mal nachliest, wirst Du merken, dass die Funktion WOCHENTAG eine Zahl als Agrument erwartet...

Hallo wichtiger als das Argument [das ist ja optional] ist jedoch ein Datum. Wozu braucht man ein Wochentag außer zu einem Datum...?
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#10
(12.09.2018, 14:47)Jockel schrieb: Hi, und was ist mit den wechselnden Kalendarien..?
Moin!
Wenn es nicht gerade die Zeitspanne der nicht vorhandenen Daten bei Kalenderumstellung betrifft, ist es egal.
Die Wochentage betrifft es jedenfalls nicht!
Vom Jahr 100 bis heute folgte auf einen Donnerstag IMMER ein Freitag.  :21: 

Zitat:Auf Donnerstag, den 4. Oktober 1582, folgte Freitag, der 15. Oktober 1582.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste