Formel zur Berechnung der Dauer für Zeiten, die zwei Tage umfassen können

0

Spalte A: Startzeit im 24-Stunden-Format (mit der Formel =NOW()und gesperrt mit Ctrl+ SHIFT+ ;)
Spalte B: Endzeit im 24-Stunden-Format (wie für die Spalte eingegeben A)
Spalte C: Dauer, formatiert als [mm], mit der Formel=B1-A1

Wie berechne ich die Dauer, wenn die Daten in der Spalte BZeiten enthalten, die am folgenden Tag auftreten?


Aktuelles Arbeitsblatt:

Screenshot der aktuellen Arbeit

Saphiraz
quelle
Sie müssen Datums- und Zeitformate in Excel studieren. Die Formel für Spalte C lautet wörtlich = B1-A1. Damit dies jedoch ordnungsgemäß funktioniert, müssen die vorhergehenden Zellen gültige Datums- / Uhrzeitformate haben. Es geht auch gut um Mitternacht.
Tyson
Die Formel in Spalte C ist in der Tat = b1-a1 und die Formatierung ist in [mm], ich habe vergessen zu erwähnen, dass ich die Funktion "STRG + UMSCHALT +;" Um die Zeit zu sperren, ist die Dauer negativ (-) und wurde am nächsten Tag nicht gezählt.
Saphiraz
Siehe Lösung superuser.com/a/940439/364367
fixer1234

Antworten:

2

Ctrl+ Shift+ ;Stellt nur die aktuelle Zeit in die Zelle ohne Datumsstempel, und als @Akina in seiner Antwort weist darauf hin, es sperrt nichts.

NOW()Fügt der Zelle einen Datumsstempel sowie die Uhrzeit hinzu. Klicken Sie dazu auf eine unformatierte leere Zelle oder eine beliebige Zelle in GeneralFormat und Typ =NOW(). Zum Zeitpunkt des Tippens bekomme ich das 21/08/2018 11:25.

Wenn Sie =NOW()in Zelle A1und =NOW()+TIME(23,0,0)in Zelle setzen B1, wenn Sie dann =B1-A1in Zelle setzen C1und die Zelle formatieren, erhalten TimeSie 23:00:00.

Wenn Sie Zeiten ohne Datumsstempel eingeben, müssen Sie mithilfe einer IF()Formel ermitteln, ob die zweite Zeit niedriger als die erste ist (Zeitrahmen nach Mitternacht). Im Folgenden wird der Zeitunterschied zwischen der Zeit in Zelle B1und Zelle berechnet, A1unabhängig davon , ob die Endzeit nach Mitternacht liegt oder nicht. Es funktioniert auch mit oder ohne Datenstempel, da die Datenstempel ignoriert werden.

=IF(B1<A1,MOD(B1-A1,1),B1-A1)

Erklärung der Formel

=IF(B1<A1,...)

ist B1nach Mitternacht Zeit in der Zelle ? Wenn ja, wird der nächste Teil ausgeführt

MOD(B1-A1,1)

Der MOD(number,divisor)Rest wird zurückgegeben, nachdem eine Zahl durch einen Teiler geteilt wurde. Zelle B1minus Zelle A1ist ein negativer Wert als die Zeit , in der Zelle B1nach Mitternacht ist und zeichnen sich nicht wie negative Zeitwerte in den meisten Fällen damit es geben wird , #####ohne die MOD(). Das MOD()regelt das.

Eine Alternative zur MOD()Formel wäre zu verwenden

TIME(23,59,59)-TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(0,0,1)+B1

Welches ist 23:59:59 minus time in cell A1 plus 1 second plus time in cell B1.

Das letzte Bit, das ,B1-A1)der letzte Teil von IF()where if time in cell B1ist , ist nicht nach Mitternacht.

Chris Rogers
quelle
Diese Formel kann (wie es scheint - aber es ist schwierig zu überprüfen) ein falsches Ergebnis liefern, wenn einer der Quellwerte "fest" ist (und keinen Datumsteil enthält, sondern nur die Zeit), während der andere nicht ist (und beide Datumsangaben enthält) und Zeitteile).
Akina
Ich verstehe nicht, was Sie @Akina sagen. Ich habe gerade geprüft und tatsächlich =IF(B1<A1,MOD(B1-A1,1),B1-A1)funktioniert, ob es einen Datenstempel gibt oder nicht.
Chris Rogers
Geben Sie die aktuelle Uhrzeit (durch Drücken von Ctrl-Alt-;) in die A1-Zelle ein. Fügen Sie die aktuelle Datumszeit (nach Formel =NOW()) in die Zelle B1 ein. Überprüfen Sie das Ergebnis.
Akina
Ich habe getan, was Sie vorgeschlagen haben, obwohl es sich um eine Ctrl + Shift + ;Zelle A1handelt und bei mir funktioniert.
Chris Rogers
2
Sie sollten keinen IF-Test benötigen. Das MOD sollte mit dem Unterschied umgehen, unabhängig davon, ob Mitternacht verstrichen ist.
Fixer1234
2

Möglicherweise ist die eleganteste und einfachste Lösung die in dieser Antwort von fixer1234 in diesem Kommentar erwähnte :

=MOD(B1-A1,1)

Beachten Sie, dass davon ausgegangen wird, dass beide Werte nur Zeitwerte sind (oder dass der Datumsteil abgeschnitten werden soll), dh jeweils weniger als 1 und die Dauer weniger als 24 Stunden beträgt.

Erläuterung:

Dies funktioniert, weil für einen seriellen Datums- / Uhrzeitwert eine 1 24 Stunden entspricht und ein Zeitwert ein Datums- / Uhrzeitwert kleiner als 1 ist.

  • Wenn B1 >= A1dann MOD(B1-A1,1)B1-A1wie erwartet
    oder
  • Wenn B1 < A1dann MOD(B1-A1,1)gleichbedeutend ist mit 1-(A1-B1)(seit MOD(-n,m)=m-MOD(n,m)), was die korrekte "Komplement" -Dauer ergibt


Eine alternative Lösung (Sie beurteilen, ob es einfacher / eleganter ist ;-)) ist:

=(B1<A1)+B1-A1

Erläuterung:

Dies funktioniert, weil TRUEWerte implizit zu a 1und FALSEWerte zu a gezwungen werden 0, wenn sie in arithmetischen Operationen verwendet werden. Somit:

  • Wenn B1 >= A1dann (B1<A1)0und die Formel wird B1-A1
    oder
  • Wenn B1 < A1dann (B1<A1)1und die Formel ist äquivalent zu1-(A1-B1)

Beachten Sie, dass diese Formel auch dann korrekt funktioniert, wenn beide Werte Datumsangaben sind und mehr als 24 Stunden auseinander liegen! Dies ist bei der ersten Formel nicht der Fall, daher ist diese zweite Formel nützlicher / allgemeiner.

robinCTS
quelle
Ich bin mir nicht sicher, was dein letzter Absatz sagt. Wenn wir davon ausgehen, dass die Dauer <24 Stunden ist, dh dass (Startzeit) ≤ (Endzeit) <(Startzeit + 24 Stunden), und Sie sich keine Sorgen darüber machen, dass der Fall, in dem beide Zellen wahr (voll) sind, korrekt behandelt wird datetime =MOD(B1-A1, 1)scheint dann ziemlich gut zu funktionieren. Und =IF(AND(A2>=1,B2>=A2), B2-A2, IF(AND(A2>=0,A2<1,B2>=0,B2<1), MOD(B2-A2,1), "Error"))scheint alle Fälle gut zu handhaben.
Scott
@Scott Ich habe nur darauf gewartet, dass jemand das aufgreift ;-) Ich bezog mich speziell auf diesen Kommentar von Akina und den folgenden Thread. Nachdem ich es geschrieben hatte, stellte ich fest, dass der Absatz technisch etwas ungenau ist. Was ich hinzufügen musste, war "wenn keine anderen Annahmen getroffen wurden" und "immer den richtigen Unterschied erzeugen". Sie haben Recht, wenn Sie einfach einen vollständigen Datums- / Uhrzeitwert abschneiden möchten, funktioniert die MOD-Formel. (Außerdem behandelt die Fehlerformel den Fall auch, indem sie ihn abfängt.) Ich werde ihn löschen, da er nicht korrekt oder ungenau ist.
robinCTS
-2

Wie berechne ich die Dauer, wenn die Daten in Spalte B den Zeitpunkt enthalten, der auf den nächsten Tag fällt?

=1 + B1 - A1

Als Uhrzeit formatiert wird das richtige Ergebnis angezeigt. Wenn B1> A1, enthält das Resilt natürlich einen Teil des Datums ungleich Null, der jedoch aufgrund des Zellenformats nicht angezeigt wird.

Wenn Sie diesen Zeitwert für einige Zeitberechnungen verwenden möchten, verwenden Sie eine komplexere Formel

=B1-A1-INT(B1-A1)

PS.

und sperren mit STRG + UMSCHALT +;

Diese Kombination sperrt nichts. Der Zelleninhalt wird vollständig durch den aktuellen Zeitwert ersetzt.

Akina
quelle
Nun ja, es ändert sich nur in den Zeitwert, aber es verhindert, dass die Zeit automatisch geändert wird, da ich eine flüchtige Formel verwende = now (). Gibt es eine Möglichkeit, Zellendaten zu sperren?
Saphiraz
@ Saphiraz Ich verstehe dich nicht. Wenn eine Quellzelle NOW () enthält und ihr Zeitpunkt nicht festgelegt ist, spielt das Ergebnis in С (wie ich verstehe) keine Rolle. Wenn beide Quellzellen durch Ctrl-Shift-;die Formel festgelegt sind, erhalten Sie das gewünschte Ergebnis. PS. Suchen Sie nach =B1-INT(B1)-A1+INT(A1)-INT(B1-A1)...
Akina
Bitte überprüfen Sie die Beispieldaten.
Saphiraz
1
Bitte überprüfen Sie die Beispieldaten. Was kann ich auf einem Screenshot überprüfen? Fügen Sie Ihrer Frage formatierte Beispieldaten (mit fester Länge) (die einfach in eine Excel-Tabelle eingefügt werden können) mit dem Referenzergebnis hinzu (geben Sie bei Bedarf den Quellbereich an). Geben Sie für Datums- und Uhrzeitangaben Zahlen ein und geben Sie das Spaltenformat an.
Akina
-2

Um den Unterschied Minuteszwischen zwei zu ermitteln 24Hrs DateTime Stamps, können Sie eine der folgenden Methoden verwenden:

=Int((A2-A1)*24*60)

Oder

=int((A2-A1)*1440)

Oder

=ROUNDUP((A2-A1)*1440,2)

Beachten Sie, dass die Formelzelle GeneralFormat haben muss .

Rajesh S
quelle
1
Nach dem Sperren mit STRG + UMSCHALT +; Ein Wert enthält keinen Datumsteil. Bei Überschreitung der Mitternacht ist das Ergebnis negativ.
Akina
Ich habe zwei Werte mit CTRL+SHIFT+;are 2:03 PM& 2:11 PM& =INT((M8-L8)*1440)&" Mnts"got answer erfasst 8 Mnts.
Rajesh S
,, Fortsetzung oder du darfst =ROUNDUP((M8-L8)*1440,2)&" Mnts"auch verwenden.
Rajesh S
Erhaltene Antwort 8 Mnts Quellwerte tauschen - wird das Ergebnis 1432 sein?
Akina
Wenn die Zeit in der Zelle A2nach Mitternacht liegt, funktionieren die Formeln in Ihrer Antwort nicht, da @Akina darauf hinweist
Chris Rogers