Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>Formelproblem in Numbers: Zeitdauer-Berechnung über Mitternacht hinaus

Formelproblem in Numbers: Zeitdauer-Berechnung über Mitternacht hinaus

Polarkarnickel12.01.1813:30
Hallo Leute, vielleicht kann ein Numbers-Freak bei diesem kniffeligen Problem weiterhelfen:

In eine Numberstabelle sollen eingegeben werden:

1. Datum 2. Bezeichnung 3. Uhrzeit Beginn 4. Uhrzeit Ende 5. (kalkuliert) Dauer

Wie muss die Formel in (5. Dauer) aussehen, damit in (4. Uhrzeit Ende) eine Zeit stehen kann, die nach Mitternacht, also am nächsten Tag ist. Es soll eben NICHT explizit das Folgedatum nochmal mit eingegeben werden müssen. Entweder soll Numbers bei für (Uhrzeit Ende) niedrigeren Werten als (Uhrzeit Beginn) die Formel so ändern, dass keine falschen und negativen Dauern heraus kommen

WENN Ende < Beginn; (24-Beginn)+(Ende); sonst (Ende)-(Beginn)
Hier habe ich das Problem dass Numbers keine Uhrzeit von einer Zahl abziehen möchte.

....oder eine Alternative wäre, dass bei für Ende niedrigeren Werten als Beginn automatisch das Folgedatum für Uhrzeit Ende angenommen wird.

Habe dieses selbe Problem vielfach in mehreren Sprachen auf der ganzen Welt in verschiedenen Foren gefunden und nirgends ist jemals jemand auf die Lösung gekommen. Das muss doch möglich sein (In Excel ist es so leicht ;( )

Viel Spaß beim Kniffeln und vielen Dank!

Rainer


PS. also es soll bei Beginn 17:00 und Ende 1:00 auf korrekterweise 8h Dauer heraus kommen. Ohne dass bei Ende das Datum neu eingegeben werden muss. Und bei 17:00 - 23:00 soll er dann natürlich nicht für 23:00 Uhr das Folgedatum annehmen sondern das selbe wie bei Beginn. Bin gespannt ob es jemand hin bekommt eine korrekte Formel und Definition für die zu verarbeitenden Daten zu finden, eventuell müsste mit einer Uhrzeit aus dem Off (24:00) gearbeitet werden? Wie gesagt, viel Spaß
0

Kommentare

PaulMuadDib12.01.1814:15
Bei mir funktioniert einfach ZeitEnde - ZeitAnfang.
0
Hans-Ulrich12.01.1816:45
Hallo,
beweisen ! Wo ist die Formel ?
PaulMuadDib
Bei mir funktioniert einfach ZeitEnde - ZeitAnfang.
0
eyespy3912.01.1817:32
Der Trick ist, die 24h (=1Tag) in eine Zeitdauer zu konvertieren, also Deine Formel abgewandelt wie folgt:
Wenn (Ende<Beginn; KonvertDauer(1)+Ende-Beginn; sonst Ende-Beginn)

Nur der formalen Vergleichbarkeit wegen habe ich die Summanden andersherum geschrieben, ist aber mathematisch Deiner Summe gleich.
+1
Reiner_Gunter12.01.1817:49
probier mal in Zelle C2: B2−A2+(B2<A2)×24

Grüße Reiner
0
lukas12.01.1817:59
so?
0
eyespy3912.01.1818:53
Das Problem des Thread-Erstellers ist ja, dass er das vom Ende der interessierenden Zeit NICHT noch das Tagesdatum eingeben möchte sondern nur die Uhrzeit, weil es sich eigentlich zwangsläufig ergibt.
Sonst bräuchte es ja keine "Wenn"-Abfrage. Wenn nämlich NUR eine Uhrzeit eingegeben wird, wird vom System automatisch das aktuelle Datum (der Bearbeitung der Datei) eingegeben.
Wirklich "sauber" ist sein Vorgehen allerdings nicht. Wenn er die Tabelle mal über Mitternacht bearbeitet, könnte die Beginn-Zeit kurz vor Mitternacht und die Ende-Zeit kurz nach Mitternacht eingegeben werden und dann kommt die Formel durcheinander.
Lukas: Das geht sogar direkt ohne Konvertdauer und ohne Multiplikation mit 24 mit einfach "D3-C3" und wird automatisch als Stunden und Minuten formatiert. Dein Formel rechnet die Differenz erst in Bruchteile eines 24-Stunden-Tages um und macht daraus durch die Multiplikation wieder eine Angabe in Stunden.
Reiner_Gunter: löst das Problem des TE auch nicht wirklich…
0
eyespy3912.01.1819:15
Reiner_Gunter: Ich nehme alles zurück. Funktioniert und ist eleganter als meine Version. Gibt halt die Stunden als Dezimalzahl aus.
0
Reiner_Gunter12.01.1821:03
hallo eyespy,

danke, aber leider ist meine quick & dirty Formel doch nicht ganz sauber.
In Excel wärs Ok, aber Numbers behandelt eine Datums /Zeitdifferenz anders und gibt obwohl es richtig rechnet auf dem Mac eine Fehlerwarnung aus. (boolscher Ausdruck als Zahl verwendet)
Richtig ist: DAUERINSTD(B2−A2)+WENN(A2>B2;24;0).
Dann ist aber noch der Effekt, das man in Numbers eine Zeit nicht ohne Datum eingeben kann. Wenn ich nur die Uhrzeit eingebe, dann wird das aktuelle Datum dazu gerechnet.Kein Problem solange man die beiden Uhrzeiten am selben Tag eingibt. Ist ein Tageswechsel während der Eingabe oder ändert man eine Zeit an einem anderen Tag, dann rechnets ganz falsch.
Also müssten die Uhrzeiten in der Formel noch des Datums beraubt werden oder man splittet die Uhrzeiten in getrennte Stunden und Minuten Spalten und fummelt sich die Dauer so zusammen.
da ist excel dann ausnahmsweise mal doch gnädiger.

Gruß Reiner
+1
McHep
McHep13.01.1810:40
Polarkarnickel
Hallo Leute, vielleicht kann ein Numbers-Freak bei diesem kniffeligen Problem weiterhelfen:

In eine Numberstabelle sollen eingegeben werden:

1. Datum 2. Bezeichnung 3. Uhrzeit Beginn 4. Uhrzeit Ende 5. (kalkuliert) Dauer

Wie muss die Formel in (5. Dauer) aussehen, damit in (4. Uhrzeit Ende) eine Zeit stehen kann, die nach Mitternacht, also am nächsten Tag ist. Es soll eben NICHT explizit das Folgedatum nochmal mit eingegeben werden müssen. Entweder soll Numbers bei für (Uhrzeit Ende) niedrigeren Werten als (Uhrzeit Beginn) die Formel so ändern, dass keine falschen und negativen Dauern heraus kommen

WENN Ende < Beginn; (24-Beginn)+(Ende); sonst (Ende)-(Beginn)
Hier habe ich das Problem dass Numbers keine Uhrzeit von einer Zahl abziehen möchte.

....oder eine Alternative wäre, dass bei für Ende niedrigeren Werten als Beginn automatisch das Folgedatum für Uhrzeit Ende angenommen wird.

Habe dieses selbe Problem vielfach in mehreren Sprachen auf der ganzen Welt in verschiedenen Foren gefunden und nirgends ist jemals jemand auf die Lösung gekommen. Das muss doch möglich sein (In Excel ist es so leicht ;( )

Viel Spaß beim Kniffeln und vielen Dank!

Rainer


PS. also es soll bei Beginn 17:00 und Ende 1:00 auf korrekterweise 8h Dauer heraus kommen. Ohne dass bei Ende das Datum neu eingegeben werden muss. Und bei 17:00 - 23:00 soll er dann natürlich nicht für 23:00 Uhr das Folgedatum annehmen sondern das selbe wie bei Beginn. Bin gespannt ob es jemand hin bekommt eine korrekte Formel und Definition für die zu verarbeitenden Daten zu finden, eventuell müsste mit einer Uhrzeit aus dem Off (24:00) gearbeitet werden? Wie gesagt, viel Spaß

Ich habe mal ein wenig rumgebastelt und bin zu folgendem Ergebnis gekommen:
Die Formel könnte folgendermaßen zusammengebaut werden
WENN(E3<D3;ZEIT(23;59;0)−D3+E3+DAUER(;;;1;;);E3−D3)

Das funktioniert natürlich nur, wenn die Uhrzeit am nächsten Tag nicht hinter der am Vortag liegt.
0
McHep
McHep13.01.1810:49
Hier noch der zugehörige Screenshot


Und nochmal die Formel für copy-paste:
WENN(E3<D3;ZEIT(23;59;0)−D3+E3+DAUER(;;;1;;);E3−D3)
0
eyespy3913.01.1823:49
Zum guten Schluss sollte der TE sich doch entschließen, Datum UND Uhrzeit einzugeben, sowohl für Beginn als auch Ende der Zeit. Das Ganze in jeweils einem Feld.
Numbers ist recht clever und tolerant bei der Eingabe und nimmt z.B. schon mal immer das aktuelle Jahr an. Aus der Eingabe "7.6. 16:30" wird bei entsprechender Formatierung dann "7.6.2018 16:30". Die Eingabe ist dadurch wenigstens nicht ganz so mühsam. Aber die Formel "UhrzeitEnde-UhrzeitBeginn" liefert dann ohne weitere Frickelei das korrekte Ergebnis auch bei Zeiten über Mitternacht hinaus.
Und die Dokumentation ist formal sicherer…
0
PaulMuadDib14.01.1822:47
eyespy39
Das Problem des Thread-Erstellers ist ja, dass er das vom Ende der interessierenden Zeit NICHT noch das Tagesdatum eingeben möchte sondern nur die Uhrzeit, weil es sich eigentlich zwangsläufig ergibt.
In wie fern ergibt sich das? Was ist, wenn die Dauer 48h ist? Mal abgesehen davon, daß ohnehin das Datum immer dabei ist, man sieht es bloß nicht.
0
PaulMuadDib14.01.1822:48
eyespy39
Zum guten Schluss sollte der TE sich doch entschließen, Datum UND Uhrzeit einzugeben, sowohl für Beginn als auch Ende der Zeit. Das Ganze in jeweils einem Feld.
Numbers ist recht clever und tolerant bei der Eingabe und nimmt z.B. schon mal immer das aktuelle Jahr an. Aus der Eingabe "7.6. 16:30" wird bei entsprechender Formatierung dann "7.6.2018 16:30". Die Eingabe ist dadurch wenigstens nicht ganz so mühsam. Aber die Formel "UhrzeitEnde-UhrzeitBeginn" liefert dann ohne weitere Frickelei das korrekte Ergebnis auch bei Zeiten über Mitternacht hinaus.
Und die Dokumentation ist formal sicherer…
Korrekt. Und bei jeder Dauer über 24h geht es ohnehin nicht ohne.
0
Deichkind23.02.1812:11
Der folgende Ansatz berechnet die Zeitdifferenz auch dann korrekt, wenn Start-Uhrzeit und End-Uhrzeit im Abstand von mehreren Tagen eingegeben werden, zum Beispiel vor und nach dem Wochenende.
Er bedient sich des Ausdrucks „STUNDE(Zeit) + MINUTE(Zeit) / 60“.
„STUNDE(Zeit)“ und „MINUTE(Zeit)“ exzerpieren den Stundenwert bzw. Minutenwert des kombinierten Datums- und Uhrzeitwerts. Der Minutenwert wird durch 60 dividiert. Addition liefert den Gesamtstundenwert in der Form einer Dezimalzahl.

Gegeben seien
C2 = StartUhrzeit
D2 = EndUhrzeit
Die Werte müssen in der Form eines kombinierten Datums- und Uhrzeitwerts vorliegen, also in der Form, die man erhält, wenn man eine Uhrzeit in der Form „11:30“ in eine Numbers-Zelle eingibt.
Dann ergibt sich die Stundendauer als Dezimalwert wie folgt:

WENN(STUNDE(C2) + MINUTE(C2) / 60 <= STUNDE(D2) + MINUTE(D2) / 60;
24 + STUNDE(D2) + MINUTE(D2) / 60 - STUNDE(C2) - MINUTE(C2) / 60;
STUNDE(D2) + MINUTE(D2) / 60 - STUNDE(C2) - MINUTE(C2) / 60)

Weiterhin gilt natürlich die Einschränkung, dass die Stundendauer den Wert 24 Stunden nicht überschreitet. Aber davon ging ja der Thread-Ersteller ohnehin aus.

In der WENN-Bedingung lasse ich prüfen, ob StartUhrzeit kleiner als der oder gleich dem Wert EndUhrzeit ist. Damit ergibt sich 24 Stunden, wenn Startzeit und Endzeit gleich sind. Lässt man das Gleichheitszeichen weg, dann ergibt sich 0 Stunden in dem Fall übereinstimmender Zeiten.


Eine Alternative zu dem von eyespy39 vorgestellten Ansatz habe ich auch noch zu bieten:

Dauer = DAUERINSTD(WENN(D2 <= C2; „24h“ + D2 - C2; D2 - C2))

„Dauer“ ergibt sich auch hier als Stunden-Dezimalwert. Lässt man die Konvertierungsfunktion „DAUERINSTD()“ weg, dann ergibt sich „Dauer“ in der Form einer Numbers-Dauer wie in „7h 15m“ zum Beispiel.

Der Ausdruck „24h“ muss genau so mit Anführungszeichen und kleinem h angegeben werden. Das ist ein Wert im Format der „Numbers-Dauer“ (siehe die Hilfe zu Numbers).
Diese Lösung hat aber eben den Nachteil, dass Startzeit und Endzeit im Abstand von höchstens 24 Stunden eingegeben werden müssen. Anderenfalls wird eine Zeitdauer von mehr als 24 Stunden berechnet.

Manche der in diesem Thread vorgestellten Lösungen haben zudem den Nachteil, dass das Ausgabeformat wechselt, je nach dem welcher Teil der WENN-Anweisung ausgeführt wird. Das Ergebnis wechselt dann zwischen Stunden-Dezimalzahl und einer Dauer in der Art „12h 30m“ oder zwischen Stunden-Dezimalzahl und einer Dauer in der Art „12:30“.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.