Hallo zusammen,
ich habe ein kleines Problem mit den Wochentagen. Wie wir alle wissen, ist der 1. Januar 2007 ein Montag. Folglich ergibt =WOCHENTAG("01.01.2007";2) eine 1 für Montag. Soweit, so gut.
Wenn ich nun über den Formatbefehl die Zelle als Text formatiere, unter "Benutzerdefiniert" gehe und dort die Reihe von t's eingebe, passiert folgendes:
Erstes t - 31
Zweites t - nichts
Drittes t - So
Viertes t - Sonntag
Der Wochentag - Befehl mit dem Parameter 2 (Montag = 1) ergibt also richtig eine 1, die Formatierung in Text macht daraus aber statt Montag einen Sonntag...
Gibt es eine Erklärung dafür?
Liebe Grüße,
Rüdiger
Fehler bei den Wochentagen?
Moderator: Moderatoren
Ja.Gibt es eine Erklärung dafür?
Du bringst hier Einiges durcheinander - klar ist:
=WOCHENTAG("01.01.2007";2)
1, nur das ist ja dann gleichzeitig der Wert der in der Zelle (als Ergebnis de Formel) steht. Und der Wert 1 entspricht bei Standardeinstellung (30.12.1899 = 0) nun einmal, wenn Datumsformatierung vorliegt, dem Datum 31.12.1899 und dieser Tag war ein Sonntag.
Um hingegegen den Wochentag der dem Datum 01.01.2007 entspricht anzuzeigen, schreibe:
01.01.2007
in die Zelle und formatiere die Zelle mittels:
TTTT
Gruß
Stephan
Kleine Ergänzung: Kalenderdaten sind Zahlen, daher dürfen sie nicht in Anführungszeichen gesetzt werden. Wenn Du ein Datum in der Schreibweise 1.1.2007 ohne Anführungszeichen eingibst und die Formel abschliesst, macht Calc daraus eine 5stellige Zahl:
=WOCHENTAG(39083;2)
Anführungszeichen bräuchtest Du z.B. in dieser Kombination:
=WOCHENTAG(DATWERT("1.1.2007");2)
weil DATWERT ein Datum aus einem Text entnimmt
=WOCHENTAG(39083;2)
Anführungszeichen bräuchtest Du z.B. in dieser Kombination:
=WOCHENTAG(DATWERT("1.1.2007");2)
weil DATWERT ein Datum aus einem Text entnimmt
Und wer sagt das bzw. wer hätte das zu entscheiden?Kleine Ergänzung: Kalenderdaten sind Zahlen, daher dürfen sie nicht in Anführungszeichen gesetzt werden.
(ich meine die Frage schon ernst, wenn hier die Rede davon ist das Kalenderdaten bei der Funktion WOCHENTAG() nicht in Anführungszeichen gesetzt werden dürfen)
Falls ich mal annehme das die Formeln so in OOo verwendet werden dürfen wie es die Hilfe aussagt sind Anführungsstriche zulässig, funktionieren tut es ohnehin.
Da es das Bestreben von Calc ist in Hinblick auf Tabellenformeln möglichst vollkompatibel zu MS Excel zu sein (zu werden) wäre alles Andere meiner Meinung nach auch unlogisch, denn die Excelhilfe sagt klar aus (dort wo in Calc nur Beispiele das aufzeigen) das ein Datum als Text als Parameter zulässig ist:
"...
WOCHENTAG(Zahl;Typ)
Zahl
ist eine Kodierung für Datum und Zeit, die Microsoft Excel für Datums- und Zeitberechnungen verwendet. Sie müssen das Argument Zahl nicht als Zahl, sondern können es auch als Text angeben
..."
Nein, ich bestreite ja überhaupt nicht die Frage der 'mathematischen Logik' oder 'Konsitenz' die für die Übergabe des Parameters als Zahl sprechen würde, nur es geht hier vorrangig um Bedienaspekte und nicht zuletzt um Kompatibilität zum sehr verbreiteten MS Excel.
Der derzeitige Mangel ist allenfalls die Calc-Hilfe die verbal nicht auf die Zulässigkeit der Übergabe des Datums als Text hinweist, sondern lediglich entsprechende Beispiele aufführt.
Ja, genau - und wenn Du diese automatische Anpassung nicht willst schreibe das Datum in Anführungszeichen.Wenn Du ein Datum in der Schreibweise 1.1.2007 ohne Anführungszeichen eingibst und die Formel abschliesst, macht Calc daraus eine 5stellige Zahl:
=WOCHENTAG(39083;2)
Gruß
Stephan
Entschuldige, wenn ich hier eine ungeschickte Formlierung verwendet habe. Ich will eigentlich nie irgendwem irgendwas verbieten. Ich bin es nur seit jeher gewohnt (mit Excel habe ich wenig zu tun, aber bei anderen Datebank-Queries), Text in Anführungszeichen zu setzen und Zahlen eben nicht.Stephan hat geschrieben:Und wer sagt das bzw. wer hätte das zu entscheiden?Kleine Ergänzung: Kalenderdaten sind Zahlen, daher dürfen sie nicht in Anführungszeichen gesetzt werden.
(ich meine die Frage schon ernst, wenn hier die Rede davon ist das Kalenderdaten bei der Funktion WOCHENTAG() nicht in Anführungszeichen gesetzt werden dürfen)
Ich weiss nur, dass 1 = 1 WAHR liefert und 1 = "1" FALSCH. Davon ausgehend unterscheide ich in allen Funktionen grundsätzlich durch die Schreibweise zwischen Zahlen und Zeichen. Möglich, dass manche Funktionen da tolerant sind, aber das würde heissen, dass ich das bei allen Funktionen genau abklären müsste, um sicher zu sein. Lasse ich jedoch grundsätzlich die Anführungszeichen weg, wenn ich es mit Zahlen zu tun habe, dann kann ich sicher sein, keine Überraschungen zu erleben. Und wenn ich das ganze als Textformat brauche, gibt es ja Funktionen wie TEXT() oder DATWERT() um hin und her switchen zu können.
Aber abgesehen davon habe ich sowieso am Ziel vorbeigeschossen - das Problem war ja, dass Rüdiger das Datumsformat nicht auf den 1.1.2007 angewandt hat, sondern auf die Zahl 1.
Interessieren würde mich der Zweck hinter dem Vorgang, aus einem Datum einen Wochentag zu ermitteln, diesen aber nicht als Zahl anzeigen zu wollen, sondern als Datum - vielleicht geht es ja um etwas, was ich noch gar nicht begriffen habe
mfG
sind sie nichtMöglich, dass manche Funktionen da tolerant sind,
Ich hatte versucht deutlich zu machen das es ebend nicht ausschließlich um Mathematik sondern auch um Bedienfragen geht, und es besteht keine Toleranz zwischen:
1.1.2007 vs. "1.1.2007"
sondern das sind i.d.S. unterschiedliche Angaben, weil die erste Angabe die Information enthält das der Eintrag in der Formel gewandelt werden soll und die Zweite nicht.
Ein ganz prima Beispiel für solches Verhalten sind optionale Parameter in manchen Tabellenfunktionen, die zwar optional sind, wo ich aber dadurch das ich sie nicht angebe gleichzeitig eine Information übermittle, denn 'optional' heißt dann ebend nicht das keine Aussage betreffs des Parameters getroffen wird.
Du mußt ohnehin bei jeder Funktion "abklären" wie sie funktioniert, zumindest wüßte ich nicht wie man sonst zu korrekten Ergebnissen kommt.aber das würde heissen, dass ich das bei allen Funktionen genau abklären müsste,
Mit reiner Logik (also mit der Hoffnung Du könntest unbekannte Funktionen verstehen, in der Annahme das sie sich logisch verhalten müssen) wirst Du nicht überall weiterkommen. Es gibt an etlichen Stellen Besonderheiten die sich eingebürgert haben, die nicht unbedingt logisch sind, aber die den Umgang vereinfachen und an die man gewöhnt ist.
Dann schau Dir beispielsweise SUMMEWENN() an, dort mußt Du wenn Du Zahlen vergleichen willst den 'Vergleichsparameter' als Text und nicht als Zahl angeben obwohl Du Zahlen vergleichst.Lasse ich jedoch grundsätzlich die Anführungszeichen weg, wenn ich es mit Zahlen zu tun habe, dann kann ich sicher sein, keine Überraschungen zu erleben.
Die Situation ist dort vergleichweise so das wenn Du 1 = 1 erreichen willst, 1 "= 1" schreiben mußt damit das erreicht wird.
Gruß
Stephan
Ja. Mit der Logik dieser Funktion tue ich mich auch schwer. So habe ich bisher nicht herausgefunden, wie man damit als Text formatierte Zahlen von "richtigen" Zahlen unterscheidet.Stephan hat geschrieben: Dann schau Dir beispielsweise SUMMEWENN() an, dort mußt Du wenn Du Zahlen vergleichen willst den 'Vergleichsparameter' als Text und nicht als Zahl angeben obwohl Du Zahlen vergleichst.
Die Eingabe "6" wird korrigiert nach 6 und behandelt "6" und 6 gleich, was meiner bescheidenen Meinung nach nicht korrekt ist. Auch "<>6" macht keinen Unterschied zwischen Text und Zahl. Aber da weiche ich dann auf Matrixformeln aus und kann mich wieder auf mein Prinzip - Text mit, Zahlen ohne Anführungszeichen - abstützen.
mfG
PS: mit SUMMEWENN macht mein Beispiel natürlich wenig Sinn, ich bezog mich auf ZÄHLENWENN, die gleich funktioniert