Hallo Gemeinde.
ich moechte meine EVUes von der Telebim untersuchen, und habe mir da eine Formel gebastelt, die auch funktioniert.
Am ende einer Spalte hab ich in dann in „M“ das drinn stehn
WENN(I7="WOHNORT";WERT(G7);"")
(gib den Wert von G7, wenn in I7 das Wort „WOHNORT“ erscheint.
Damit kann ich dann alle Gesprächszeiten im Ortsbereich herausfinden.
Das geht auch so.
Nur wenn ich nun noch auf die Startzeit vergleichen mag, dachte ich mir folgendes:
(wie oben, aber nur, wenn F7 ( Startzeit in HH:MM:SS )groesser als „18:00:00“ ist)
Nur irgendwie mag Excel das garnicht. Ich habe keine Fehlermeldung, sondern
das was ich eingegeben habe in der Zelle als Klartext drinn stehn.
Was ist da Faul bitte? Und wie kann man das loesen?
Danke schon mal.
also bei mir klappt die Formel wunderbar. Vielleicht lieg ich damit falsch, aber kanns sein, dass du einfach ein „=“ vorher vergessen hast? Prüf nochmal, passsiert mir auch manchmal. Ansonsten wüsst ich nich woran es liegen könnte.
Excel verarbeitet Uhrzeiten intern als Dezimalbrüche (Bruchteile eines Tages).
„00:00:00“ entpricht 0.0
„23:59:59“ entspricht 0,999988425925926
„23:59:59,999…“ entspricht 0,99999999…
Um eine feste Zeit in Excel mit einer anderen Zeit zu vergleichen, muss man die feste Zeit in einen Dezimalbruch umwandeln. Das kann man von mehreren Funktionen erledigen lassen. Die vier folgenden Formeln liefern alle die interne Zeit „18 Uhr“, also die Zahl 0,75.
ZEITWERT(„18:00“)
ZEITWERT(„18:00:00“)
ZEIT(18; 0; 0)
ZEIT(36/2; 0; 0)
Wenn in F7 z. B. die Uhrzeit 6:00 (entspricht der Zahl 0,25) steht, wird in der fraglichen Formel
WENN(UND(F7>„18:00:00“;I7=„WOHNORT“);WERT(L7);"")
die Zahl 0,25 mit der Zeichenkette „18:00:00“ verglichen. Das geht schief.
In der geänderten Formel
WENN(UND(F7>ZEITWERT(„18:00“);I7=„WOHNORT“);L7;"")
wird 0,25 mit 0,75 verglichen - und das klappt sicher.
Ähnlich können in VBA feste Zeiten in Dezimalbrüche umgewandelt werden. Die vier folgenden Formeln liefern alle die interne Zeit „18 Uhr“, also die Zahl 0,75.
TimeValue(„18:00“)
TimeValue(„18:00:00“)
TimeSerial(18, 0, 0)
CDate(„18:00“)