Excel - Stunden / Minuten aus mehr als 24 Stunden extrahieren

943
Hanan Cohen

Der angezeigte Wert in A1 beträgt 177: 53: 00

Das benutzerdefinierte Format ist [h]: mm: ss

Der Wert, wenn ich auf A1 klicke, lautet 1900-01-07 9:53:00 AM

Ich muss die Stunden (177) aus der Zelle in eine andere Zelle extrahieren

Konnte keine Formel dafür finden.

Vielen Dank!

0

4 Antworten auf die Frage

1
Aganju

Verwenden Sie einfach = INT (A1 * 24).

Datum und Uhrzeit werden in Excel intern in Tagen gespeichert . Multiplizieren mit 24 ergibt Stunden und INT schaltet die Minuten und Sekunden ab.

1
robinCTS

Wie von Akina richtig angegeben, INT()funktioniert die Funktion aufgrund der Ungenauigkeiten, die die von Excel verwendeten Fließkommazahlen für einen seriellen Datumsspeicherwert haben, nicht korrekt, um die Stunden nach der Multiplikation mit zu extrahieren 24.

Jedoch kann die Funktion verwendet werden, um die Anzahl der Tage zu extrahieren und mit der kombinierten HOUR()Funktion, die nicht korrekt die Anzahl der Stunden aus dem Bruchteil des seriellen Datumswertes extrahiert, erhalten wir die folgende Formel:

=HOUR(A1)+INT(A1)*24 

Wie von Aganju erläutert, repräsentiert der ganzzahlige Teil eines seriellen Datumswerts Tage. Wenn man ihn also multipliziert, 24erhält man die Anzahl der Stunden des seriellen Datumswertes aufgrund der ganzen Tage. Addiert man die Stundenzahl aufgrund des Teiltages, so erhält man die Gesamtstundenzahl.

@ fixer1234 * Ich verstehe nicht, warum Aganjus einfache Lösung ungenau wäre. * Siehe meinen ersten Kommentar zu meiner Antwort. Akina vor 6 Jahren 0
@Akina und robinCTS, die Zeitfunktionen und die Zeitformatierung in Sekunden für Ganzzahlwerte. Wenn Sie Zeitberechnungen durchführen und die einzelnen Zeitkomponenten extrahieren möchten, führt diese Rundung zur falschen Antwort. Im wirklichen Leben gibt es keine weitere Stunde, bis 3600 Sekunden vergangen sind. Bis dahin haben Sie Minuten, Sekunden, Millisekunden usw., die weniger als eine Stunde betragen. Die Excel-Funktionen runden die nächste Stunde ab, wenn Sie weniger als eine halbe Sekunde vor der nächsten Stunde sind. Das ist die falsche Antwort. fixer1234 vor 6 Jahren 0
Übrigens, die Zeitfunktionen können nicht genauer als die Fließkommawerte sein, da sie dies zur Berechnung verwenden. Die Ungenauigkeit des Fließkommas ist 100.000 Mal genauer als die Zeitfunktionen, die einen Fehler von 1/2 Sekunde verursachen. fixer1234 vor 6 Jahren 0
@ fixer1234 Weißt du, als ich geschrieben habe, dass das Problem mit der Ungenauigkeit des Fließkomma-Punkts besagt ist, hat mich etwas im Hinterkopf gequält. Ich wischte es beiseite, machte mir aber eine mentale Notiz, um es später weiter zu untersuchen (-‸ლ). Sie haben absolut recht - es ist mindestens fünf Größenordnungen von der möglichen Ursache entfernt! Vielen Dank, dass Sie mich auf die ½ Sekunde-Ausgabe aufmerksam gemacht haben. Ich wusste es nicht. robinCTS vor 6 Jahren 0
0
Akina
=LEFT(TEXT(A1,"[h]:mm:ss"),FIND(":",TEXT(A1,"[h]:mm:ss"))-1) 
Kannst du das oben erklären? :) bertieb vor 6 Jahren 0
Das ist ein großer Umweg - verwenden Sie einfach `= INT (A1 * 24)`. Speichert Datums- und Zeitangaben intern in Tagen. Multiplizieren mit 24 ergibt Stunden und INT entfernt die Minuten und Sekunden. Aganju vor 6 Jahren 3
@Aganju Nein, Ihre Lösung kann zu falschen Ergebnissen führen. Überprüfen Sie zum Beispiel beide Formeln mit 'A1 = 1.041661'. Akina vor 6 Jahren 1
@Akina, deine Formel hat einen #Value-Fehler erzeugt, überprüfe es einfach! Rajesh S vor 6 Jahren 0
@Aganju, Ja, deine Formel erhält 177, poste sie als Antwort! Rajesh S vor 6 Jahren 0
@RajeshS Welchen Typ und Wert legen Sie in die A1-Zelle? prüfen Sie**. Und welches Gebiet verwenden Sie? Überprüfen Sie die Datenformat-Zeichenfolge, es soll lokal sein ... Akina vor 6 Jahren 0
Genau wie von OP gezeigt. Rajesh S vor 6 Jahren 0
@RajeshS Diese Formel liefert auf meiner Workstation ein korrektes Ergebnis, nachdem der Datenformat-String in den nationalen umgewandelt wurde. Das Gleiche tun. Akina vor 6 Jahren 0
@RajeshS Die Formel wurde in GoogleSpreadsheet geprüft. Siehe https://docs.google.com/spreadsheets/d/1nyxobV_6GlYfw_UG18ZvR5i89bk1fE_X-E2BOJ9NyqY/edit?usp=sharing - das Ergebnis ist korrekt. Überprüfe dich. Akina vor 6 Jahren 0
@RajeshS, ich habe die Formel auch auf LO Calc getestet und es funktioniert. Wenn Sie eine Fehlermeldung erhalten, vermute ich, dass Ihr Wert als Text behandelt wird (möglicherweise ein Gebietsschema-Problem). fixer1234 vor 6 Jahren 0
@ fixer1234, Es ist möglich, dass der von mir eingegebene Wert genau so ist, wie von OP angezeigt. Das Format ist "Datum anpassen", um sowohl Datum als auch Uhrzeit zu berücksichtigen. Meine regionale Einstellung für die Region ist "US". Das Tastaturformat ist auch "US". Das Standarddatum ist "MM / TT / JJJJ" & (UTC + 05: 30). Chennai, Kolkata, Mumbai, New Delh ist Zeitzone. Rajesh S vor 6 Jahren 0
@RajeshS * Der von mir eingegebene Wert entspricht genau dem von OP. * Geben Sie den Wert '7.4118' ein und formatieren Sie ihn als abgelaufene Zeit (`[h]: mm: ss`). Akina vor 6 Jahren 0
@RajeshS, alles muss in der Handgelenksaktion sein. :-) Seltsam, dass es auf Ihrem Computer nicht funktioniert. Akina, ich habe dein A1 = 1.041661 Beispiel (Aganju Challenge) ausprobiert. Interessant. Für mich sieht es so aus, als wären die Excel-Funktionen und Formatierungsalgorithmen fehlerhaft. Sie sind aufgerundet, wenn der Unterschied klein ist. Wenn das Ziel darin besteht, Zeiteinheiten zu extrahieren, ergibt die Rundung die falsche Antwort. fixer1234 vor 6 Jahren 0
@ fixer1234 * Es sieht so aus, als wären die Excel-Funktionen und Formatierungsalgorithmen fehlerhaft * Nein. Die Formel fordert den Wert als Zahl auf - und Excel verarbeitet ihn als Zahl mit ungenauem Float-Wert. Aus diesem Grund verwende ich Funktionen, die den Anfangswert zeitgenau verarbeiten - mit Genauigkeit. Implizites Casting ist böse. Akina vor 6 Jahren 0
Ihre Formel fasst zusammen und liefert die falsche Antwort für 1.041661. Das Ergebnis sollte 24 Stunden + Wechsel betragen. Es wird nicht 25 Stunden, bis ein Zeitwert von 1,0416666667 erreicht wird. Dies liegt nicht an der Ungenauigkeit des Fließkommas, weil der Unterschied viel größer ist. Dies liegt daran, dass Excel auf die nächste Sekunde gerundet wird. Sie können sich nicht auf diese Zeitfunktionen oder die Zeitformatierung verlassen, wenn die Zeitberechnung genau sein muss. fixer1234 vor 6 Jahren 0
0
Hanan Cohen

Nach einiger Zeit wieder zurück. Nach der Antwort von @Akina lautet meine letzte Formel

= INT (LINKS (TEXT (A1, "[h]: mm: ss"), FIND (":", TEXT (A1, "[h]: mm: ss")) - 1)) + (INT (MID (TEXT (A1, "[h]: mm: ss"), FIND (":", TEXT (A1, "[h]: mm: ss")) + 1,2)) / 60)

1900-01-07 9:53:00 Uhr

Welcher wird als angezeigt

177: 53: 00

wird als zurückgegeben

177,88

Dies ist ein sehr komplizierter Weg, um zur falschen Antwort zu gelangen (es wird falsch sein, wenn Sie nahe an der nächsten Stunde sind, aber nicht ganz dort sind). Siehe die Diskussion in den Kommentaren. Die Zeitfunktionen und die Zeitformatierung werden aufgerundet, was zu einer falschen Zeit führt, wenn sie einen Sekundenbruchteil erreicht. Wenn Sie möchten, dass die Zeit genau ist, benötigen Sie eine Variante der Antwort von Aganju (wenn Sie Teilstunden benötigen, müssen Sie die Formel anpassen). fixer1234 vor 6 Jahren 0