Zeit-Eingabe ohne Doppelpunkt

Zeiten stets vierstellig und ohne Doppelpunkt (oder anderen Trenner) eingeben

Es gibt den schö­nen und gewiss auch wahren älteren Spruch: „Der Men­sch ist ein Gewohn­heit­sti­er”. 😉 Damit ist gemeint, dass wir alte Gewohn­heit­en schw­er able­gen kön­nen und uns einge­fahrene Wege vielfach lieber sind als (mehr oder weniger) neue Pfade zu beschre­it­en.

So ist es in manchen Pro­gram­men üblich, Zeit­en vier­stel­lig und (natür­lich) ohne Dop­pelpunkt oder andere Trennze­ichen einzugeben. Die User geben dann 0837 ein und das Pro­gramm „weiß”, dass das 08:37 ist. Excel ist ohne Hil­fe nicht in der Lage, der­ar­tige Eingaben kor­rekt in eine Zeit umzuwan­deln oder solch eine Eingabe auch nur wie eine Zeit ausse­hen zu lassen, also mit Dop­pelpunkt. Sie wer­den hier ver­schiedene Szenar­ien ken­nen ler­nen, die Ihnen eine Anre­gung bieten sollen. Auch wenn diese Auswahl nur einen Teil der Möglichkeit­en darstellt.

▲ nach oben …

Ausgabe in anderem Feld

Eingabe als Text

Sin­nvoller­weise wer­den die Felder, wo der­ar­tige Zeit­eingaben eingegeben wer­den sollen, im Vor­wege als Text for­matiert (Zahlen­for­mat). Andern­falls muss zwecks For­matierung als Text ein Aus­las­sungsze­ichen ' (Großschrei­bung #) vor der Zahl eingegeben werden.Die Zeit­eingabe sei ‑wie in allen hier abge­han­del­ten Beispie­len- in Zelle A1, die Formeln ste­hen dann beispiel­sweise in B1. Und wie bere­its erwäh­nt, ist die Zif­fer­n­folge (vor­erst) immer vier­stel­lig. Und da bieten sich fol­gende Möglichkeit­en an:

=LINKS(A1; 2) & ":" & RECHTS(A1; 2)

 Zugegeben, das ist die ein­fach­ste und in den meis­ten Fällen auch sin­nvoll­ste Lösung. Aber: Das Formel­ergeb­nis ist Text, keine Zeit. Sie erken­nen das recht gut daran, dass das Ergeb­nis links­bündig in der Zelle ste­ht. Und damit kann Excel dann auch nicht rech­nen, zumin­d­est nicht „offiziell”. In manchen Fällen gelingt es Excel gewiss, diesen Text in einen zu berech­nen­den Wert umzuwan­deln, aber eben nicht immer.

Eben­falls für die Tex­taus­gabe habe ich im Inter­net eine wirk­lich schöne Formel gefun­den:

=ERSETZEN(A1;  3;  0;  ":")

Das dritte Zeichen mit der Länge Null wird durch einen Dop­pelpunkt erset­zt, was einem ein­fü­gen dieses Zeichens entspricht. Für Enthu­si­as­ten eine wirk­lich schöne Lösung, für Nor­maluser gewiss nicht auf den ersten Blick durch­schaubar. Und aus diesem Grund würde ich sie nicht ein­set­zen, denn nach eini­gen Monat­en weiß selb­st ich wahrschein­lich nicht mehr, wie diese Formel zus­tande gekom­men ist.

Möcht­en Sie einen kor­rek­ten Wert (sprich eine „echte” Uhrzeit bzw. Zahl) als Rück­gabe bekom­men, dann bieten sich ad hoc zwei Möglichkeit­en an:

=ZEIT(LINKS(A1;2);RECHTS(A1;2);)

gibt einen echte Zeit zurück, typ­is­cher­weise im amerikanis­chen AM/PM, also 12-Stun­den-For­mat. Das kön­nen Sie natür­lich Ihrem Wun­sch entsprechend for­matieren. Übri­gens: Dem let­zten Semi­kolon fol­gt nichts; Excel erwartet drei Argu­mente, darum muss das Semi­kolon dort ste­hen. Der Optik wegen kön­nen Sie daran anschließend dur­chaus auch eine Null (für 0 Sekun­den) eingeben.

Alter­na­tiv lässt sich auch die zuerst ver­wen­dete Formel mit ein­er kleinen Ergänzung ein­set­zen:

=ZEITWERT(LINKS(A1; 2) & ":" & RECHTS(A1; 2))

Hier wird Ihnen eine Zahl zwis­chen null und eins zurück gegeben, welche das numerische Pen­dant der Uhrzeit ist. Hier ist es mehr als hil­fre­ich, das Zahlen­for­mat auf beispiel­sweise hh:mm umzustellen. Hin­weis: Das „mm” muss in Klein­schrift erfol­gen, da „MM” (Großschrift) für „Monat” und nicht für „Minute” ste­ht. Das Ergeb­nis ist dann auch eine „echte” Zei­tangabe. Eine kurze Erk­lärung zu diesem „Bäum­chen-wech­se­le-dich-Spiel”: Die Funk­tion Zeitwert wan­delt einen Text, welch­er als Zeit inter­pretiert wer­den kann, in einen echte Excel-Zeit um. Da Excel aber Zeit­en als ganz nor­male Zahlen spe­ichert und ver­ar­beit­et, sollte diese Zahl in einen anderen Zahlen­for­mat dargestellt wer­den. Statt 0,75 ste­ht dann dort 18:00.

Ist es aber möglich, dass die Zeit auch ein­mal ohne die führende Null eingegeben wird, also in der Form 837, dann wird solch eine Formel schon etwas umfan­gre­ich­er; denn es kön­nen ja drei oder vier Stellen sein. Basierend auf der erst­ge­nan­nten Formel:

=LINKS(A1; 2) & ":" & RECHTS(A1; 2)

erset­ze ich das erste A1 durch diese Anweisung:

=RECHTS("0" & A1; 4)

was dann diese Formel ergibt:

=LINKS(RECHTS("0" &  A1; 4); 2) & ":" & RECHTS(A1; 2)

Eine kurze Erk­lärung dazu: Zuerst stelle ich vor den Inhalt der Zelle A1 eine Null. Dadurch kann der Inhalt ja fün­f­stel­lig wer­den, falls bere­its eine führende Null eingegeben wurde oder eine Uhrzeit ab 10:00 eingegeben wor­den ist. Dann wer­den von diesem vier- oder fün­f­stel­li­gen Wert die recht­en vier Zeichen aus­geschnit­ten. Das entspricht dann ja der ein­heitlichen Vor­gabe. Und davon wiederum wer­den die bei­den linken Zeichen als Zif­fern vor dem Dop­pelpunkt bes­timmt. – Das ganze geht natür­lich auch mit der oben ange­sproch­enen Erset­zen-Funk­tion. 

▲ nach oben …

Eingabe als Zahl

In vie­len Din­gen ist das Vorge­hen aber anders, wenn die Werte nicht als Text son­dern als Zahl eingegeben wer­den. Denn dann wird Excel eine führend eingegebene Null gnaden­los löschen. Aber auch hier gibt es natür­lich Lösun­gen …

Der vielle­icht ein­fach­ste Weg: Sie wan­deln die Zahl in einen vier­stel­li­gen Text um und machen daraus eine Uhrzeit. Angenom­men Sie geben für 9 Uhr vor­mit­tags 0900 ein, dann wird natür­lich in der Zelle (nur) die Zahl 900 ste­hen. Mit dieser Formel würde dann daraus ein Text wer­den, welch­er der typ­is­chen Darstel­lungsweise entspricht:

=LINKS(TEXT(A1; "0000"); 2) & ":" & RECHTS(A1; 2)

Das Ergeb­nis ist ‑wie bere­its erwäh­nt- rein­er Text. Den kön­nen Sie nun auf die oben beschriebene Weise mit der Zeitwert-Funk­tion in eine für Excel „kor­rek­te” Zeit umwan­deln. Natür­lich wer­den Sie das Ergeb­nis noch als Zeit for­matieren. Es sind noch weit­ere Vari­a­tio­nen denkbar, die über­lasse ich aber Ihrer Exper­i­men­tier­freude.

Sie wer­den vielle­icht hier oder da über den Tipp „stolpern”, dass fol­gende benutzerdefinierte For­matierung Erfolg ver­spricht: 00\:00. Da wird die Uhrzeit, beispiel­sweise als 0925 eingegeben tat­säch­lich wie gewün­scht angezeigt. Aber: Obwohl es Text ist, kann diese Zelle nicht mit der ZEITWERT() – Funk­tion in eine echte Zeit umge­wan­delt wer­den.

▲ nach oben …

Und doch als „echte” Zeit…

hiob (User­name aus/in einem Excel-Forum) hat mich auf eine weit­ere inter­es­sante Vari­ante hingewiesen. die ich hier gerne als Ergänzung vorstelle: 
=TEXT(A1; "00"":""00")
Hier ist keine vier­stel­lige Eingabe erforder­lich; 345 wird dann als 3:45 aus­gegeben, wenn auch immer noch als Text. Danke dafür.

Aber um auf die Über­schrift zurück zu kom­men: All diese Aus­gaben sind rein­er Text, sofern Sie nicht die bere­its erwäh­nte ZEITWERT()-Funk­tion ver­wen­det haben. Und mit Tex­ten kann Excel bekan­ntlich nicht rech­nen. Oder doch? Ja, es geht. Eigentlich immer dann, wenn keine Leerze­ichen oder andere unpassende „Zusätze” in der Darstel­lung des Ergeb­niss­es sind, dann wird Excel ver­suchen, den Text, der so wie eine Uhrzeit aussieht, auch als solche zu behan­deln. Was zu beweisen wäre …  💡 

Text plus Uhrzeit ergibt "echte" Uhrzeit

Text plus Uhrzeit ergibt „echte” Uhrzeit

 Und es geht sog­ar noch „friv­o­l­er”:

Sogar Text plus Text ist möglich

Sog­ar Text plus Text ist möglich

Ein­deutig wer­den hier zwei Texte addiert und es kommt ein numerisches Ergeb­nis her­aus. OK, auf den ersten Blick scheint das etwas irri­tierend zu sein, aber wenn Sie die Zahl in einem Zeit­for­mat darstellen (beispiel­sweise das For­mat aus der Zelle darüber kopieren), dann haben Sie das kor­rek­te Ergeb­nis.

Und was ich ein­fach nur als etwas „krude” Meth­ode empfinde, geht bei jed­er Text-Aus­gabe und führt sofort zu ein­er kor­rek­ten Zahl, die nur noch als Zeit for­matiert wer­den muss:
=LINKS(TEXT(A1; "0000"); 2) & ":" & RECHTS(A1; 2) + "0:00"
oder auch die Ergänzung:
=TEXT(A1; "00"":""00") + "0:00"
wird jew­eils das Ergeb­nis 0,416666667  anzeigen bzw. 10:00 brin­gen, wenn das Zahlen­for­mat auf Uhrzeit eingestellt ist. Meis­tens reicht es auch, statt +„0:00” nur +0 einzugeben, aber bei meinen Ver­suchen hat es bei +0 Aus­reißer gegeben, die ich mir nicht erk­lären kann; darum gehe ich lieber „auf Num­mer sich­er”. 

▲ nach oben …

Ausgabe im gleichen Feld

Ganz anders stellt sich das Vorge­hen dar, wenn die Eingabe eines solchen Wertes direkt bei der Eingabe in eine kor­rek­te Zeit umge­wan­delt wer­den soll. Dazu bedarf es ein­er VBA-Proze­dur, eines Makros. Hier erst ein­mal ein beispiel­hafter Code, welch­er alle Eingaben in Spalte A automa­tisch in einen numerischen Wert umwan­delt:

Private Sub WorkSheet_Change(ByVal Target As Range)
   Dim Eingabe As Variant
   
   On Error GoTo ErrorHandler
   If Not Intersect(Target, Columns(1)) Is Nothing Then
      Application.EnableEvents = False
      With Target
         .Value = CDate(Left(Format(Target, "0000"), 2) & ":" & Right(Target, 2))
         .NumberFormat = "[hh]:mm"
      End With
   End If
ErrorHandler:
   Application.EnableEvents = True
End Sub

Diese Sub, dieser Code sollte im Mod­ul des entsprechen­den Arbeits­blattes ste­hen. Die Eingabe wird in jedem Fall in eine les­bare Uhrzeit, mit der Excel auch rech­nen kann, umge­wan­delt. Eine Ein­schränkung allerd­ings ist anzumerken: Bei ein­er Eingabe von 2400 wird zwar kor­rek­ter­weise 0:00 zurück gegeben, aber es ist nicht die Zeit des Fol­ge­tages son­dern des 27.07.1906. Das bedeutet, dass die Zeit 2400 (also 24:00 Uhr) nicht eingegeben wer­den sollte, son­dern beispiel­sweise 0000. – Ist eine Eingabe vom Mit­ter­nachts-Wert jedoch erforder­lich, kann das Makro entsprechend angepasst wer­den.

Hin­weis: Falls Sie der Dop­pelpunkt nur nicht ver­wen­den wollen, weil er nicht im Bere­ich des Zehnerblocks / Num­mern­blocks liegt, dann soll­ten Sie gerne ein­mal hier nach­se­hen. Natür­lich ohne Makro …  🙂 

Ein ähn­lich­es The­ma find­en Sie hier im Blog, da wird die aktuelle Uhrzeit bzw. das heutige Datum per Tas­tenkom­bi­na­tion fest einge­tra­gen.

[NachOben­Let­zte Verweis=„T&T: Uhrzeit ohne Tren­ner eingeben”]
Dieser Beitrag wurde unter Allgemein abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.