Problem: Datum in berechneter Spalte und ganztägiges Ereignis

31. März 2007 · Thema: Bugs, Herausforderungen, Listen

Szenario und Problem: normaler Kalender mit mehrtägigen Einträgen. Um die Angabe “von bis” etwas übersichtlicher darzustellen als mit den beiden Standard-Spalten “Anfangszeit” und “Endzeit”, habe ich eine weitere Spalte erstellt vom Typ “berechnet (basierend auf anderen Spalten)”. Das funktioniert weitgehend gut für Termine, die nicht als ganztägige Ereignisse markiert sind - auch wenn sie mehrtägig sind. Sobald aber ein Termin als “ganztägig” markiert ist, wird die Endzeit (normalerweise …. 23:59) merkwürdigerweise um eine oder zwei Stunden nach hinten verschoben. Wird nun davon das Datum extrahiert, erhält man den folgenden und somit falschen Tag.

Fall 1 - korrektes Verhalten:
Anfangszeit: 07.02.2007 00:00
Endzeit: 21.02.2007 23:59
Ganztägiges Ereignis: nein
Von/bis-Feld: 7.2. - 21.2.2007

Fall 2 - falsches Verhalten:
Anfangszeit: 05.02.2007 00:00
Endzeit: 09.02.2007 23:59
Ganztägiges Ereignis: ja
Von/bis-Feld: 5.2. - 10.2.2007

Sobald ein Termin als ganztägiges Ereignis gekennzeichnet wird, wird die Endzeit (aus der Perspektive von berechneten Spalten - nicht in der Originalspalte) um eine oder zwei Stunden nach hinten verschoben - also auf 00:59 bzw 01:59. Originell, nicht wahr? Leicht nachzuvollziehen zB mit der Formel =TEXT(Endzeit;”DD.MM.YYYY hh:mm”) in einer berechneten Spalte.

Eine von/bis-Spalte ist doch ein spektakulärer Wunsch. Die Darstellungsweise “7.2. - 21.2.2007″ ist viel kompakter als zwei Spalten mit Anfangs- und Endzeit inklusive Stunden und Minuten. Bin ich wirklich der Einzige, der auf solche Probleme trifft?

Ich habe es schlussendlich (unsauber) gelöst, indem ich generell 0,1 von der Endzeit (serielle Zahl: Tage nach 1. Januar 1900) subtrahiere. Wer eine besser Lösung als diese findet, melde sich:

=WENN(
TEXT(Anfangszeit;"YYYY")=TEXT(Endzeit;"YYYY");
TAG(Anfangszeit) & "." & MONAT(Anfangszeit) & ". - " & TAG(Endzeit-0,1) & "." & MONAT(Endzeit-0,1) & "." & JAHR(Endzeit-0,1);
TAG(Anfangszeit) & "." & MONAT(Anfangszeit) & "." & JAHR(Anfangszeit) & " - " & TAG(Endzeit-0,1) & "." & MONAT(Endzeit-0,1) & "." & JAHR(Endzeit-0,1)
)

2 Kommentare
  1. Pingback
  1. #2 • Thomas hat am 19.10.2009 gesagt:
     

    Ich habe das selbe Problem.
    Nur kann man es nicht IMMER mit “-0,1″ ausgleichen, da ja die Zeit “eine ODER zwei Stunden nach hinten verschoben” wird.

Hinterlasse einen Kommentar!

Kommentar:

Diskussion zum Beitrag als RSS 2.0 Feed abonnieren.