LO: Calc: Funktion 'Tage': Unterschiedlichkeiten

Hallo und ein gutes Jahr 2017 Euch Freunden,

In o.a. Sache brauche ich Eure Hilfe.
Im Rahmen der Gestaltung einer Schulungs-Aufgabe habe ich folgendes
Problem :
1. B2 = Eingabe Datum: 31.05.17
     C2 = Eingabe Datum: 01.06.16

     B3 = =TAGE(C2;B2)+1 = 365 = OK,

nunmehr will ich wie folgt Inhalt C2; B2 innerhalb der Formel ersetzen :

2. B5 = TAGE("31.05.17";"01.06.16" )+1 und erhalte '#WERT!'
     B7 = TAGE( 31.05.17 ; 01.06.16 )+1 und erhalte 'NAME?'

Warum ist diese Unterschiedlichkeit ( Begründung )

Gem. meiner Überlegungs-Logik müßte die Funktion 'TAGE' genauso
mit den nachfolgenden Werten von B5 / B7 umgehen können, wie mit
denen aus B2 u. C2 und damit zum selben Ergebnis kommen.

Mir ist nicht damit gedient: 'Das ist so - Basta' sondern ich muß es im
Rahmen meiner Aufgabenstellung begründen können.

Ich vermute mal die Programmierer haben hier nicht ganzheitlich
darüber nachgedacht in welch unterschiedlicher Weise die Werte
eingestellt werden können.
Dann dürfte dieses eine zu beseitigende Unzulänglichkeit sein.

Ich hoffe auf baldige erschöpfende Antwort.
Vielen Dank!

Mit freundlichen Grüßen !
             JoLa

Hey Jola,

Datumsformate sind intern fortlaufende Zahlen (Tage) - Startpunkt 30.11.1899. Es gibt also keine "Datumswert" sonder das angezeigte Datum ist immer nur eine Folge der Formatierung.

Gibst Du in eine Zelle "31.05.17" ein, erkennt Calc das Datumsformat und rechnet dieses Datum um - gespeichert wird die Zahl 42886 . Das ist der WErt in der Zelle (kannst Du überprüfen- stelle einfach das Zellformat auf "Zahl" um.)

Die Funktion Tage() erwartet zwei Datumswerte - also funktioniert dein 1. Teil.

Im zweiten Teil (2. B5 = TAGE("31.05.17";"01.06.16" )+1 ) übergibst Du einen String (text) - geht alos nicht und als Ergebnis erhälst Du #Wert

Auch das Weglassen der Anführungszeichen macht es nicht besser - der Ausdruck 31.05.17 ist gar nicht mehr zu interpretieren. Wenn Du einen TExtstring übergeben willst, nutze die Funktion DATUMSWERT() - die rechnet aus einem gültigen Datumsstring einen internen Datumswert aus.

Also:

B5 = TAGE(DATUMSWERT("31.05.17");DATUMSWERT("01.06.16") )+1 )

sollte Dein Problem lösen.

Viele Grüße

Thomas

In o.a. Sache brauche ich Eure Hilfe.
Im Rahmen der Gestaltung einer Schulungs-Aufgabe habe ich folgendes
Problem :
1. B2 = Eingabe Datum: 31.05.17
     C2 = Eingabe Datum: 01.06.16

     B3 = =TAGE(C2;B2)+1 = 365 = OK,

nunmehr will ich wie folgt Inhalt C2; B2 innerhalb der Formel ersetzen :

2. B5 = TAGE("31.05.17";"01.06.16" )+1 und erhalte '#WERT!'

TAGE erwartet als Parameter zwei Werte; hier übergibst Du aber zwei
Strings. Du musst vorher die Strings in Werte konvertieren:

= TAGE(WERT("31.05.17");WERT("01.06.16"))+1

B7 = TAGE( 31.05.17 ; 01.06.16 )+1 und erhalte 'NAME?'

Datums- und/oder Zeitangaben werden intern als Dezimalzahl gespeichert,
und zwar in der Form, dass sie die Anzahl Tage seit dem 31.12.1899 [1]
repräsentiert. Uhrzeiten werden dementsprechend als Bruchteile von Tagen
dargestellt. Angaben wie '31.05.17' usw. stellen aber keine gültige
Dezimalzahl dar; das ist lediglich ein *Format* für die *Darstellung*
einer Zahl. Und das Darstellungsformat ist ausschließlich eine Sache Der
/Ausgabe/ nicht der /Eingabe/.

[1] standardmäßig; der Startwert ist in den Optionen einstellbar

Warum ist diese Unterschiedlichkeit ( Begründung )

Weil es zwei verschiedene Fehler sind (s. o.).

Gem. meiner Überlegungs-Logik müßte die Funktion 'TAGE' genauso
mit den nachfolgenden Werten von B5 / B7 umgehen können, wie mit
denen aus B2 u. C2 und damit zum selben Ergebnis kommen.

Prinzipiell ja, sofern Du für die Formeln in B5 bzw. B7 korrekte
Parametern angibst.

Ich vermute mal die Programmierer haben hier nicht ganzheitlich
darüber nachgedacht in welch unterschiedlicher Weise die Werte
eingestellt werden können.

Du vermutest falsch. Die Programmierer haben sehr wohl darüber
nachgedacht, und befunden, dass die Funktion Parameter im gültigen
Datenformat (s. o.) erwartet, und nix anderes.

Wolf 'was auch sonst als das gültige Datenformat sollten sie denn bitte
implementieren?' gang