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 B
Zeiten enthalten, die am folgenden Tag auftreten?
Aktuelles Arbeitsblatt:
microsoft-excel
worksheet-function
Saphiraz
quelle
quelle
Antworten:
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 inGeneral
Format und Typ=NOW()
. Zum Zeitpunkt des Tippens bekomme ich das21/08/2018 11:25
.Wenn Sie
=NOW()
in ZelleA1
und=NOW()+TIME(23,0,0)
in Zelle setzenB1
, wenn Sie dann=B1-A1
in Zelle setzenC1
und die Zelle formatieren, erhaltenTime
Sie23: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 ZelleB1
und Zelle berechnet,A1
unabhä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
B1
nach Mitternacht Zeit in der Zelle ? Wenn ja, wird der nächste Teil ausgeführtMOD(B1-A1,1)
Der
MOD(number,divisor)
Rest wird zurückgegeben, nachdem eine Zahl durch einen Teiler geteilt wurde. ZelleB1
minus ZelleA1
ist ein negativer Wert als die Zeit , in der ZelleB1
nach Mitternacht ist und zeichnen sich nicht wie negative Zeitwerte in den meisten Fällen damit es geben wird ,#####
ohne dieMOD()
. DasMOD()
regelt das.Eine Alternative zur
MOD()
Formel wäre zu verwendenTIME(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 vonIF()
where if time in cellB1
ist , ist nicht nach Mitternacht.quelle
=IF(B1<A1,MOD(B1-A1,1),B1-A1)
funktioniert, ob es einen Datenstempel gibt oder nicht.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.Ctrl + Shift + ;
ZelleA1
handelt und bei mir funktioniert.Möglicherweise ist die eleganteste und einfachste Lösung die in dieser Antwort von fixer1234 in diesem Kommentar erwähnte :
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.
B1 >= A1
dannMOD(B1-A1,1)
→B1-A1
wie erwartetoder
B1 < A1
dannMOD(B1-A1,1)
gleichbedeutend ist mit1-(A1-B1)
(seitMOD(-n,m)=m-MOD(n,m)
), was die korrekte "Komplement" -Dauer ergibtEine alternative Lösung (Sie beurteilen, ob es einfacher / eleganter ist ;-)) ist:
Erläuterung:
Dies funktioniert, weil
TRUE
Werte implizit zu a1
undFALSE
Werte zu a gezwungen werden0
, wenn sie in arithmetischen Operationen verwendet werden. Somit:B1 >= A1
dann(B1<A1)
→0
und die Formel wirdB1-A1
oder
B1 < A1
dann(B1<A1)
→1
und 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.
quelle
=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.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
PS.
Diese Kombination sperrt nichts. Der Zelleninhalt wird vollständig durch den aktuellen Zeitwert ersetzt.
quelle
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)
...Um den Unterschied
Minutes
zwischen zwei zu ermitteln24Hrs DateTime Stamps
, können Sie eine der folgenden Methoden verwenden:Oder
Oder
Beachten Sie, dass die Formelzelle
General
Format haben muss .quelle
CTRL+SHIFT+;
are2:03 PM
&2:11 PM
&=INT((M8-L8)*1440)&" Mnts"
got answer erfasst8 Mnts
.=ROUNDUP((M8-L8)*1440,2)&" Mnts"
auch verwenden.A2
nach Mitternacht liegt, funktionieren die Formeln in Ihrer Antwort nicht, da @Akina darauf hinweist