Re: [de-users] LO: Calc: Funktion 'Tage': Unterschiedlichkeiten

2017-01-10 Diskussionsfäden Wolfgang Jäth
Am 10.01.2017 um 16:43 schrieb JoLa_33:
> 
> 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
-- 

---
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus


-- 
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert


Re: [de-users] LO: Calc: Funktion 'Tage': Unterschiedlichkeiten

2017-01-10 Diskussionsfäden Thomas Krumbein

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



Am 10.01.2017 um 16:43 schrieb JoLa_33:

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

 --

J o s t  L a n g eDipl.-Ing.
 Dozent  f. Gebäude-Technik a.D.
 Lektor  f. EDV-Anwendungen
59075 Hamm-Westf.
  Eschstr. 1B
  R.:02381-72838





--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert