Bitte versuchen:
=DATE(MID(A2,FIND(" -",A2)-5,5),VLOOKUP(LEFT(A2,3),$H$2:$I$13,2,0),MID(A2,FIND(" -",A2)-7,2))
Es kann eine viel kürzere Version sein, aber ich bin neugierig auf die anderen Format/s du zeigst nicht (und was ist in H2: I13) und ich habe versucht, deinen Ansatz zu "respektieren".
Eine kürzere Version (ohne die Notwendigkeit eine SVERWEIS):
=DATEVALUE(MID(A2,FIND(" -",A2)-7,2)&"-"&LEFT(A2,3)&"-"&MID(A2,FIND("-",A2)-5,5))
Die längere Version oben verwendet eine Nachschlagtabelle (H2: I13), wo die ersten drei Zeichen des Datumsstempels in eine Zahl umgewandelt werden den relevanten Monat darstellen. Dies vermeidet, was sonst eine Komplikation aufgrund von Längeninkonsistenz in der Monatsangabe wäre.
Das Jahr und der Tag werden durch ihre Beziehung zum Bezugspunkt eines Leerzeichen/Bindestrich-Paars ermittelt. Relativ dazu beginnt das Jahr vier Zeichen früher (und ist von der Länge vier).
Das Raum/dash Paar (nur der Strich ausreichend gewesen als Bezugspunkt würde) beginnt bei dem zwölften Zeichen für das Beispiel, wie sie durch:
FIND(" –",A2)
Aus diesem Ergebnis (dh 12
) 5
wird abgezogen, um zum Jahresanfang zurückzurechnen. (Eigentlich der Platz vor Beginn des Jahres, aber das ist egal). Vom Platz vor dem Jahr ist das Jahr fünf Zeichen lang, wobei dies die Länge der Zeichenfolge aus A2
durch extrahiert:
MID(A2,FIND(" -",A2)-5,5)
Der Tag (01
zum Beispiel) wird in ähnlicher Weise extrahiert und dann die drei Stücke (Jahr, SVERWEIS-Ergebnis und Tag) und als Parameter in die =DATE Funktion eingespeist.
Die kürzere Version vermeidet die Notwendigkeit einer Lookup-Tabelle von concatenating, in der Mitte des Jahres und Tag (in ähnlicher Weise wie für die lange Version extrahiert), wobei die ersten drei Zeichen der Datumsstempel, erhalten von:
LEFT(A2,3)
umgeben von -
auf jeder Seite.
(siehe LEFT, die effektiv eine leicht vereinfachte Form von MID ist, wie an anderer Stelle verwendet).
Das Ergebnis ist eine Zeichenkette, aber in einem Format, das von Excel erkannt wird, und eines, das die praktische Funktion in einen Datums-/Uhrzeitwert umwandeln kann.
Dies wäre viel einfacher wäre die Daten konsistenter (dh immer drei Buchstaben für den Monat).
'= DateValue (Links (A2, 12))' – Slai
meine schlechte .. das Datum wird ein Komma vor dem Jahr '" Aug 01, 2016 "brauchen, aber das funktioniert' = TEXT (SUBSTITUTE (A2, (",", "),", -, "," "," m/d/y ")' – Slai
@Slai Vielleicht sollten Sie das OP noch einmal lesen - diese Formel ist bei weitem nicht die Transformation, die OP erfordert. – pnuts