Registriert seit: 05.09.2018
Version(en): 365
12.09.2018, 00:58
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.
Registriert seit: 10.04.2014
Version(en): Office 2019
12.09.2018, 01:30
(Dieser Beitrag wurde zuletzt bearbeitet: 12.09.2018, 01:31 von Jockel.)
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 | 9 | Sonntag |
Zelle | Format | Wert | B9 | TTTT | 31.12.1899 |
Zelle | Formel | 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 | 9 | 1 |
Zelle | Formel | 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' | | K | L | 1 | Datum | Name des Tags | 2 | 31.12.1899 | Sonntag | 3 | 01.01.1900 | Montag | 4 | 02.01.1900 | Dienstag | 5 | 03.01.1900 | Mittwoch | 6 | 04.01.1900 | Donnerstag | 7 | 05.01.1900 | Freitag | 8 | 06.01.1900 | Samstag | 9 | 07.01.1900 | Sonntag | 10 | 08.01.1900 | Montag | 11 | 09.01.1900 | Dienstag | 12 | 10.01.1900 | Mittwoch | 13 | 11.01.1900 | Donnerstag | 14 | 12.01.1900 | Freitag | 15 | 13.01.1900 | Samstag | 16 | 14.01.1900 | Sonntag | 17 | 15.01.1900 | Montag | 18 | 16.01.1900 | Dienstag | 19 | 17.01.1900 | Mittwoch | 20 | 18.01.1900 | Donnerstag | 21 | 19.01.1900 | Freitag | 22 | 20.01.1900 | Samstag | 23 | 21.01.1900 | Sonntag | 24 | 22.01.1900 | Montag | 25 | 23.01.1900 | Dienstag | 26 | 24.01.1900 | Mittwoch | 27 | 25.01.1900 | Donnerstag | 28 | 26.01.1900 | Freitag | 29 | 27.01.1900 | Samstag | 30 | 28.01.1900 | Sonntag | 31 | 29.01.1900 | Montag | 32 | 30.01.1900 | Dienstag | 33 | 31.01.1900 | Mittwoch | 34 | 01.02.1900 | Donnerstag | 35 | 02.02.1900 | Freitag | 36 | 03.02.1900 | Samstag | 37 | 04.02.1900 | Sonntag | 38 | 05.02.1900 | Montag | 39 | 06.02.1900 | Dienstag | 40 | 07.02.1900 | Mittwoch | 41 | 08.02.1900 | Donnerstag | 42 | 09.02.1900 | Freitag | 43 | 10.02.1900 | Samstag | 44 | 11.02.1900 | Sonntag | 45 | 12.02.1900 | Montag | 46 | 13.02.1900 | Dienstag | 47 | 14.02.1900 | Mittwoch | 48 | 15.02.1900 | Donnerstag | 49 | 16.02.1900 | Freitag | 50 | 17.02.1900 | Samstag | 51 | 18.02.1900 | Sonntag | 52 | 19.02.1900 | Montag | 53 | 20.02.1900 | Dienstag | 54 | 21.02.1900 | Mittwoch | 55 | 22.02.1900 | Donnerstag | 56 | 23.02.1900 | Freitag | 57 | 24.02.1900 | Samstag | 58 | 25.02.1900 | Sonntag | 59 | 26.02.1900 | Montag | 60 | 27.02.1900 | Dienstag | 61 | 28.02.1900 | Mittwoch | 62 | 01.03.1900 | Donnerstag | 63 | 02.03.1900 | Freitag | 64 | 03.03.1900 | Samstag |
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 stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
12.09.2018, 06:56
(Dieser Beitrag wurde zuletzt bearbeitet: 12.09.2018, 06:56 von RPP63.)
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)
Registriert seit: 10.04.2014
Version(en): Office 2019
(12.09.2018, 06: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 stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 11.03.2015
Version(en): mittlerweile meistens 2019
12.09.2018, 15:42
(Dieser Beitrag wurde zuletzt bearbeitet: 12.09.2018, 15:42 von Der Steuerfuzzi.)
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
Registriert seit: 11.03.2015
Version(en): mittlerweile meistens 2019
(12.09.2018, 06:56)RPP63 schrieb: Dort war es tatsächlich ein Bug. It's not a bug, it's a feature!
Gruß Michael
Registriert seit: 10.04.2014
Version(en): Office 2019
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 stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 11.03.2015
Version(en): mittlerweile meistens 2019
(12.09.2018, 00: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...04C190949AWenn 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!)????
Gruß Michael
Registriert seit: 10.04.2014
Version(en): Office 2019
(12.09.2018, 16: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 stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
12.09.2018, 16:58
(Dieser Beitrag wurde zuletzt bearbeitet: 12.09.2018, 16:58 von RPP63.)
(12.09.2018, 15: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)
|