Excel kann das Datum in der Spalte nicht erkennen

45

Ich habe ständig Probleme beim Arbeiten mit Daten in Excel. Ich muss etwas falsch machen, verstehe aber nicht, was.

Ich habe eine Tabelle, die von unserem Exchange-Server exportiert wurde und eine Spalte mit Datumsangaben enthält. Sie sind im US-Format herausgekommen, obwohl ich in Großbritannien bin.

Die fragliche Spalte sieht so aus

04/08/2012
04/09/2009
04/01/2010
04/21/2011
04/05/2012
08/30/2009
08/29/2010
08/28/2011

In Excel habe ich die Spalte markiert und ausgewählt Format Cells.... In diesem Dialogfeld habe ich das Date, English (United States)als Gebietsschema ausgewählt und das passende Datumsformat aus der Liste ausgewählt. Ich drücke auf OK und versuche, die Daten nach dieser Spalte zu sortieren.

Wählen Sie im Sortierdialog, den ich in dieser Spalte auswähle, die Option Nach Werten sortieren, aber die Reihenfolge gibt mir nur Optionen für A bis Z, nicht wie erwartet die ältesten bis neuesten.

Dadurch werden die Datumsdaten nach den ersten beiden Ziffern sortiert.

Ich bin mir bewusst, dass ich diese Daten auf ISO umformatieren könnte und dann die Sortierung von A bis Z funktionieren würde, aber ich hätte es nicht tun sollen, mir fehlt offensichtlich etwas. Was ist es?

BEARBEITEN: Ich habe das Kopfgeld durcheinander gebracht, aber das hätte an @ r0berts Antwort gehen sollen, seinen ersten Vorschlag für Text in Spalten ohne Trennzeichen und die Auswahl von 'MDY' als Datentyp. Wenn Sie eine Zeit haben (dh 04/21/2015 18:34:22), müssen Sie zuerst die Zeitdaten entfernen. Danach funktioniert die von @ r0berts vorgeschlagene Methode jedoch einwandfrei .

Patrick
quelle
Ich würde vermuten, dass Excel nicht weiß, wie das geht - Sie können es testen. Wenn Sie versuchen, das Datumsformat zu aktualisieren, wählen Sie die Spalte aus, klicken Sie mit der rechten Maustaste darauf und wählen Sie Formatzellen aus (wie bereits geschehen), wählen Sie jedoch die Option 2001-03-14 (am Ende der Liste). Ich vermute, dass nur einige der Datumsformate korrekt aktualisiert werden, was darauf hinweist, dass Excel sie immer noch wie eine Zeichenfolge behandelt, nicht wie ein Datum!
Dave
Was ist das Format der exportierten Daten? Ist es CSV oder XLSX?
Hervorragend

Antworten:

70

Das Problem: Excel möchte Datumsangaben nicht als Datumsangaben erkennen, obwohl Sie mit "Zellen formatieren - Nummer - Benutzerdefiniert" explizit versuchen, anzugeben, dass es sich um Datumsangaben handelt, die durch " mm/dd/yyyy" gekennzeichnet sind. Wie du weißt; Wenn Excel ein Datum erkannt hat, speichert es dieses weiterhin als Zahl, z. B. " 41004", zeigt es jedoch entsprechend dem von Ihnen angegebenen Format als Datum an. Um die Verwirrung zu erhöhen, konvertiert Excel möglicherweise nur einen Teil Ihrer Daten, z. B. den 04.08.2009, lässt jedoch andere Daten, z. B. den 28.07.2009, unkonvertiert.

Lösung: Schritte 1 und dann 2

1) Wählen Sie die Datumsspalte aus. Wählen Sie unter Daten die Schaltfläche Text in Spalten. Lassen Sie auf dem ersten Bildschirm das Optionsfeld " Getrennt " und klicken Sie auf Weiter . Deaktivieren Sie eines der Begrenzungsfelder (alle Felder leer ; keine Häkchen) und klicken Sie auf Weiter . Wählen Sie unter Spaltendatenformat Datum und MDY im nebenstehenden Kombinationsfeld aus und klicken Sie auf Fertig stellen . Jetzt haben Sie Datumswerte (dh Excel hat Ihre Werte als DateDatentyp erkannt ), aber die Formatierung ist wahrscheinlich immer noch das Datum des Gebietsschemas und nicht das mm/dd/yyyygewünschte Datum .

2) Um das gewünschte US - Datumsformat angezeigt Sie richtig erstes müssen Sie die Spalte (falls nicht ausgewählt) dann unter auszuwählen Zellenformat - Nummer wählen Datum und wählen Sie Gebietsschema: Englisch (US) . Dadurch erhalten Sie ein Format wie " m/d/yy". Dann können Sie Benutzerdefiniert auswählen und dort entweder " mm/dd/yyyy" eingeben oder dies aus der Liste der benutzerdefinierten Zeichenfolgen auswählen.

Alternative : Verwenden Sie LibreOffice Calc. Wenn Sie Daten aus Patricks Beitrag Ctrl+Shift+Veinfügen, wählen Sie Inhalte einfügen ( ) und anschließend Unformatierter Text. Das Dialogfeld "Text importieren" wird geöffnet. Der Zeichensatz bleibt Unicode, aber für die Sprache wählen Sie Englisch (USA). Sie sollten auch das Kontrollkästchen "Sondernummern erkennen" aktivieren. Ihre Daten werden sofort im US-Standardformat angezeigt und können nach Datum sortiert werden. Wenn Sie das spezielle US-Format MM / TT / JJJJ wünschen, müssen Sie dies einmal durch "Zellen formatieren" angeben - entweder vor oder nach dem Einfügen.

Man könnte sagen - Excel hätte Daten erkennen sollen, sobald ich es über "Cell Format" mitgeteilt habe und ich konnte nicht mehr zustimmen . Leider konnte ich Excel erst in Schritt 1 von oben veranlassen, diese Textzeichenfolgen als Datumsangaben zu erkennen. Wenn Sie dies häufig tun, ist es offensichtlich ein Schmerz im Nacken, und Sie können sich eine visuelle Grundroutine zusammenstellen, die dies auf Knopfdruck für Sie erledigt.

Daten | Text in Spalten

Aktualisierung des führenden Apostrophs nach dem Einfügen: In der Formelleiste sehen Sie, dass in der Zelle, in der das Datum nicht erkannt wird, ein führender Apostroph steht. Das heißt, in der als Zahl (oder Datum) formatierten Zelle befindet sich eine Textzeichenfolge. Man könnte sagen - der führende Apostroph verhindert, dass die Tabelle die Nummer erkennt. Sie müssen wissen, ob Sie in der Bearbeitungsleiste nachsehen können, da in der Tabelle lediglich eine linksbündige Zahl angezeigt wird. Um dieses Problem zu beheben, wählen Sie die Spalte aus, die Sie korrigieren möchten, und wählen Sie im MenüData | Text to Columnsund klicken Sie auf OK. Manchmal können Sie den Datentyp angeben, aber wenn Sie das Format der Spalte zuvor auf Ihren speziellen Datentyp festgelegt haben, benötigen Sie ihn nicht. Der Befehl ist eigentlich dazu gedacht, eine Textspalte mit einem Trennzeichen in zwei oder mehr Spalten aufzuteilen, aber auch bei diesem Problem funktioniert er wie ein Zauber. Ich habe es in Libreoffice getestet , aber es gibt den gleichen Menüpunkt auch in Excel .

r0berts
quelle
Ich spreche Ihre beiden Punkte in meinem OP an. Das Aufteilen der Datumswerte in Spalten (und die anschließende Wiedereingliederung in das ISO-Format) ist natürlich möglich, aber da Excel über umfangreiche Datumsfunktionen verfügt, möchte ich diese mit den gültigen Datumsdaten nutzen können, die ich habe. Ihre zweite Option ist genau so, wie ich beschreibe, was bei mir nicht funktioniert.
Patrick
Lieber Patrick, bitte lies aufmerksam durch. Oder Sie können Libre Office Calc verwenden - mit Ihren Daten funktioniert das sofort - Sie formatieren einfach die Spalte für Datum - Englisch (USA) vor und fügen beim Einfügen "Inhalte einfügen" "Unformatierter Text" ein - teilen Sie dem Dialogfeld einfach die Sprache mit Englisch (USA) und vergessen Sie nicht, das Kästchen anzukreuzen, um spezielle Nummern zu erkennen. In meiner Antwort habe ich versucht, so deutlich wie möglich darauf hinzuweisen, dass Excel nicht mit diesem (fehlerhaften) Code übereinstimmt, und Sie müssen auf die Schritte 1 und 2 zurückgreifen, um das gewünschte Ergebnis zu erzielen.
r0berts
Ich hätte deine Frage in der Tat richtig lesen sollen. Dein erster Vorschlag funktioniert tatsächlich. Du hättest das Kopfgeld bekommen sollen. Danke für deine Hilfe.
Patrick
Vorschlag 1 wirkt wie ein Zauber. Vielen Dank.
Adam
Wirklich gute Antwort !!!
Addierer
8

Wählen Sie alle Spalte und gehen zu lokalisieren und ersetzen und ersetzen Sie einfach "/"mit /.

Jair Bressani
quelle
Können Sie erklären, wie das Problem behoben werden kann?
Fixer1234
Das hat wirklich funktioniert und war einfach. Das Ersatz-Ding entfernen Sie einfach die führenden Nullen
PedroGabriel
2
Erstens funktioniert dies. Beste Lösung. VIEL besser als die geprüfte Lösung :). Um fixer1234 und @PedroGabriel: Es ist nicht so, dass es Nullen entfernt. Beim Ersetzen des Zelleninhalts wertet Excel aus, ob die resultierende Zelle eine Formel, einen Text oder eine Zahl enthält. Nach dem "/" -Ersetzen wird die Zelle so interpretiert, dass sie jetzt eine Zahl enthält (ein Datum, das technisch Excel entspricht), sodass es jetzt korrekt sortiert werden kann. (Kluge Benutzer kennen möglicherweise die Technik des Suchens / Ersetzens mit einem "=" - Zeichen in einem ähnlichen Szenario, in dem Excel Inhalte neu interpretiert.) Jair hat
MicrosoftShouldBeKickedInNuts
@MicrosoftShouldBeKickedInNuts heute Ich habe keine Ahnung, warum ich das über die Nullen gesagt habe, es hatte wirklich nichts mit Nullen zu tun ... Dies ist die beste Antwort, immer noch mit dieser. Prost
PedroGabriel
3

Ich hatte genau das gleiche Problem mit Daten in Excel. Das Format entsprach den Anforderungen für ein Datum in Excel. Ohne die Bearbeitung jeder Zelle würde das Datum jedoch nicht erkannt. Wenn Sie mit Tausenden von Zeilen arbeiten, ist es nicht praktisch, jede Zelle manuell zu bearbeiten. Die Lösung besteht darin, ein Suchen und Ersetzen in der Datumsreihe durchzuführen, in der ich den Bindestrich durch einen Bindestrich ersetzt habe. Excel durchläuft die Spalte und ersetzt "Gefällt mir" durch "Gefällt mir". Daraus resultiert jedoch, dass jetzt die Daten erkannt werden! FEST!

Warren Rocchi
quelle
3

Ich hatte ein ähnliches Problem mit Tausenden von Zeilen, die aus einer SAP-Datenbank extrahiert wurden, und aus unerklärlichen Gründen zwei verschiedenen Datumsformaten in derselben Datumsspalte (die meisten sind unser Standard "JJJJ-MM-TT", aber ungefähr 10% sind "MM-TT"). TT-JJJ "). 650 Zeilen einmal im Monat manuell zu bearbeiten, war keine Option.

Keine (null ... 0 ... null) der oben genannten Optionen hat funktioniert. Ja, ich habe sie alle ausprobiert. Das Kopieren in eine Textdatei oder das explizite Exportieren in txt hatte irgendwie noch keine Auswirkung auf das Format (oder den Mangel daran) der 10% -Daten, die sich einfach in ihrer Ecke befanden und sich weigerten, sich zu verhalten.

Die einzige Möglichkeit, das Problem zu beheben, bestand darin, eine leere Spalte rechts von der Spalte für das fehlerhafte Datum einzufügen und die folgende, eher vereinfachte Formel zu verwenden:

(unter der Annahme, dass Ihre Daten fehlerhaft sind Column D)

=IF(MID(D2,3,1)="-",DATEVALUE(TEXT(CONCATENATE(RIGHT(D2,4),"-",LEFT(D2,5)),"YYYY-MM-DD")),DATEVALUE(TEXT(D2,"YYYY-MM-DD")))

Ich konnte dann die Ergebnisse in meine neue berechnete Spalte über die fehlerhaften Daten kopieren, indem ich "Werte" einfügte. Danach konnte ich meine berechnete Spalte löschen.

Lucster
quelle
3

Dies ist möglicherweise für den ursprünglichen Fragesteller nicht relevant, kann jedoch jemand anderem helfen, der eine Spalte mit Datumsangaben nicht sortieren kann.

Ich habe festgestellt, dass Excel keine Datenspalte vor 1900 erkennt, sondern darauf besteht, dass es sich um eine Textspalte handelt (da der 1.1.1900 das numerische Äquivalent 1 hat und negative Zahlen anscheinend nicht zulässig sind). Also habe ich alle meine Daten (die in den 1800er Jahren lagen) generell ersetzt, um sie in die 1900er Jahre zu verschieben, z. B. 180 -> 190, 181 -> 191 usw. Der Sortiervorgang funktionierte dann einwandfrei. Zum Schluss habe ich einen Umkehrschluss gemacht, zB 190 -> 180.

Ich hoffe, das hilft einem anderen Historiker da draußen.

Laurie Allen
quelle
2

Es scheint, dass Excel Ihre Daten nicht als Datum erkennt, sondern als Text. Daher erhalten Sie die Sortieroptionen von A bis Z. Wenn Sie es richtig machen, sollten Sie Folgendes erhalten:

http://i.stack.imgur.com/Qb4Pj.png

Daher ist es wichtig, dass Excel das Datum erkennt. Am einfachsten geht das mit der Verknüpfung CTRL+SHIFT+3.

Hier ist, was ich mit Ihren Daten gemacht habe. Ich habe es einfach von deinem Beitrag oben kopiert und in Excel eingefügt. Dann habe ich die obige Verknüpfung angewendet und die erforderliche Sortieroption erhalten. Überprüfen Sie das Bild.

http://i.stack.imgur.com/yAa6a.png

Kettensäge
quelle
2
Leider funktioniert diese Verknüpfung bei mir nicht.
Patrick
Was macht die Verknüpfung in Ihrem System Patrick.
Firee
3
Die Verknüpfung scheint überhaupt nichts zu tun. Unter Office 2007, 2010 und 2013 stehen mehrere Systeme zur Verfügung, von denen keines auf die Tastenkombination STRG UMSCHALT 3 reagiert. STRG 1 öffnet den Dialog "Zelle formatieren" korrekt.
Patrick
Die Strg + Umschalt + 3 Tastenkombination, referenziert etwas nachlässig als „Strg + Shift + #“ hier bedeutet „Gilt das Datumsformat mit dem Tag, Monat und Jahr.“ In Excel 2007, 2010, 2013 und 2016. (Spezifisch In meinem Excel 2013 ist es "d-mmm-yy".) Das Microsoft-Dokument erklärt nicht, dass die Zellen bereits enthalten müssen ... (Fortsetzung)
Scott
(Fortsetzung) ... Werte , dass Excel erkennt als Datum / Zeit - Daten, und es scheint , als ob niemand hier hat eindeutig erklärt , dass, da Patrick in England ist, seine Version von Excel Strings wie erkennen 04/08/2012, 04/09/2009und 04/01/2010als 4-Aug-2012 , 4. September 2009 bzw. 4. Januar 2010 und wird 04/21/2011als Textzeichenfolge behandelt (da es keinen 21. Monat gibt). Da es sich bei einigen Werten um Text handelt (und einige Werte vermutlich falsch interpretiert wurden), kann die Formatierung (z. B. mit der Tastenkombination Strg + Umschalt + 3) nichts bewirken.
Scott
2

Ich würde vermuten, dass Excel das Format nicht verstehen kann ... Obwohl Sie das Datumsformat auswählen, bleibt es als Text erhalten.

Sie können dies einfach testen: Wenn Sie versuchen, das Datumsformat zu aktualisieren, wählen Sie die Spalte aus und klicken Sie mit der rechten Maustaste darauf. Wählen Sie dann die Option 2001-03-14 (am Ende der Liste). Überprüfen Sie dann das Format Ihrer Zellen.

Ich vermute, dass nur einige der Datumsformate korrekt aktualisiert werden, was darauf hinweist, dass Excel sie immer noch wie eine Zeichenfolge und nicht wie ein Datum behandelt (beachten Sie die verschiedenen Formate im folgenden Screenshot)!

Bildbeschreibung hier eingeben

Hierfür gibt es Workarounds, von denen jedoch keine automatisiert wird, da Sie jedes Mal exportieren. Ich würde die Verwendung von VBa vorschlagen, bei der Sie einfach ein Makro ausführen können, das das Datumsformat von US nach UK konvertiert. Dies würde jedoch bedeuten, dass Sie die VBa jedes Mal kopieren und in Ihr Arbeitsblatt einfügen.

Alternativ erstellen Sie ein Excel, das die neu erstellten exportierten Excel-Tabellen (aus Exchange) liest, und führen dann die VBa aus, um das Datumsformat für Sie zu aktualisieren. Ich gehe davon aus, dass die exportierte Exchange Excel-Datei immer den gleichen Dateinamen / das gleiche Verzeichnis hat und ein funktionierendes Beispiel liefert:

Erstellen Sie daher eine neue Excel-Tabelle mit dem Namen ImportedData.xlsm (Excel aktiviert). In diese Datei wird die exportierte Exchange Excel-Datei importiert!

Fügen Sie diese VBa der Datei ImportedData.xlsm hinzu

Sub DoTheCopyBit()

Dim dateCol As String
dateCol = "A"        'UPDATE ME TO THE COLUMN OF THE DATE COLUMN

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

directory = "C:\Users\Dave\Desktop\"                   'UPDATE ME
fileName = Dir(directory & "ExportedExcel.xlsx")       'UPDATE ME (this is the Exchange exported file location)

Do While fileName <> ""

'MAKE SURE THE EXPORTED FILE IS OPEN
Workbooks.Open (directory & fileName)

Workbooks(fileName).Worksheets("Sheet1").Copy _

Workbooks(fileName).Close

fileName = Dir()

Loop

Application.ScreenUpdating = True
Application.DisplayAlerts = True

Dim row As Integer
row = 1
Dim i As Integer
Do While (Range(dateCol & row).Value <> "")

     Dim splitty() As String
     splitty = Split(Range(dateCol & row).Value, "/")
     Range(dateCol & row).NumberFormat = "@"
     Range(dateCol & row).Value = splitty(2) + "/" + splitty(0) + "/" + splitty(1)
     Range(dateCol & row).NumberFormat = "yyyy-mm-dd"
     row = row + 1
Loop


End Sub

Außerdem habe ich das Datumsformat auf jjjj-mm-tt aktualisiert, da es auf diese Weise immer noch funktioniert, auch wenn Excel den Sortierfilter AZ anstelle der neuesten Werte enthält!

Ich bin mir sicher, dass der obige Code Fehler enthält, aber ich habe offensichtlich keine Ahnung, welche Art von Daten Sie haben, aber ich habe es mit einer einzelnen Datenspalte (wie Sie) getestet und es funktioniert gut für mich!

Wie füge ich VBA in MS Office hinzu?

Dave
quelle
Naja ... ich werde das für ein paar Tage stehen lassen, um es ein bisschen genauer zu belichten, aber das sieht nach einer soliden Antwort aus. Das ist absolut verrückt, ich kann nicht glauben, dass das nötig ist. Da ich die Daten an der Quelle mit einer kleinen Funktion in Powershell korrigiert habe, um sie in das ISO-Format umzudrehen, ist es mir egal, ob Excel sie als Datum erkennt: /
Patrick
1

Ich habe es herausgefunden!

Am Anfang und am Ende des Datums befindet sich ein Leerzeichen.

  1. Wenn Sie Suchen und Ersetzen verwenden und die Leertaste drücken, wird dies NICHT funktionieren.
  2. Sie müssen rechts vor der Monatszahl klicken, die Umschalttaste und den Pfeil nach links drücken, um auszuwählen und zu kopieren. Manchmal müssen Sie die Maus verwenden, um den Raum auszuwählen.
  3. Fügen Sie dies dann als Leerzeichen in Suchen und Ersetzen ein, und alle Ihre Daten werden zu Daten.
  4. Wenn Leerzeichen und Datum vorhanden sind Wählen Sie Daten> Gehe zu Daten> Text in Spalten> Getrennt> Leerzeichen als Trennzeichen und beenden Sie den Vorgang.
  5. Alle Leerzeichen werden entfernt.
JailDoctor
quelle
Der Grund, warum das Suchen und Ersetzen mit der Leertaste nicht funktioniert, ist, dass die Lücke höchstwahrscheinlich ein Tabulator ist.
Patrick
0

Wenn Excel es hartnäckig ablehnt, Ihre Spalte als Datum zu erkennen, ersetzen Sie sie durch eine andere:

  • Fügen Sie rechts neben der alten Spalte eine neue Spalte hinzu
  • Klicken Sie mit der rechten Maustaste auf die neue Spalte und wählen Sie Format
  • Stellen Sie das Format auf date
  • Markieren Sie die gesamte alte Spalte und kopieren Sie sie
  • Markieren Sie die oberste Zelle der neuen Spalte und wählen Sie Paste Specialund fügen Sie sie nur einvalues
  • Sie können jetzt die alte Spalte entfernen.
Harrymc
quelle
Ich habe das ausprobiert, es verhält sich genauso mit der neuen Spalte. Siehe Daves Antwort, die Bildschirmkappe oben ist das, was ich bekomme, egal wie oft ich es zwischen den Spalten verschiebe.
Patrick
Versuchen Sie, das Problem mithilfe der Funktion DATEVALUE (alte Spalte) in der Formel in der neuen Spalte zu erzwingen, und wählen Sie dann in der Dropdown-Liste Zahlenformatierung in der Multifunktionsleiste Start die Option Kurzes / Langes Datum aus.
Harrymc
0

Ich habe einfach die Nummer 1 (eins) kopiert und mit der Funktion PASTE SPECIAL in die Datumsspalte (Daten) multipliziert. Es ändert sich dann in Allgemeines Formatieren, dh 42102. Dann wird Datum auf das Formatieren angewendet und es wird jetzt als Datum erkannt.

Hoffe das hilft

Mpho Sehlako
quelle
0

Alle oben genannten Lösungen - einschließlich r0berts - waren erfolglos, stellten jedoch fest, dass diese bizarre Lösung sich als die schnellste Lösung herausstellte.

Ich habe versucht, "Daten" in einer heruntergeladenen Tabelle mit Kontotransaktionen zu sortieren.

Dies wurde über den CHROME-Browser heruntergeladen. Keine Manipulation der "Daten" würde sie als von alt nach neu sortierbar erkennen lassen.

Aber dann habe ich über den Browser INTERNET EXPLORER heruntergeladen - erstaunlich - ich konnte sofort sortieren, ohne eine Spalte zu berühren.

Ich kann nicht erklären, warum verschiedene Browser die Formatierung von Daten beeinflussen, außer dass dies eindeutig der Fall war und eine sehr schnelle Lösung war.

Ros
quelle
0

Meine Lösung in Großbritannien - ich hatte meine Daten mit Punkten wie folgt:

03.01.17

Ich habe das mit folgendem gelöst:

  1. Markieren Sie die gesamte Spalte.
  2. Zum Suchen und Auswählen / Ersetzen gehen.
  3. Ich habe alle Punkte durch Mittelstrich ersetzt, zB 03.01.17 03-01-17.
  4. Halten Sie die Spalte markiert.
  5. Zellen formatieren, Datum auf der Registerkarte "Nummer" auswählen.
  6. Verwenden Sie den Typ 14-03-12(wichtig für meinen, um den mittleren Strich zu haben)
  7. Gebietsschema Englisch (Großbritannien)

Beim Sortieren der Spalte werden alle Daten für das Jahr sortiert.

Charlie
quelle
0

Ich habe die verschiedenen Vorschläge ausprobiert, aber die einfachste Lösung für mich war wie folgt ...

Beispiel siehe Bilder 1 und 2 ... (Hinweis: Einige Felder wurden absichtlich ausgeblendet, da sie nicht zum Beispiel beitragen). Ich hoffe das hilft...

  1. Feld C - ein gemischtes Format, das mich total verrückt gemacht hat. Auf diese Weise kamen die Daten direkt aus der Datenbank und hatten keine zusätzlichen Leerzeichen oder verrückten Zeichen. Wenn es beispielsweise als Text angezeigt wird, wird der 01.01.2016 als Wert vom Typ '42504' angezeigt, gemischt mit dem 15.04.2006, der so angezeigt wird, wie er ist.

  2. Feld F - wo ich die Länge von Feld C erhalten habe (die LEN-Formel würde eine Länge von 5 von 10 sein, abhängig vom Datumsformat). Das Feld hat der Einfachheit halber das allgemeine Format.

  3. Feld G - Ermitteln der Monatskomponente des gemischten Datums - Basierend auf dem Längenergebnis in Feld F (5 oder 10) erhalte ich entweder den Monat aus dem Datumswert in Feld C oder erhalte die Monatszeichen in der Zeichenfolge.

  4. Feld H - Ermitteln der Tageskomponente des gemischten Datums - Basierend auf dem Längenergebnis in Feld F (5 oder 10) ermittle ich den Tag entweder aus dem Datumswert in Feld C oder ermittle die Tageszeichen in der Zeichenfolge.

Ich kann dies auch für das Jahr tun und dann aus den drei Komponenten ein Datum erstellen, das konsistent ist. Ansonsten kann ich in meiner Analyse die einzelnen Werte für Tag, Monat und Jahr verwenden.

Bild 1: Grundlegende Tabelle mit Werten und Feldnamen

Bild 2: Tabelle mit Formeln, die der obigen Erläuterung entsprechen

Ich hoffe das hilft.

Eran
quelle
(1) Während es hilfreich ist, ein Bildschirmbild zu veröffentlichen, um zu demonstrieren, dass Ihre Antwort tatsächlich funktioniert, bevorzugen wir, dass die Formeln in Ihrer Lösung als Text in den Textkörper Ihrer Antwort eingefügt werden, damit die Benutzer sie kopieren und einfügen können. (2) Sie scheinen das Problem zu verstehen - dass numerische Daten 04/08mehrdeutig sind. 04/08wird in einigen Ländern (wie den Vereinigten Staaten) als 8. April und in anderen (wie England) als 4. August interpretiert. Diese sind jedoch genau deshalb nicht eindeutig, weil die Monatszahl und der Tag des Monats unterschiedlich sind. … (Fortsetzung)
Scott
(Fortsetzung) ... Also , warum würden Sie un  zweideutig Daten wie 01/01in Ihrer Antwort? (3) Eigentlich bin ich mir nicht sicher, ob Sie das Problem verstehen oder ob Ihre Antwort tatsächlich funktioniert, da Ihr Blatt Zeilen enthält, in denen der Monat 15 ist. das scheint ein offensichtlicher Fehler zu sein. Und da dies 04/15eindeutig ist - es muss der 15. April sein - macht es keinen Sinn, dass Ihre Methode 01/11den 1. Tag des 11. Monats analysiert . … (Fortsetzung)
Scott
(Fortsetzung)… (4) Es sollte darauf hingewiesen werden, dass Sie im besten Fall nur Daten beantworten, die wie nn / nn / nnnn aussehen . Es wird auf Termine nicht wie 5/8, 5/08, 5/28, 05/8, und 11/8. Außerdem - eine lustige Tatsache - schlägt Ihre Antwort an Daten ≤ 17. Mai 1927 und ≥ 17. Oktober 2173 fehl. wir könnten in 154 Jahren anfangen, Probleme zu haben! (5) Sie sagen: „Ich kann dies auch für das Jahr tun und dann aus den drei Komponenten ein Datum erstellen, das konsistent ist.“ Warum also nicht und es zeigen ? … (Fortsetzung)
Scott
(Fortsetzung)… Es ist besonders schwierig zu überprüfen, ob Ihre Methode funktioniert, wenn Sie eine unvollständige Version vorlegen. Eine, bei der Monat, Tag und Jahr nicht zu einem Datum zusammengesetzt werden. (6) Wie ich Patsaeed sagte , wäre es schön gewesen, wenn Sie die Daten des OP aus der Frage verwendet hätten, anstatt Ihre eigenen Daten zu erstellen. Wenn Sie die Daten des OP nicht verwenden, wäre es vielleicht schön gewesen, wenn Sie Patsaeeds verwendet hätten, damit wir zumindest Äpfel mit Äpfeln vergleichen können. … (Fortsetzung)
Scott
(Fortsetzung)… Und unabhängig davon, ob Sie die Daten des OP oder die anderer Personen verwenden, wäre es schön gewesen, wenn Sie die ursprünglichen Eingaben für Ihr Szenario gezeigt hätten. (Zum Beispiel für Zeile 7, 01/11/2016oder  11/01/2016?) Und wenn Sie Ihre eigenen Daten verwenden möchten, wäre es schön gewesen, wenn Sie Daten aus demselben Monat eingefügt hätten, die (zum Beispiel) zeigen, wie 1/11und wie mit diesen 1/21umgegangen wird anders. Und warum doppelte Daten? Sie haben 19 Zeilen verschwendet, indem Sie dieselben vier Werte mehrmals verwendet haben, verteilt auf 23 Zeilen.
Scott
0

TEILEN EINER KLEINEN LANGEN, ABER VIEL EINFACHEREN LÖSUNG ..... Keine Notwendigkeit, Makros oder geeky Sachen auszuführen .... einfache MS Excel-Formeln und Bearbeitung.

gemischte Daten Excel-Schnappschuss:

Bildbeschreibung hier eingeben

  • Das Datum liegt im gemischten Format vor.
  • Um ein symmetrisches Datumsformat zu erstellen, wurden zusätzliche Spalten erstellt, in denen diese Datumsspalte im gemischten Format in TEXT konvertiert wird.
  • Aus diesem Text haben wir die Positionen von "/" identifiziert und der mittlere Text wurde extrahiert, wobei Datum, Monat und Jahr mit der MID-Formel bestimmt wurden.
  • Diejenigen, die ursprünglich Daten waren, Formel endete mit FEHLER / #VALUEErgebnis. - Schließlich haben wir aus der von uns erstellten Zeichenfolge die Datumsangaben nach DATE-Formel konvertiert.
  • #VALUE wurden ausgewählt, wie es von IFERROR zur DATE-Formel hinzugefügt wurde, und die Spalte wurde wie erforderlich formatiert (hier TT / MM / JJ)

* VERWEISEN SIE AUF DEN SCHNAPPSCHUSS DES OBIGEN EXCEL-BLATTS (= gemischte Daten, Excel-Schnappschuss) *

Patsaeed
quelle
(1) Während es hilfreich ist, ein Bildschirmbild zu veröffentlichen, um zu demonstrieren, dass Ihre Antwort tatsächlich funktioniert, bevorzugen wir, dass die Formeln in Ihrer Lösung als Text in den Hauptteil Ihrer Antwort eingefügt werden, damit die Benutzer sie kopieren und einfügen können. (2) Ihre Formeln wie gezeigt in Ihrem Bild sind falsch, da sie in Spalten beziehen  V, Wund  Xwenn sie mit Bezug auf Spalten werden sollen  B, Cund  D. … (Fortsetzung)
Scott
(Fortsetzung)… (3) Es wäre schön gewesen, wenn Sie die Daten des OP aus der Frage verwendet hätten, anstatt sich Ihre eigenen zusammenzustellen. Unabhängig davon, ob Sie die Daten des OP oder Ihre eigenen verwenden, wäre es schön gewesen, wenn Sie die ursprüngliche Eingabe für Ihr Szenario gezeigt hätten (z. B. für Zeile 9 ist dies 5/8/2014oder  5/08/2014). Und wenn Sie Ihre eigenen Daten verwenden würden, wäre es schön gewesen, wenn Sie Daten aus demselben Monat einbezogen hätten, um (zum Beispiel) zu demonstrieren, wie 5/8und wie 5/28unterschiedlich gehandelt wird. Und warum doppelte Daten? Sie haben sechs Zeilen verschwendet, indem Sie dieselben Werte mehr als einmal verwendet haben.
Scott
0

Dies geschieht immer dann, wenn Datumsdaten zwischen Gebietsschemas in Excel ausgetauscht werden. Wenn Sie die Kontrolle über das VBA-Programm haben, das die Daten exportiert, empfehle ich, anstelle des Datums selbst die Nummer zu exportieren, die das Datum darstellt. Die Nummer korreliert eindeutig mit einem einzelnen Datum, unabhängig von Formatierung und Gebietsschema. Beispielsweise wird anstelle der CSV-Datei, die den 24.09.2010 anzeigt, 40445 angezeigt.

Konvertieren Sie in der Exportschleife, wenn Sie jede Zelle halten, wenn es sich um ein Datum handelt, mit CLng (myDateValue) in eine Zahl. Dies ist ein Beispiel für meine Schleife, die alle Zeilen einer Tabelle durchläuft und in eine CSV-Datei exportiert.

arr = Worksheets(strSheetName).Range(strTableName & "[#Data]").Value

    For i = LBound(arr, 1) To UBound(arr, 1)
        strLine = ""
        For j = LBound(arr, 2) To UBound(arr, 2) - 1
            varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
            strLine = strLine & varCurrentValue & ","
        Next j
        'Last column - not adding comma
        varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
        strLine = strLine & varCurrentValue

        strLine = Replace(strLine, vbCrLf, "<vbCrLf>") 'replace all vbCrLf with tag - to avoid new line in output file
        strLine = Replace(strLine, vbLf, "<vbLf>") 'replace all vbLf with tag - to avoid new line in output file
        Print #intFileHandle, strLine
    Next i
Mor Sagmon
quelle
0

Mit all den oben genannten Vorschlägen hatte ich kein Glück - ich hatte eine sehr einfache Lösung, die wie ein Zauber wirkt. Fügen Sie die Daten in Google Sheets ein, markieren Sie die Datumsspalte, klicken Sie auf Format, dann auf Nummer und erneut auf Nummer, um sie in das Zahlenformat zu ändern. Anschließend kopiere ich die Daten und füge sie in die Excel-Tabelle ein, klicke auf die Daten und formatiere die Zellen nach Datum. Sehr schnell. Hoffe das hilft.

Mike
quelle
0

Dieses Problem hat mich verrückt gemacht, und dann bin ich auf eine einfache Lösung gestoßen. Zumindest funktionierte es für meine Daten. Es ist leicht zu tun und sich zu erinnern. Aber ich weiß nicht, warum das funktioniert, aber das Ändern der Typen, wie oben angegeben, funktioniert nicht. 1. Wählen Sie die Spalte (n) mit den Datumsangaben aus. 2. Suchen Sie in Ihren Datumsangaben nach einem Jahr, z. B. 2015. Wählen Sie Alle durch dasselbe Jahr ersetzen, 2015. 3. Wiederholen Sie dies für jedes Jahr. Dadurch werden die Typen von Jahr zu Jahr in tatsächliche Daten geändert.
Dies ist immer noch umständlich, wenn Sie viele Jahre in Ihren Daten haben. Schneller ist es, 201 zu suchen und durch 201 zu ersetzen (um 2010 bis 2019 zu ersetzen); ersetzen Sie 200 durch 200 (um 2000 durch 2009 zu ersetzen); und so weiter.

Wally
quelle
0

Wählen Sie Daten aus und führen Sie diesen Code darüber aus.

On Error Resume Next
    For Each xcell In Selection            
        xcell.Value = CDate(xcell.Value)     
    Next xcell                              
End Sub
Kathryn
quelle
-1

Ich benutze einen Mac.

Gehen Sie zu Excel-Einstellungen> Bearbeiten> Datumsoptionen> Datumssystem automatisch konvertieren

Ebenfalls,

Gehen Sie zu Tabellen und Filter> Gruppendaten beim Filtern.

Das Problem begann wahrscheinlich, als Sie eine Datei mit einem anderen Datumssystem erhalten haben und dies Ihre Excel-Datumsfunktion gestört hat

Stephenie
quelle
-2

Ich erstelle normalerweise nur eine zusätzliche Spalte, um sie zu sortieren oder zu summieren year(a1)&if len(month(a1))=1,),"")&month(a1)&day(a1).

yyyymmddDies liefert ein Ergebnis, das sortiert werden kann. Bei Verwendung von len(a1)just kann für die Monate 1 bis 9 eine zusätzliche Null hinzugefügt werden.

Paul
quelle
2
Dies hilft nicht weiter, da die Daten nicht als Daten erkannt werden. Außerdem ist die Verwendung zusätzlicher Spalten für Sortierzwecke selten erforderlich
CallumDA