Unterschiedliche Personen geben Daten auf unterschiedliche Weise ein. Wenn Sie Informationen in eine Zelle eingeben, versucht Excel herauszufinden, welche Art von Informationen Sie eingeben. Wenn Sie eine Zahl wie 08242008 eingeben, geht Excel davon aus, dass Sie einen numerischen Wert eingeben, und behandelt ihn entsprechend. Was ist, wenn die von Ihnen eingegebene Nummer tatsächlich ein Datum ohne Trennzeichen ist? Kann Excel verstehen, was Sie eingeben?

Excel kann das leider nicht. Warum? Weil Sie ihm keinen Hinweis gegeben haben, dass dies ein Datum sein sollte. (Excel-Schlüssel für Trennzeichen, nicht für numerische Werte.) Wenn Sie oder Ihre Dateneingabemitarbeiter ihre Eingabegewohnheiten nicht ändern können, sodass auch Trennzeichen eingegeben werden, benötigen Sie eine Problemumgehung, um die eingegebenen Informationen in einen tatsächlichen Datumswert umzuwandeln .

Ihr erster Gedanke könnte sein, dass Sie ein benutzerdefiniertes Format verwenden könnten, um die Informationen anzuzeigen. Betrachten Sie das folgende benutzerdefinierte Format:

##"/"##"/"####

Dieses Format würde die Nummer 08152008 als 15.08.2008 anzeigen. Das einzige Problem besteht darin, dass nur die Anzeige der Nummer geändert wird. Wenn Sie das Datum als echtes Excel-Datum verwenden möchten, können Sie dies nicht tun, da Sie den Wert nicht in etwas konvertiert haben, das Excel als Datum erkennt.

Wenn die eingegebenen Werte in ihrem Format sehr konsistent waren und als Text statt als numerische Werte eingegeben wurden, können Sie sie auf einfache Weise in Datumsangaben konvertieren. Mit sehr konsistent meine ich, dass die Eingabe immer zwei Ziffern für den Monat, zwei für den Tag und vier für das Jahr verwendet hat. Außerdem müssen die Zellen, die die Werte enthalten, als Text formatiert sein. In diesem Fall können Sie die folgenden Schritte ausführen:

  1. Wählen Sie die Datumsspalte aus.

  2. Stellen Sie sicher, dass sich in der Spalte rechts neben den Daten nichts befindet.

  3. Wählen Sie im Menü Daten die Option Text in Spalten. (Wählen Sie in Excel 2007 auf der Registerkarte Daten des Menübands Text in Spalten aus.) Excel zeigt den Assistenten zum Konvertieren von Text in Spalten an. (Siehe Abbildung 1.)

  4. Wählen Sie die Option Feste Breite und klicken Sie dann auf Weiter.

  5. Klicken Sie erneut auf Weiter.

  6. Wählen Sie im Bereich Spaltendatenformat die Option Datum.

  7. Wählen Sie den Bereich im Feld Ziel aus und klicken Sie im Arbeitsblatt auf die Zelle rechts neben dem ersten Wert, den Sie in Schritt 1 ausgewählt haben.

  8. Klicken Sie auf Fertig stellen.

Wenn alles gut gegangen ist, sollte Excel die Textwerte als Datum analysiert haben, und Sie können die ursprüngliche Spalte löschen. Wenn dies nicht funktioniert hat, bedeutet dies, dass entweder die ursprünglichen Werte nicht als Text formatiert wurden oder nicht alle Ziffern mit acht Ziffern eingegeben wurden.

Eine andere mögliche Lösung besteht darin, eine Formel zu verwenden, um die eingegebenen Werte in tatsächliche Daten umzuwandeln. Das Folgende ist eine solche Formel:

=DATE(RIGHT(A1,4),LEFT(A1,IF(LEN(A1) = 8,2,1)),LEFT(RIGHT(A1,6),2))

Diese Formel setzt voraus, dass das eingegebene Datum (das ohne Trennzeichen)

ist ist in Zelle A1. Die Formel funktioniert entweder mit sieben- oder achtstelligen Daten.

Wenn Sie benutzerdefinierte Funktionen bevorzugen, können Sie in VBA eine erstellen, die die übergebenen Daten untersucht, in ein Datums- / Zeitformat konvertiert und dann das Ergebnis zurückgibt. Die folgende Funktion ist in dieser Hinsicht sehr vielseitig; Es funktioniert sowohl mit amerikanischen als auch mit europäischen Datumsformaten:

Function DateTime(dblDateTime As Double, _   Optional bAmerican As Boolean = True)

'Converts Date and time "number" without 'delimiters into an excel serialdate (which 'can then be formatted with the Excel 'date/time formats)



'If optional argument is TRUE (or missing), 'function assumes value is of form:

'   [m]mddyyyy.hhmm  (leading "0" not required)



'If optional argument is FALSE, function 'assumes value is of form:

'   [d]dmmyyyy.hhmm  (leading "0" not required)



Dim iYear As Integer     Dim iMonth As Integer     Dim iDay As Integer     Dim iHour As Integer     Dim iMin As Integer

iYear = Int((dblDateTime / 10000 - _       Int(dblDateTime / 10000)) * 10000)

iDay = Int((dblDateTime / 1000000 - _       Int(dblDateTime / 1000000)) * 100)

iMonth = Int((dblDateTime / 1000000))

iHour = Int((dblDateTime - Int(dblDateTime)) * 100)

iMin = Int((dblDateTime  100 - _       Int(dblDateTime  100)) * 100 + 0.5)



If bAmerican Then         DateTime = DateSerial(iYear, iMonth, iDay)

Else         DateTime = DateSerial(iYear, iDay, iMonth)

End If

DateTime = DateTime + (iHour + iMin / 60) / 24 End Function

Diese Makrofunktion setzt voraus, dass die an sie übergebenen Daten ein numerischer Wert sind, wie dies normalerweise bei der Eingabe von Daten ohne Trennzeichen der Fall ist. (Beziehen Sie sich auf die Logik am Anfang des Tipps.)

Wie Sie sehen, gibt es eine Reihe von Problemumgehungen, aber keine davon ist so einfach wie die Eingabe von Trennzeichen bei der Eingabe der Daten. Wenn es schwierig ist, sich selbst oder Ihre Dateneingabemitarbeiter dazu zu schulen, können Sie einige Datenüberprüfungsregeln für die Eingabezellen einrichten. Diese Regeln können überprüfen, ob Sie Informationen in einem bestimmten Format eingeben (z. B. ein Datum mit Trennzeichen), und Sie stoppen, wenn dies nicht der Fall ist. (Wie Sie Datenüberprüfungsregeln erstellen, wurde in anderen Ausgaben von ExcelTips. behandelt.)

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (2039) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: