- Registriert
- Feb. 2012
- Beiträge
- 2.252
Hallo,
ich bin dieser Tage über eine Kuriosität in Excel 2010 gestolpert. Und zwar vergleiche ich Daten, ob eines später ist als das andere. Und es ist unerheblich, ob man den Datentyp Date, Double oder Decimal vergleicht.
Dieser Vergleich liefert ein falsches Ergebnis (in den geschachtelten Funktionsaufrufen wird auf workDateFrom 1 Stunde addiert, danach die Minuten und Sekunden abgezogen um auf die nächste voll Stunde zu kommen):
Wenn man es direkt schreibt, ist das Ergebnis des Vergleichs korrekt:
Habe das Problem mit DateDiff gelöst, mich würde nur mal interessieren, was beim ersten Vergleich falsch ist (oder mir nicht bewusst ist). Kann jemand das Rätsel lösen? Eventuell auch mit einer anderen Excel Version als 2010 probieren?
Danke und Gruß
Spike S.
ich bin dieser Tage über eine Kuriosität in Excel 2010 gestolpert. Und zwar vergleiche ich Daten, ob eines später ist als das andere. Und es ist unerheblich, ob man den Datentyp Date, Double oder Decimal vergleicht.
Dieser Vergleich liefert ein falsches Ergebnis (in den geschachtelten Funktionsaufrufen wird auf workDateFrom 1 Stunde addiert, danach die Minuten und Sekunden abgezogen um auf die nächste voll Stunde zu kommen):
Code:
Public Sub test()
workDateFrom = CDate("02.02.2016 13:14:15")
dateTo = CDate("02.02.2016 14:00:00")
Debug.Print CDbl(dateTo) & " > " & CDbl(DateAdd("n", Minute(workDateFrom) * -1, DateAdd("s", Second(workDateFrom) * -1, DateAdd("h", 1, workDateFrom)))) & " ="
Debug.Print CDbl(dateTo) > CDbl(DateAdd("n", Minute(workDateFrom) * -1, DateAdd("s", Second(workDateFrom) * -1, DateAdd("h", 1, workDateFrom))))
End Sub
'Ausgabe:
'42402,5833333333 > 42402,5833333333 =
'Wahr
Wenn man es direkt schreibt, ist das Ergebnis des Vergleichs korrekt:
Code:
Public Sub test2()
workDateFrom = CDate("02.02.2016 14:00:00")
dateTo = CDate("02.02.2016 14:00:00")
Debug.Print CDbl(dateTo) & " > " & CDbl(workDateFrom) & " ="
Debug.Print CDbl(dateTo) > CDbl(workDateFrom)
End Sub
'Ausgabe:
'42402,5833333333 > 42402,5833333333 =
'Falsch
Habe das Problem mit DateDiff gelöst, mich würde nur mal interessieren, was beim ersten Vergleich falsch ist (oder mir nicht bewusst ist). Kann jemand das Rätsel lösen? Eventuell auch mit einer anderen Excel Version als 2010 probieren?
Danke und Gruß
Spike S.