Excel Datumstexte in Datum konvertieren
Hallo,
ich bin jetzt definitiv kein EXCEL-Profi und möchte eine Tabelle erstellen, in der die Ablaufdaten meiner Zertifikate sortiert drin stehen. Die Ablaufdaten kommen zum Teil aus Geräten, bei denen ich nur über eine GUI zugriff habe und sehen dann so aus (bisher sind folgende Varianten aufgetreten):
Kann man daraus in EXCEL Datum und Uhrzeit irgendwie elegant automatisiert herauskonvertieren?
Grüße
lcer
ich bin jetzt definitiv kein EXCEL-Profi und möchte eine Tabelle erstellen, in der die Ablaufdaten meiner Zertifikate sortiert drin stehen. Die Ablaufdaten kommen zum Teil aus Geräten, bei denen ich nur über eine GUI zugriff habe und sehen dann so aus (bisher sind folgende Varianten aufgetreten):
1
2
3
2
3
Dec 23 12:00:06 2029 GMT
Sat, 08 Apr 2023 11:35:03 +0200
Tue Jan 06 09:57:23 CET 2026
Kann man daraus in EXCEL Datum und Uhrzeit irgendwie elegant automatisiert herauskonvertieren?
Grüße
lcer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1493581651
Url: https://administrator.de/forum/excel-datumstexte-in-datum-konvertieren-1493581651.html
Ausgedruckt am: 01.04.2025 um 19:04 Uhr
12 Kommentare
Neuester Kommentar

Schöner Spruch aus Österreich xD
Ist die Technik noch so weit, Handarbeit bleibt Handarbeit.
Ist die Technik noch so weit, Handarbeit bleibt Handarbeit.

Zitat von @lcer00:
ich bin jetzt definitiv kein EXCEL-Profi und möchte eine Tabelle erstellen, in der die Ablaufdaten meiner Zertifikate sortiert drin stehen.
Warum liest du das Datum nicht direkt aus den ausgestellten Zertifikaten oder deiner Zertifizierungsstelle aus? Z.B. via Powershell ist das kein Thema mit dem x509Certificate Object, dann entfällt das String-Gefrickel.ich bin jetzt definitiv kein EXCEL-Profi und möchte eine Tabelle erstellen, in der die Ablaufdaten meiner Zertifikate sortiert drin stehen.
Bei mir würde das ja schon direkt beim Ausstellen des Certs in einem Log mit einheitlichem Datum landen.
Oder man lässt das am besten gleich das Monitoring-System erledigen das einen rechtzeitig vor Ablauf der Certs informiert, in nem Excel-File vergammelt das doch gerne mal

Dann nimm halt die Powershell und ergänze deine Formate
https://docs.microsoft.com/de-de/dotnet/standard/base-types/custom-date- ...
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
$csv = @'
"Date";"Common-Name"
"Dec 23 12:00:06 2029 GMT";"domain.tld"
"Sat, 08 Apr 2023 11:35:03 +0200";"sub.domain.tld"
"Tue Jan 06 09:57:23 CET 2026";"sub2.domain.tld"
'@ | ConvertFrom-CSV -Delimiter ";"
$csv = foreach($line in $csv){
$d = [datetime]::MinValue
if ([datetime]::TryParseExact($line.Date,[string[]]('MMM dd HH:mm:ss yyyy GMT','ddd, dd MMM yyyy HH:mm:ss zzz','ddd MMM dd HH:mm:ss CET yyyy'),[cultureinfo]'en','None',[ref]$d)){$line.Date = $d}
$line
}
$csv | sort Date

Nein, wenn du dir dafür ein COM-Wrapper bauen würdest dann ja. Du kannst natürlich auch per Regex was mit VBA bauen ist nur etwas mehr Tipparbeit aber auch kein Problem ...
Vorher

Nachher

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub KonvertiereDatumswerte()
Dim cell As Range, regex As Object, months As Variant, arrMap As Variant, arrMonthMap As Variant, _
matches As Object, m As Integer, i As Integer, intMonth As Integer
Set regex = CreateObject("vbscript.regexp"): regex.IgnoreCase = True
months = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
regex.Pattern = "(([a-z]{3}) (\d{2}) (\d{2}:\d{2}:\d{2}) (\d{4}))|(([a-z]{3}), (\d{2}) ([a-z]{3}) (\d{4}) (\d{2}:\d{2}:\d{2}))|(([a-z]{3}) ([a-z]{3}) (\d{2}) (\d{2}:\d{2}:\d{2}) ([a-z]{3}) (\d{4}))"
arrMap = Array(Array(4, 2, 3), Array(9, 7, 10), Array(17, 14, 15))
arrMonthMap = Array(1, 8, 13)
With ActiveSheet
For Each cell In .Range("A2:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
Set matches = regex.Execute(cell.Value)
If matches.Count > 0 Then
For m = 0 To UBound(arrMap)
If matches(0).submatches(arrMonthMap(m)) <> "" Then
For i = 0 To UBound(months)
If months(i) = matches(0).submatches(arrMonthMap(m)) Then
intMonth = i + 1
Exit For
End If
Next
cell.Value = CDate(matches(0).submatches(arrMap(m)(0)) & "-" & intMonth & "-" & matches(0).submatches(arrMap(m)(1)) & " " & matches(0).submatches(arrMap(m)(2)))
Exit For
End If
Next
End If
Next
.Range("A:B").Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlYes
End With
End Sub
Vorher

Nachher

Zitat von @lcer00:
Andererseits gibt es Excel ja auch nur aus Gründen der Rückwärtskompatibilität zu Kugelschreiberlistenausfüllern. Kein Mensch braucht eine Tabellenkalkulationsoftware.
Andererseits gibt es Excel ja auch nur aus Gründen der Rückwärtskompatibilität zu Kugelschreiberlistenausfüllern. Kein Mensch braucht eine Tabellenkalkulationsoftware.
Doch, die Menschen, die damit rechnen wollen und Excel nicht als schlechteste aller Datenbanken nutzen.
Zitat von @erikro:
Doch, die Menschen, die damit rechnen wollen und Excel nicht als schlechteste aller Datenbanken nutzen.
Zitat von @lcer00:
Andererseits gibt es Excel ja auch nur aus Gründen der Rückwärtskompatibilität zu Kugelschreiberlistenausfüllern. Kein Mensch braucht eine Tabellenkalkulationsoftware.
Andererseits gibt es Excel ja auch nur aus Gründen der Rückwärtskompatibilität zu Kugelschreiberlistenausfüllern. Kein Mensch braucht eine Tabellenkalkulationsoftware.
Doch, die Menschen, die damit rechnen wollen und Excel nicht als schlechteste aller Datenbanken nutzen.
Excel (oder eine beliebige Tabellenkalkulation) ist die einfachste Art eine Tabelle zu setzen/erzeugen. Von daher ist es nachvollziehbar, wenn sehr viele das dazu nutzen.
Das einzige was bei Excel stört, ist daß es versucht die Daten, die man reinschreibt selbständig zu interpretieren, statt auf das zu hören, was der Master an der Tastatur sagt.
lks