2017-04-05 2 views
0

Parsing Ich möchte Daten wie formatiert "30. März 2017, 05: 00: 00.000" zu einem Excel-Datum Wert konvertieren? Was ist die eleganteste Lösung, die ich mit einer Zellformel und nicht mit VBA machen kann?Nicht-Standard-Datumsformat in Excel Zelle

+0

Sind die Millisekunden immer Null? Wenn nicht, sind sie wichtig zu behalten? – Jeeped

Antwort

1

wie diese wird die Standard-"rd","th","st","nd"

=--(LEFT(A1,MIN(FIND({"rd","th","st","nd"},A1 & "thrdstnd"))-1)& ", " & SUBSTITUTE(MID(A1, MIN(FIND({"rd","th","st","nd"},A1 & "thrdstnd"))+2,LEN(A1)),",","")) 

Sie hinzufügen können andere Suffixe tun, wie Sie

enter image description here

Dann können Sie es formatieren, wie Sie auf die Formel benötigen.

0

Wenn Sie eine wahre Datum und wollen die Zeit Teil fallen dann:

=DATEVALUE(SUBSTITUTE(LEFT(A1,FIND(",",A1)-1),"th",",")) 

Sie ERSATZ nisten müssen() Funktionen „nd“ zu handhaben und „st“ ordinals wenn Sie sie:

=DATEVALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(A1,FIND(",",A1)-1),"th",","),"nd",","),"st",",")) 

enter image description here

+2

Sie könnten die st, nd, RD ein Problem finden. – Jeeped

+0

@Jeeped Ich habe Ihre Bedenken in einem Update erwähnt. –

1

Nested IFERROR Funktionen können sie die Vielfalt der Nummer ordinals behandeln.

=--SUBSTITUTE(REPLACE(A2, IFERROR(FIND("st ", A2),IFERROR(FIND("nd ", A2),IFERROR(FIND("rd ", A2), IFERROR(FIND("th ", A2), LEN(A2))))), 3, ", "), ", ", " ",2) 

enter image description here

ich eine benutzerdefinierte Zahlenformat von [Color10]mmmm dd, yyyy hh:mm:ss.000;;;[Color3]@ verwendet. Abgesehen davon, dass der Text linksbündig ist und die wahren Daten rechtsbündig ausgerichtet sind, werden Text-ähnliche-Daten in eine rote Schrift und echte Daten in eine grüne Schrift gesetzt.