Bier hinterlässt keine Rotweinflecken.

Hallo Rene,

ich hoffe es geht dir gut, bei diesem schönen Wetter.

Die Zeitraumberechnung mit WORD-Feldfunktionen hat mich doch noch weiter beschäftigt. Ich habe mich deshalb etwas intensiver mit Formel zur Datumsberechnung und auch mit den WORD-Feldfunktionen beschäftigt.

Dabei habe ich einiges dazu gelernt. War dir z.B. bekannt, dass mit der SET-Funktion auch ausgeblendete Textmarken erzeugt werden können. Dazu muss der Textmarkenname nur mit einem Unterstrich beginnen.

Oder das mit Hilfe der QUOTE-Funktion strukturierte Feldfunktionskombinationen erstellt werden können.

Als Beispiel hänge ich eine Word Datei an die Mail. Bei der zur Berechnung der Zeitdifferenz in Version 1 nur 7 Zeilen benötigt werden. Bei Version 2 kann sogar eine Zeitdifferenz über mehrere Tage berechnet werden. Diese Version benötigt nur 15 Zeilen. Das Feldfunktion-Ergebnis wird aber in nur 1 Zeile dargestellt.

Schöne Grüß

Salü

Ernst

####

Berechnen einer Zeitdifferenz mit WORD-Feldfunktionen.

Die Berechnung einer Zeitdifferenz mit WORD-Feldfunktionen soll nicht oder nur mit viel Aufwand möglich sein. Das ist nicht richtig.

Durch eine Kombination der Feldfunktionen {=}, {SET} und {QUOTE}, sowie der Anwendung von Format-Schaltern ist dies sogar strukturiert möglich.

Vorbemerkungen:

Laut Hilfe ordnet die Feldfunktion SET einer Textmarke Text zu.
Syntax: {Set Textmarkenname „Text oder Feldfunktion“}
Das auch ausgeblendete Textmarken so erzeugt werden können, wird in der Hilfe nicht beschrieben. Dazu muss der Textmarkennamen nur mit einem Unterstrich beginnen.

Wenn die Feldfunktion QUOTE mit Formatierungsschalter verwendet wird, werden alle anderen Inhalte ausgeblendet. Dies gilt auch für LF und CR. Dadurch kann die jeweilige Feldfunktionskombination strukturiert geschrieben werden. Sie muss nur von der QUOTEN Feldfunktion umschlossen sein.

Weiterer Hinweis:

Durch Kombination dieser 3 Feldfunktionen können noch weitere Datumwerte errechnet werden.

Beispielweise

Die Bestimmung ob ein Jahr ein Schaltjahr ist.

Anzeige des Druckdatum plus x Tage.

Berechnung des Wochentags als Zahl (Montag = 1)

usw.

Ver. 1 – Für eine Zeitdifferenz die kleiner als 24 Stunden ist.

Bei dieser Version besteht die Feldfunktionskombination aus nur 7 Zeilen.

Im nachfolgenden Beispiel ist den Zellen B1 und B2 vorher den Textmarken „StartZeit“ und „EndZeit“ zugeordnet worden. Die Feldfunktionskombination steht in Zelle B3.

Diese Methode hat unter anderem den Vorteil, dass die Zeit in jedem Format angegeben werden kann, die WORD als Zeit interpretiert. Z.B. statt 16:47 auch als 4:47 pm.

Natürlich muss nach jeder Änderung der Zeiteingabe die Feldfunktionskombination aktualisiert werden. Beispielsweise durch F9.

Startzeit8:53
Endzeit16:47
Zeitraum7:54

Hier die Feldfunktionskombination als Text

  1. {QUOTE „
  2. {SET _Ab{StartZeit}}
  3. {SET _Bis{EndZeit}}
  4. {SET _Zeitraum{=({_Bis \@ „H“}-{_Ab \@ „H“})*60+{_Bis \@ „m“}-{_Ab \@ „m“}}}
  5. {SET _Zeitraum{={_Zeitraum}+({_Zeitraum}<0)*1440}}
  6. {=INT({_Zeitraum}/60)}:{=MOD({_Zeitraum};60)}
  7. „ \@ „H:mm“}

Zeile 1 und 7 umschließt die gesamte Kombination und formatiert die Ausgabe im Format „H:mm“. Das Ergebnis wird dadurch in einer Zeile angezeigt, obwohl die Kombination aus 7 Zeilen besteht.

In Zeile 2 und 3 werden die Daten aus den Textmarken in interne Textmarken übertragen. Diese Zeilen müssen angepasst werden. Hier müssen die Textmarkennamen eingetragen werden.

Zeile 4 extrahiert die Stunden und Minuten aus den Eingaben. Die Startzeit wird von der Endzeit subtrahiert. Dazu werden die Stunden, durch Multiplikation mit 60, in Minuten umgewandelt. Das Ergebnis wird in die Textmarke _Zeitraum übernommen.

Zeile 5 überprüft ob der Wert kleiner 0 ist. Dies tritt dann ein, wenn die Endzeit einen Tag später als die Startzeit liegt. Ist dies der Fall wird 1440 dazu addiert und das Ergebnis in die Textmarke _Zeitraum übernommen.

Zeile 6 wandelt das Minutenergebnis in Stunden und Minuten um und gibt dies als Text aus.

Ver. 2 – Für eine Zeitdifferenz die größer als 24 Stunden ist.

Bei dieser Version besteht die Feldfunktionskombination allerdings aus 15 Zeilen.

Im nachfolgenden Beispiel ist den Zellen B1 und B2 vorher den Textmarken „StartZeit2“ und „EndZei2“ zugeordnet worden. Die Feldfunktionskombination steht in Zelle B3.

Auch diese Methode hat den Vorteil, dass das Datum und die Zeit in jedem Format angegeben werden kann, die WORD als Datum und Zeit interpretiert. Z.B. kann statt 12.06.2023 17:45 auch 12. Juni 2023 5:45 pm geschrieben werden. Allerdings werden somit auch nur Datumswerte zwischen dem 1.1.1901 und 31.12.4095 erkannt.

Natürlich muss auch hier nach jeder Änderung der Datums- und Zeiteingabe die Feldfunktionskombination aktualisiert werden.

Startzeit12.06.2023 8:11
Endzeit18. Juni 2023 9:31
Zeitraum6 Tag(e) 1 Stunde(n) und 20 Minute(n)

Hier die Feldfunktionskombination als Text

  1. {QUOTE „
  2. {SET _Ab{StartZeit2}}
  3. {SET _Bis{EndZeit2}}
  4. {SET _TagAb{_Ab \@ „d“}}
  5. {SET _MonatAb{={_Ab \@ „M“}+({_Ab \@ „M“}<3)*12}}
  6. {SET _JahrAB{={_Ab \@ „yyyy“}-({_Ab \@ „M“}<3)}}
  7. {SET _TWAb{=INT(({_JahrAb}-1900)*365,25)+INT(({_MonatAb}+1)*30,6001)+{_TagAb}-INT({_JahrAb}/100)+INT({_JahrAb}/400)-413}}
  8. {SET _TagBis{_Bis \@ „d“}}
  9. {SET _MonatBis{={_Bis \@ „M“}+({_Bis \@ „M“}<3)*12}}
  10. {SET _JahrBis{={_Bis \@ „yyyy“}-({_Bis \@ „M“}<3)}}
  11. {SET _TWBis{=INT(({_JahrBis}-1900)*365,25)+INT(({_MonatBis}+1)*30,6001)+{_TagBis}-INT({_JahrBis}/100)+INT({_JahrBis}/400)-413}}
  12. {SET _Zeitraum{=({_TWBis}-{_TWAb})*1440+({_Bis \@ „H“}-{_Ab \@ „H“})*60+{_Bis \@ „m“}-{_Ab \@ „m“}}}
  13. {SET _Tage{=INT({_Zeitraum}/1440)}}
  14. {=INT(MOD({_Zeitraum};1440)/60)}: {=MOD({_Zeitraum};60)}
  15. „ \@ „‘{_Tage \# „0“} Tag(e) ‘H‘ Stunde(n) und ‘m‘ Minute(n) ‘“}

Zeile 1 und 15 umschließt die gesamte Kombination und formatiert die Ausgabe. Das Ergebnis wird dadurch in einer Zeile angezeigt, obwohl die Kombination aus 15 Zeilen besteht.

In Zeile 2 und 3 werden die Daten aus den Textmarken in interne Textmarken übertragen. Diese Zeilen müssen angepasst werden. Hier müssen die Textmarkennamen eingetragen werden.

In Zeile 4 wird der Tag aus der Startzeit extrahiert.

In Zeile 5 wird der Monat aus der Startzeit extrahiert und wenn dieser kleiner als 3 ist, wird 12 addiert.

In Zeile 6 wird das Jahr der Startzeit extrahiert und wenn der Monat vorher kleiner als 3 war wird 1 subtrahiert.

In Zeile 7 wird errechnet wieviel Tage ab 1.1.1901 00:00 bis zur Startzeit vergangen sind.

In Zeile 8 wird der Tag aus der Endzeit extrahiert.

In Zeile 9 wird der Monat aus der Endzeit extrahiert und wenn dieser kleiner als 3 ist, wird 12 addiert.

In Zeile 10 wird das Jahr der Endzeit extrahiert und wenn der Monat vorher kleiner als 3 war wird 1 subtrahiert.

In Zeile 11 wird errechnet wieviel Tage ab 1.1.1901 00:00 bis zur Endzeit vergangen sind.

In Zeile 12 wird, nach Umrechnung in Minuten, die Startzeit von der Endzeit subtrahiert und somit die Zeitdifferenz in Minuten errechnet.

In Zeile 13 und 14 wird das Minutenergebnis in Tage, Stunden und Minuten umgerechnet.

in Zeile 14 werden der Stunden- und Minutenwerte ausgegeben.

In Zeile 15 das genaue Ausgabeformat festgelegt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.