Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
148to152
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
148to152
148to152
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem beim Rechnen mit Zeiten

Problem beim Rechnen mit Zeiten
14.08.2002 15:49:02
Ulrich
Hallo,

ich habe ein Problem mit dem Rechnen mit Zeiten.
Ich muß für Statistiken auch mit negativen Zeiten arbeiten.
Dazu habe ich alle "normal" eingegebenen Zeiten in dezimale umgerechnet ( / 24 ).
Mit einem VB Programm errechner ich anschließend wieder korrekt angezeigte Zeiten. Vorteil: Diese können auch negativ sein.

Problem:
Das Programm rechnet bei bestimmten Zeiten (immer wenn das Ergebnis ca. 1:00h ist) falsch. Ich vermute Rundungsdiferenzen als Fehler, komme der Lösung aber nicht näher.

Beispiel:
Start: 07:00
Ende: 08:00
Differenz: 01:00
als Zahl dargestellt: 0,04166666666666660
Zahl / 24: 0,00173611111111111
richtiges Ergebnis: 01:00
Ergebnis meiner Func.: 00:00

Dies passiert aber wie gesagt nicht bei alle Zeiten.

Hier der Code:
Function DezZeit(StdZelle As Range)
StdDec = CDec(StdZelle.Value)
Stunden = Fix(StdDec * 24 * 24)
If (StdDec * 24) <> 0 Then
If (StdDec * 24) < 0 Then
DezZeit = "-" & Str(Abs(Stunden)) & ":" & Format$((StdDec * 24) * -1, "nn")
Else
DezZeit = Str(Stunden) & ":" & Format$((StdDec * 24), "nn")
End If
Else
DezZeit = ""
End If
End Function

Sieht jemand den Fehler ?
Viele GRüße
Ulrich





2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Problem beim Rechnen mit Zeiten
15.08.2002 00:59:54
Charlie
Hallo, Ulrich!

Ja, die Abweichung liegt offensichtlich an einem Rundungsproblem. Dass sich Excel und VBA bei Berechnungen über das Ergebnis nicht immer einig sind, ist bekannt.

Wenn die Differenz genau 1 Stunde beträgt, rechnet Excel mit 1, VBA aber mit 0,9999...und noch viele 9er dazu. Verursacht wird das Problem nun dadurch, dass Du die Stundenzahl mit
Fix(StdDec*24*24) berechnest und bei 0,999...usw. ergibt Fix nun eben 0.

Du kannst Dein Problem aber ganz einfach lösen, indem Du statt Fix(StdDec*24*24) Round(StdDec*24*24, 0) verwendest.

Altvernative1:

Alternative 2 (Formel):
=ABRUNDEN((E2-E1)*24;0)*100+RUNDEN(((E2-E1)*24-ABRUNDEN((E2-E1)*24;0))*60;0)
Die Formelzelle muss mit dem benutzerdefinierten Zahlenformat ?0":"00 belegt sein. Es werden mit der Formel die Stunden in 100er umgerechnet und die Minuten dazugezählt. Die Formatierung bewirkt eine Anzeige als Uhrzeit. Wenn Du weitere Berechnungen nach dem gleichen Schema machst, kannst Du auch mit "negativen" Uhrzeiten rechnen.

Viel Erfolg,
Charlie

Anzeige
Re: Problem beim Rechnen mit Zeiten
15.08.2002 07:42:47
Ulrich
Vielen Dank für Deine Mühe !
Es funktioniert gut !

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige