Aus String ein Datum machen
#1
Brick 
Guten Morgen!

Ich habe ein kleines Problem, ich habe eine automatisch erstellte Tabelle, wo das Datum leider in Text form raus kommt. Jetzt möchte ich daraus gerne ein datum nach dem Schema: tt.mm.yy hh:mm:ss erstellen.

Bsp:


Code:
Tue Jan 02 20:59:28 CET 2018      -> 02.01.18 20:59:28
Tue Jan 02 21:39:55 CET 2018
Tue Jan 02 22:26:43 CET 2018
Tue Jan 02 23:07:41 CET 2018
Wed Jan 03 00:47:34 CET 2018
Wed Jan 03 01:02:53 CET 2018
Wed Jan 03 01:47:59 CET 2018
Wed Jan 03 02:23:33 CET 2018


Umformatieren geht ja leider nicht. Muss man das ganze mit "TEIL" lösen oder gibts da ne bessere variante?

Vielen dank!:)
Top
#2
Hallo


Code:
=--(TEIL([@Datum];9;2)&"-"&TEIL([@Datum];5;3)&"-"&RECHTS([@Datum];4)&" "&TEIL([@Datum];12;8))
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • Terades
Top
#3
da englische Notation:

=--(TEIL(A1;9;2)&WECHSELN(WECHSELN(WECHSELN(WECHSELN(TEIL(A1;5;3);"ar";"rz");"y";"i");"ct";"kt");"ec";"ez")&RECHTS(A1;4)&TEIL(A1;11;9)) 

oder kürzer nach Luc:

=--(TEXT(DATWERT(TEIL(A2;9;2)&TEIL(A2;5;3)&RECHTS(A2;2));"[$-809]TTMMMJJ")&TEIL(A2;11;9))

benDefFmt TT.MM.JJ hh:mm:ss
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • Terades
Top
#4
Heart 
Sehr gut, danke!
Top
#5
Hallo,

als UDF:


Code:
Function F_Datum_aus_US(rng As Range) As Date
   DD = Split(rng.value)
   F_Datum_aus_US = CDate(DD(2) & " " & DD(1) & " " & DD(5) & " " & DD(3))
End Function


mfg
Top
#6
Thumbs Up 
Auch cool Fennek, leider ist hier auch das Problem mit den Englischen Monats bezeichnungen. Mar anstatt Mrz. Dann kommt #Wert. Da hatte LCohen ja die Wechseln fnkt. für genutzt.

Aber dennoch, nicht schlecht. :)
Top
#7
Hallo,

die Internationalen Einstellungen sind leider nur "read-only" und können nicht in VBA geändert werden (wie für die Blattfunktionen.

Code:
Function F_Datum_aus_US(rng As Range) As Date
'ar = Application.GetCustomListContents(3) 'englische Monatsnamen "MMM"

   DD = Split(rng.Value)
   Mo = Switch(DD(1) = "Mar", "Mrz", DD(1) = "May", "Mai", DD(1) = "Oct", "Okt", DD(1) = "Dec", "Dez")
   If Mo <> "" Then DD(1) = Mo
   F_Datum_aus_US = CDate(DD(2) & " " & DD(1) & " " & DD(5) & " " & DD(3))
End Function



Zumindenst in meinem xl2016 kann man die englischen Monatsnamen, sowohl "MMM" als auch "MMMM" in einer custumList auslesen.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Terades
Top
#8
Moin Terades,

da du Excel 2016 nutzt / nutzen kannst, bietet sich auch eine Formellose Möglichkeit an.


Angehängte Dateien
.xlsx   Umformatiert per PQ.xlsx (Größe: 26,74 KB / Downloads: 4)
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#9
Hi


ich werfe mal diese Formel ins Rennen:

=DATUM(RECHTS(A1;4);FINDEN(TEIL(A1;5;3);"xxJanFebMarAprMayJunJulAugSepOctNovDec")/3;TEIL(A1;9;2))+TEIL(A1;12;8)

solange der Monat mit drei buchstaben geliefert wird, lässt sich das relativ einfach an jede beliebige Ausgabesprache anpassen

Gruß Daniel
Top
#10
=DATUM(RECHTS(A1;4);FINDEN(TEIL(A1;5;3);"xxJanFebMarAprMayJunJulAugSepOctNovDec")/3;TEIL(A1;9;2))+TEIL(A1;12;8)

geht über neopa (aus meinem Link oben) auch kürzer als

=DATUM(RECHTS(A1;4);FINDEN(TEIL(A1;6;2);"xanebarprayunulugepctovec")/2;TEIL(A1;9;2))+TEIL(A1;12;8)

da die Stellen 2+3 im Englischen eindeutig sind.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste