Office: Sortieren mit Datum

Helfe beim Thema Sortieren mit Datum in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe ein Problem mit meiner Sortierroutine. Ich möchte meine Tabelle nach zwei Kriterien sortieren (1. Kriterium = Name, 2.... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von AndreasDomme, 10. Juli 2011.

  1. Sortieren mit Datum


    Hallo zusammen,

    ich habe ein Problem mit meiner Sortierroutine. Ich möchte meine Tabelle nach zwei Kriterien sortieren (1. Kriterium = Name, 2. Kriterium = Datum). Eigentlich funktioniert meine Routine ganz gut - bis auf die Tatsache, dass beim zweiten Kriterium "Datum" lediglich nach dem Tag sortiert wird. Was habe ich da falsch gemacht?
    Ich habe mir schon verschiedene andere Listings aufgerufen und danach versucht - hat alles nicht geklappt.

    Hier mein Listing:

    Code:
    Also Schlüssel1 (Spalte C) ist der Nachname der zuerst sortiert wird. Anschließend folgt Schlüssel2 (Spalte H) - entspricht meinem Datum - sortiert leider nur nach Tagen. Die Spalten sind entsprechend formatiert nach Text bzw. Datum.

    Vielleicht kann mir da mal einer auf die Sprünge helfen*tongue.gif*

    Bis dahin

    Andreas

    :)
     
    AndreasDomme, 10. Juli 2011
    #1
  2. Hallo Andreas,

    immer noch "Selects" im Code? Den Tipp, diese wegzulassen (mit Literaturangaben) hatten wir ja schon mindestens einmal, das wiederhole ich nicht. (Dozenten, die lernresistent sind? Bist Du bei Deinen "Schülern" auch so nachsichtig? *biggrin.gif*)

    Ein Datum ist nicht immer ein Datum, das Format der Zelle spielt dabei nur eine untergeordnete Rolle. Wird nach den ersten Ziffern sortiert, kannst Du mit Sicherheit davon ausgehen, dass Excel das, was in der Zelle steht, nicht als Datum erkennt.

    Nutze z. B. Daten|Text in Spalten auf die Datumsspalte, um richtige Datumswerte zu erhalten.

    Grüße
    EarlFred
     
    EarlFred, 12. Juli 2011
    #2
  3. Hallo EarlFred,

    ich glaube, bei Dir muß ich mich ab und zu ducken - Du triffst ganz gut und Dein Gedächtnis ist auch nicht von schlechten Eltern!!*rolleyes.gif* .
    Aber zurück zum Problem. Ich habe Deinen Vorschlag nicht ganz verstanden, muß ich leider gestehen. Kannst Du mir das mal näher erläutern - wäre sehr nett von Dir?!

    Übrigens ganz unfruchtbar ist mein Boden auch nicht - ich habe schon etliche Bereiche meines Tools abgeändert. Hier habe ich erst einmal einfach einen Versuch aus einem "Fachbeitrag" übernommen und entsprechend angepasst um die Funktion zu testen.

    Also bis dahin

    Andreas
     
    AndreasDomme, 12. Juli 2011
    #3
  4. Sortieren mit Datum

    Hallo Andreas,

    ja, ich kann ein pedantisches Ekel sein, aber ich kann gut damit leben *biggrin.gif*

    Also: Datum. Trägst Du ein Datum von Hand in eine Zelle ein (in einem Format, das Excel erkennt, also z. B. "11.05.2011"), so wird es von Excel automatisch in ein "richtiges" Datum gewandelt. Ein "richtiges" Datum ist für Excel eine Zahl, beginnend ab dem 01.01.1900. "Heute" ist für Excel der 40736. Tag danach. Das Format der Zelle bestimmt nur, wie diese Zahl für den Betrachter dargestellt wird. Entweder TT.MM.JJJJ oder TT.MM.JJ oder oder.

    Oft kommen Datumswerte durch den Export / Import in die Tabelle, wobei übersehen wird, gleich mit anzugeben, dass Spalte x Datumswerte enthält. Diese sind für Excel dann (meist) ein Text, mit dem es nichts anderes anzufangen weiß, als ihn alphabetisch zu sortieren - das hängt von der Art der bereitgestellten Daten und der Art des Imports ab. Der 01.08.2015 liegt dann also vor dem 25.01.1950, denn "01" als Text ist eben kleiner als der Text "25", denn die 0 kommt ja im (um Zahlen erweiterten) "Alphabet" vor der 2.

    Schnelle Möglichkeiten, um zu testen, ob das, was wie ein Datum aussieht, für Excel auch ein Datum ist, wäre z. B.
    Code:
    WAHR sagt, dass Excel ein Datum erkannt hat, FALSCH, dass es das Datum eben nicht erkannt hat.
    Auch kannst Du mal das Format des Datums ändern: Sieht es hinterher gleich aus (oder stimmt mit dem bereits vorgegebenen Format nicht überein), so ist es mit Sicherheit kein "Datum".

    Gehst Du in den Bearbeitungsmodus einer Zelle (F2) und bestätigst gleich wieder mit Enter, so wandelt Excel den Text in ein Datum um. Das ist bei vielen Einträgen mehr als lästig. Auch gibt es Datumsumwandlungsfunktionen, die Du anwenden kannst (=Datwert(A1)).
    Die schnellste und einfachste Methode ist es aber, alles vermeintlichen Datumstexte zu markieren, Daten|Text in Spalten zu verwenden, so dass alle Werte "in einem Rutsch" geändert werden.
    Am besten ist es aber, von vornherein bereits beim Import mitzuteilen, wo Excel mit Datumswerten zu rechnen hat.

    Lies mal den Link in meiner Signatur - hier hat sich Chris mal die Mühe gemacht, das Thema "Datum und Uhrzeit" aufzubereiten.

    Grüße
    EarlFred
     
    EarlFred, 12. Juli 2011
    #4
  5. Hallo EarlFred,

    was ich an der ganzen sache nicht verstehe, ist die Tatsache, dass die Sortierung der Spalte nach Datum 100%ig funktioniert, wenn ich das Ganze zu Fuss mache, sprich die Spalte auswähle und schlicht und einfach dann über die Sortierfunktion (Excel2007) alle Daten sortiere. Wo ist da der Unterschied zu dem Weg über VBA?

    Bis dahin

    Andreas
     
    AndreasDomme, 12. Juli 2011
    #5
  6. Hallo Andreas,

    sag mir, wie MS die Sortierung programmiert hat und ich sage Dir, warum es nicht geht *wink.gif*
    Möglicherweise liegt's daran, dass VBA "englisch" denkt, denn das Datumsformat "25-Oct-01" wird beispielsweise korrekt über VBA sortiert.

    Sieh einfach zu, dass ein Datum auch für Excel als Datumswert erkannt wird, dann solltest Du (auch in anderen Bereichen) keine Probleme mehr haben.

    Grüße
    EarlFred
     
    EarlFred, 12. Juli 2011
    #6
  7. Hallo EarlFred, hallo alle Anderen,

    habe jetzt einfach mal ein Makro aufgezeichnet und mit meinem mir zur Verfügung stehenden Wissen auf meinen Fall zugeschnitten - und siehe da - es funktioniert genau so, wie ich es möchte.*tongue.gif*

    P.S. Habe auch an deine "Activates" und "Selects" gedacht.

    Ich stelle das Listing mal rein - vielleicht ist ja doch noch das Eine oder Andere zu verbessern.

    Listing:

    Code:
     
    AndreasDomme, 12. Juli 2011
    #7
  8. Sortieren mit Datum

    Hallo Andreas,

    das klappt aber erst ab Excel 2007. Soll die Tabelle abwärts kompatibel sein (wie ich aus dem von Dir geposteten Code interpretiert habe), haut's nicht hin.

    Grüße
    EarlFred
     
    EarlFred, 12. Juli 2011
    #8
  9. Hallo EarlFred, Hallo zusammen,

    wie "immer" hattest Du natürlich recht*wink.gif* - habe schnell eine "alte" Version Excel2003 zugezogen und siehe da, jetzt stehe ich wieder da, wo ich am Anfang war.

    Aber Folgendes leuchtet mir trotz aller Erklärungen nicht ein!

    Ich habe jetzt mal mit Excel2003 zwei Makros aufgezeichnet:

    1) Mit zwei Sortierkriterien ( Name und dann Datum) und schon hatte ich das bekannte Problem wieder.

    2) Mit einem Sortierkriterium( nur das Datum) und es wurde Alles bis zum Schluß korrekt durchsortiert.

    Übrigens die verwendete Tabelle ist bei allen Versuchen gleich (Excel2003, 2007) - einmal funktioniert es wunderbar, einmal wird gestreikt.

    Hier mal meine beiden aufgezeichneten Makros mit 2003.

    1. Makro

    Code:
    2. Makro

    Code:
    Das kann doch nicht an einer falschen Formatierung liegen - oder.

    Vielleicht hat ja jemand noch eine zündende Idee *frown.gif*


    Bis dahin

    Andreas
     
    AndreasDomme, 13. Juli 2011
    #9
  10. Hallo Andreas,

    Würdest Du einfach mal umsetzen, was ich Dir geraten habe, könnten wir uns diese langweilige Diskussion sparen.

    Was soll ich noch alles schreiben, damit es sich bei Dir einpflanzt?

    Ohne GENAU zu wissen, wie es nun in Deiner Tabelle aussieht, glaube ich Dir das nicht. Ich konnte unter meinen Annahmen, wie es bei Dir aussehen KÖNNTE diese These nicht beweisen. Unter welchen Bedingungen es funktioniert: Siehe vor, habe ich beschrieben.

    Mach ein Datum aus dem Datum und alles ist gut. 45000 ist in allen Versionen < 46000. Das muss Dir doch mal einleuchten.

    Zündende Idee für was? Um ein unerkanntes "Datum" als nutzlose Information in der Tabelle belassen? Oder willst Du mit den Daten auch was anfangen?

    Naja, mach wie Du denkst - ich habe keine Lust mehr, gegen verschlossene Türen zu rennen.

    Grüße
    EarlFred
     
    EarlFred, 13. Juli 2011
    #10
  11. Hallo EarlFred,

    nochmal - ich möchte hier niemanden verscheissern oder auf die Probe stellen. Mit meinem mir eigenem Excel-Wissen und nach bestem Wissen und Gewissen habe ich genau die Tabelle, die ich in Ecxel2007 mit dem dazugehörigen Makro (aufgezeichnet mit 2007) verwendet habe und bei der die Sortierung wunderbar funktioniert, mit Excel2003 geöffnet und anschließend die beiden oben beschriebenen Makros aufgezeichnet. Und wie ich schon geschrieben habe - wenn ich das Makro mit nur einem Kriterium laufen lasse, sortiert es mir die ganze Spalte mit den Daten korrekt durch. Nehme ich aber mein makro mit den beiden Sortierkriterien, sortiert es mir ordentlich nach name und dann dazugehörig aufsteigend nach den Tagen (unabhängig von Monat und Jahr).
    Ich habe Deinen Hinweis darauf, es könne dann eigentlich nur am falschen Format liegen, schon richtig interprätiert und würde das ganze auch so sehen, daß hier sortiert wird wie beim Alphabet.

    Aber sei es drum - ich werde noch ein bischen rumexperimentieren, vielleicht kommt ja irgend wann der zündende Funke (Gedanke)

    Bis dahin

    Andreas
     
    AndreasDomme, 13. Juli 2011
    #11
  12. Hallo nochmal,

    ich habe jetzt mal folgende Routine geschrieben, um die Spalte auf ihr Format zu überprüfen - sollte ich da einen Denkfehler begangen haben, bitte ich um Hilfestellung.

    Code:
    Ich habe so ziemlich in der Mitte der Spalte mal anstelle eines Datum einen Text geschrieben und habe dort promt wie erwartet den Hinweis bekommen "Kein Datum". Alle anderen datumseinträge sind stehen geblieben!

    Müßte ich jetzt noch anders vorgehen, um meine Spalte auf die Richtigkeit von Datumsinhalten zu überprüfen?

    Bis dahin

    Andreas
     
    AndreasDomme, 13. Juli 2011
    #12
  13. Sortieren mit Datum

    Hallo Andreas,

    IsDate prüft, ob ein Zellwert als Datum interpretiert und in ein solches umgewandelt werden kann, aber nicht, ob es ein Datum im Sinne meiner vorhergehenden Romane ist.
    Wenn Du prüfen willst, ob das Datum ein Datumswert in diesem Sinne ist, nimm die Arbeitsblattfunktion "=Istzahl()"

    In welcher Struktur leigen die Datumsangaben vor? Ich meine wirklich die Eingabestruktur, NICHT die Zellformatierung.
    Also: "25.03.2011" oder "05. März 2010" oder oder

    Grüße
    EarlFred
     
    EarlFred, 13. Juli 2011
    #13
  14. Hallo EarlFred,

    hast mich noch nicht ganz aufgegeben?

    Also: Der Datumseintrag ist wie folgt - 13.07.2011

    und meine Frage wäre noch: Wenn ich Deinen Vorschlag mit "Istzahl()" in VBA in eine Schleife zur Überprüfung der betreffenden Spalte wie oben beschrieben einbauen möchte, kann ich dann auch "IsNumeric" oder "IsNumber" verwenden und diese dann anstelle von IsDate in die Schleife zur Abfrage einbauen?

    Ich bin halt noch nicht weiter in Excel bzw. VBA

    Bis dahin

    Andreas
     
    AndreasDomme, 13. Juli 2011
    #14
  15. Hallo Andreas,

    was soll denn nun Zielstellung des ganzen sein? Willst Du die Texte in Datumswerte wandeln, oder nur prüfen und mit den Texten weitermachen?

    Wenn die Datumsangaben als TEXT der Form 13.07.2011 vorliegen, schafft es Dein Makro 2 nicht, diese sauber zu sortieren! Sortiert es sie richtig, müssen es DATUMSWERTE sein! Wie bitte hast Du das geschafft?

    Irgendwie ist das alles nix im Blindflug. Kannst Du nichtmal eine Beispieltabelle einstellen, damit die elendige Raterei ein Ende hat? Deine Tabelle, von allem anderen außer der Spalte mit den Datumswerten bereinigt, wäre wirklich hilfreich.

    [Ergänzung]
    Du fragtest ja, welche Funktion Du nehmen kannst:
    Wir sind wieder beim Problem, was für Excel ein Datum ist. Ähnlich IsDate prüft IsNumeric, ob der Ausdruck in eine Zahl gewandelt werden könnte. Könnte ein Text in ein Datum gewandelt werden, so kann er auch in eine Zahl gewandelt werden (wenn er noch kein gültiges Datum ist!), da ja das Datum für Excel eine Zahl ist. Ist der Ausdruck bereits ein gültiges Datum, kann er aber von IsNumeric nicht in eine Zahl gewandelt werden. Alles klar? *wink.gif*

    Die Arbeitsblattfunktion ISTZAHL hingegen stellt fest, ob der Wert eine Zahl IST (oder eben nicht) - unabhängig, ob er als "Zahl" oder "Datum" formatiert ist. Ist die "Zahl" / das "Datum" ein Text, ist das Ergebnis FALSCH. Für die Prüfung, ob ein "richtiges" Datum vorliegt, ist folglich NUR ISTZAHL (WorksheetFunction.IsNumber()) geeignet.
    Ergänzend: Wenn geprüft werden soll, ob das, was in der Zelle ist, ein "richtiges" Datum ist UND als solches formatiert ist, musst Du mit ISTZAHL UND IsDate kombiniert prüfen.
    Alle Klarheiten restlos beseitigt?
    [/Ergänzung]

    [Noch eine Ergänzung]
    Habe Dir fix was geschrieben:
    Code:
    Anwendung z. B. im Tabellenblatt mit Code:
    [/Ergänzung]

    Merkst Du jetzt langsam, welche unsagbaren Vorteile es mit sich bringt, wenn man das Datum einfach in ein ebensolches wandelt? (Geht mit ein paar wenigen Mausklicks - vor beschrieben - oder auch per VBA genauso leicht) *wink.gif* Auch die weiteren Berechnungen (neben dem Sortieren) gehen mit richtigen Datumswerten um Lägen leichter.

    Grüße
    EarlFred
     
    EarlFred, 13. Juli 2011
    #15
Thema:

Sortieren mit Datum

Die Seite wird geladen...
  1. Sortieren mit Datum - Similar Threads - Sortieren Datum

  2. Emails im Posteingang nach "von" UND "Datum" sortieren klappt nicht...

    in Microsoft Outlook Hilfe
    Emails im Posteingang nach "von" UND "Datum" sortieren klappt nicht...: Ich hätte gerne meine eingehenden Emails nach "von" aber auch nach dem Datum des Eingangs sortiert. Sobald ich aber nach "von" und dann noch nach "absteigend" oder auch "aufsteigend" sortieren...
  3. Excel 2016 Daten vom Datum abhängig anzeigen

    in Microsoft Excel Hilfe
    Excel 2016 Daten vom Datum abhängig anzeigen: Liebe Community, nach einer ersten Tabelle mit viel Unterstützung von Klaus-Dieter, vielen Dank hierfür noch mal, habe ich die Tabelle umstrukturiert und für andere Zwecke entfremdet....
  4. Numerisches Datum Wochentagen zuordnen

    in Microsoft Excel Hilfe
    Numerisches Datum Wochentagen zuordnen: Guten Morgen, ich hab mal wieder ein Problem bei dem ich nicht genau weiß wie ich es angehen soll. Ich habe eine Liste mit Aufträgen und den Zugehörigen Daten. Jetzt habe ich den Auftrag diese...
  5. Tabellenübersicht aus mehreren Tabellen nach Datum sortieren

    in Microsoft Excel Hilfe
    Tabellenübersicht aus mehreren Tabellen nach Datum sortieren: Hallo, ich habe eine Tabelle für die Autowartung erstellt und möchte nun eine Übersichtseite als "Deckblatt" erstellen auf dem man alle wichtigen Daten sehen kann. Es gibt für alles auf einem...
  6. Sortieren nach Datum

    in Microsoft Excel Tutorials
    Sortieren nach Datum: Sortieren nach Datum Excel 2013 Mehr... Weniger Wenn sich die Datumswerte in einem Arbeitsblatt...
  7. Daten in Listbox nach Datum sortieren

    in Microsoft Excel Hilfe
    Daten in Listbox nach Datum sortieren: Hallo, ich habe eine Listbox erstellt, die mit Daten aus einer Tabelle gespeist wird. Kann mir jemand einen Code schreiben, mit dem ich diese Daten nach Datum sortieren kann und diesen dann...
  8. Registerkarte Lists nach Datum sortieren

    in Microsoft Teams Hilfe
    Registerkarte Lists nach Datum sortieren: Hallo, ich habe in einem Kanal eine Registerkarte von "Lists" die ich nach Datum gruppiert habe. Ist es irgendwie möglich, dass bei dieser Liste immer die neuesten Einträge ganz oben angezeigt...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden