Ich habe eine CSV-Datei mit einer Datumsspalte mit Datumsangaben in verschiedenen Formen wie folgt:
dd-mm-yyyy
yyyy-mm-dd
yyyy-mm
yyyy
Diese unregelmäßigen Daten befinden sich in einer einzelnen Spalte.
Wie konvertiere ich sie alle in dd-mm-yyyy
und extrahiere das Jahr aus ihnen mit der Excel-Formel? Die gewünschte Ausgabe lautet wie folgt:
Input Output
25-03-1954 25-03-1954
22-09-1987 22-09-1987
1990-01-25 25-01-1990
1968-11-15 15-11-1968
1919-01 01-01-1919
1873-02 01-02-1873
1945 01-01-1945
1933 01-01-1933
dd-mm-yyyy
entsprechend der Art der Eingabe in der Zelle.TEXT
kann einzeln verwendet werden, wenn ich das Format in der Eingabe kenne. Ich habe Tausende von Eingabezellen (in mehreren Formaten), die ich in eine Ausgabe konvertieren möchte. Allerdings kann ich die Ausgabe nicht bekommen. Sobald ich die Ausgabe erhalte, kann ich das Jahr mitYEAR()
Antworten:
Wenn Sie nur das Jahr wirklich brauchen, verwenden Sie die Formel @robinCTS.
WENN das Ergebnis "echte Excel - Daten" sein soll und
DMY
,dd-mm-yyyy
dann könnten Sie diese Formel verwenden:
Beachten Sie, dass Datumsangaben vor 1900 in Excel keine reellen Datumsangaben sind, sondern als TEXT-Zeichenfolgen dargestellt werden können. Ich überlasse es Ihnen, die Formel zu optimieren.
Wenn Ihre Ausgabe für Länder mit anderen Datumsformaten international bekannt sein muss, ist eine VBA-Lösung möglicherweise die beste. Ist dies nicht möglich, können Hilfsspalten verwendet werden, um die Daten aufzuteilen und anschließend entsprechend neu zusammenzusetzen, oder es kann eine sehr komplexe Formel verwendet werden, um dies zu tun.
Beachten Sie, dass diese UDF abhängig vom zweiten optionalen Argument entweder das tatsächliche Datum oder nur das Jahr ausgibt.
Beiden Methoden Blick auf dem ersten Segment, und nehmen an, es ist ein Jahr , wenn
LEN > 4
, und dann schauen, wie viele Segmente zu entscheiden , ob die notwendigen anhänge-01
‚sDie VBA-Lösung gibt Daten vor 1900 als Textzeichenfolge aus.
quelle
Da Ihre Eingabedaten Daten vor 1900 enthalten, wird es etwas kniffliger. Am einfachsten geht man damit um, wenn man ausschließlich mit den Textdarstellungen der Daten arbeitet.
Wenn Sie nicht das vollständige Datum, sondern nur das Jahr benötigen, geben Sie diese Grundformel in eine beliebige Zelle in der Zeile ein
2:2
:Für das vollständige Datum ist die Formel etwas komplizierter:
Erläuterung:
Die hübsche Version der vollständigen Datumsformel lautet wie folgt:
Es ist ziemlich einfach. Das einzige, was etwas schwierig ist, ist das erste Argument der
CHOOSE()
Funktion(LEN(A2)-4)/3+1
. Dies ordnet die Länge der eingegebenen Datumszeichenfolgen 1-basierten Indizes zu, dh → → .[yyyy, yyyy-mm, yyyy-mm-dd, dd-mm-yyyy]
[4, 7, 10, 10]
[1, 2, 3, 3]
Anmerkungen:
Vorsichtsmaßnahmen:
A2
s in den Formeln durchTRIM(A2)
oder noch besser durchSUBSTITUTE(A2," ","")
löst dieses Problem.quelle