Sotaka: Excel - Datumsformat

Guten Tag!

Ich habe eine Frage zu einem Problem mit Excel (wie der Thread schon sagt :p) und zwar:
Wie wandelt man eine Zahleneingabe im Standartformat in ein Datumsformat um?

z.B. 160504 für 16.Mai.2004 in 16.05.04.

Danke schon einmal im Vorraus.

mfg
Sotaka

  1. Sotaka,

    z.B. 160504 für 16.Mai.2004 in 16.05.04.

    das Feld oder die Felder, in denen das Datum stehen soll, muss vorher oder nachher als Datumsfeld definiert werden. Ich habe gerade Linux eingeschaltet und kann's nicht nachschauen, aber das machst du am besten so, indem du alle Felder makierst und mit einem Rechtsklick die Eigenschaften der Felder in ein Datumsformat änderst.

    Ganz easy, versuchs mal :-)

    Mfg,
    Jonny

    1. Hi Jonny,
      wenn ich 160504 als Datum formatiere, dann kommt sowas wie: 11.06.39
       raus.
      Das kommt daher, da Excel diese Zahl direkt umwandelt, ausgehend (ich glaube vom 01.01.1900=1). damit kann man dann jeden Tag hochzählen.
      02.01.1900 = 2
      ....
      31.01.2005 = 38383

      So einfach isses leider nicht,
      Stefan

      1. So einfach isses leider nicht,

        jetzt bringst du mich aber zum grübeln. Irgendwie habe ich das immer so gemacht.

        Mfg,
        Jonny

        1. Das wäre echt gut,
          er gibt zwar ein Datum aus, aber eben nicht das was man will. Zumindest bei mir nicht, evtl. kann man das irgendwo so einstellen.
          Stefan

  2. Hi,
    ich habe folgende Krücke:
    16, 05, 2004 aufspalten (von a1 bis a3)dann folgende Formel
     =(A3&"/"&A2&"/"&A1)*1
    und als Datum formatieren
    Was besseres habe ichnoch nicht gefunden,
    Schöne grüsse
    Stefan

  3. Hallo!

    Wenn 160504 als Text formatiert in Zelle A1 steht:

    DATUM(VERKETTEN("20";RECHTS(A1;2));TEIL(A1;3;2);LINKS(A1;2))

    gilt natürlich nur vom 1.1.2000 bis zum 31.12.2099 ;-)

    mfg Alfie

    1. Hallo!

      Danke erstmal für die vielen Tipps!
      Der Tipp von alfie hat funktioniert.
      Es funktionert allerdings nur wenn die Monate und Tage zweistellig sind (ohne Null). In den anderen Fällen muss die Formel lauten:

      DATUM(VERKETTEN("20";RECHTS(A1;2));TEIL(A1;3;1);LINKS(A1;1)).

      Das "20" kann auch wegbleiben, dann funktioniert es auch mit Daten unter 2000 ;).

      Respekt!

      mfg
      Sotaka

      1. Ich nehme alles zurück!
        Es funktioniert doch immer und man darf die 20 natürlich NICHT entfernen.
        Man muss das Feld A1 allerdings wirklich als Text formatiert haben.

        mfg
        Sotaka

      2. Hallo Sotaka,

        Der Tipp von alfie hat funktioniert.
        Es funktionert allerdings nur wenn die Monate und Tage zweistellig sind (ohne Null). In den anderen Fällen muss die Formel lauten:

        Das ist in Deinem Fall erforderlich, denn

        DATUM(VERKETTEN("20";RECHTS(A1;2));TEIL(A1;3;1);LINKS(A1;1)).

        diese Formel passt nicht für alle Fälle.

        Was würdest Du mit

        11104

        anstellen? Ist dies nun der 1.11.04 oder der 11.1.04?
        Weitere Beispiele darfst Du Dir selbst ausdenken.

        Respekt!

        Hat alfie auch verdient.

        Freundliche Grüsse,

        Vinzenz

      3. Hallo!

        Der Tipp von alfie hat funktioniert.
        Es funktionert allerdings nur wenn die Monate und Tage zweistellig sind (ohne Null). In den anderen Fällen muss die Formel lauten:

        DATUM(VERKETTEN("20";RECHTS(A1;2));TEIL(A1;3;1);LINKS(A1;1)).

        Das "20" kann auch wegbleiben, dann funktioniert es auch mit Daten unter 2000 ;).

        Vorsicht!
        Deine Vorgabe waren 2-stellige Tage und Monate, wenn das nicht so ist, musst du das vorher sicherstellen, sonst greifen die Zeichenkettenfunktionen auf die falschen Stellen zu.
        Wenn du die Zelle als 'Standard' formatierst, wird die führende Null nicht angezeigt, was die Eingabekontrolle nicht gerade erleichtert.

        Zumindest während der Testphase solltest du deien Eingabezelle als Text (@) formatieren, und deine Zielzellen - auch für weitere Berechnungen - mit 4-stelligem Jahren, um Resultate wie 1-jährige Grossväter mit 99-jährigem Rentenbezug rasch erkennen zu können ;-)

        z.B. mit (A1: Format Text @)
        [1] DATUM(RECHTS(A1;2);TEIL(A1;3;2);LINKS(A1;2))
        [2] DATUM(VERKETTEN("20";RECHTS(A1;2));TEIL(A1;3;2);LINKS(A1;2))

        '160504'
        [1] 16.05.04 (Format TTMMJJ), aber (!) 16.05.1904 (Format TTMMJJJJ)
        [2] 16.05.04 (Format TTMMJJ), aber (!) 16.05.2004 (Format TTMMJJJJ)

        '010100'
        [1] 01.01.01 (Format TTMMJJ), aber (!) 01.01.1901 (Format TTMMJJJJ)
        [2] 01.01.01 (Format TTMMJJ), aber (!) 01.01.2001 (Format TTMMJJJJ)

        '311299'
        [1] 31.12.99 (Format TTMMJJ), aber (!) 31.12.1999 (Format TTMMJJJJ)
        [2] Fehler (#ZAHL!)

        gilt allerdings nur mit der Excel-Zeitbasis 01.01.1900
        bei Zeitbasis 02.01.1904 passiert folgendes:

        '160504'
        [1] 16.05.04 (Format TTMMJJ), aber (!) 16.05.1904 (Format TTMMJJJJ)
        [2] 16.05.04 (Format TTMMJJ), aber (!) 16.05.2004 (Format TTMMJJJJ)

        '010100'
        [1] Fehler (#ZAHL!)
        [2] 01.01.01 (Format TTMMJJ), aber (!) 01.01.2001 (Format TTMMJJJJ)

        '311299'
        [1] 31.12.99 (Format TTMMJJ), aber (!) 31.12.1999 (Format TTMMJJJJ)
        [2] Fehler (#ZAHL!)

        also ist Testen angesagt...

        Respekt!

        Danke. Datum- und Zeitfunktion in Excel sind ekelhaft!

        mfg Alfie

        1. Servus,

          Danke. Datum- und Zeitfunktion in Excel sind ekelhaft!

          das stimmt so.
          Kennt jemand eine Möglichkeit, genau einen Monat zum Datum dazuzählen zu lassen? Ich hab emir geholfen, in dem ich den Monat rausfinde, dann für diesen die Tage bestimme (28,30,31; 29 ist nicht berücksichtigt) und das dann dazuzähle.
          leider etwas umständlich, aber anders habe ich es nicht hinbekommen.
          Schöne Grüsse
          Stefan

          1. Hallo!

            Kennt jemand eine Möglichkeit, genau einen Monat zum Datum dazuzählen zu lassen? Ich hab emir geholfen, in dem ich den Monat rausfinde, dann für diesen die Tage bestimme (28,30,31; 29 ist nicht berücksichtigt) und das dann dazuzähle.
            leider etwas umständlich, aber anders habe ich es nicht hinbekommen.

            Ich bin nicht sicher, ob ich dich richtig verstanden habe. Zu einem Datum im Februar willst du 28 Tage addieren, und zu einem Datum im März 31?

            Im Excel gibt es nur die Funktion EDATUM(Ausgangsdatum;Monate):
            'Liefert die fortlaufende Zahl des Datums, das eine bestimmte Anzahl von Monaten vor bzw. nach dem Ausgangsdatum liegt.'

            A1 Text (@), EDATUM(A1;1), Format (JJJJ-MM-TT)
            2005-01-01 --> 2005-02-01  = 31 Tage
            2005-01-28 --> 2005-02-28  = 31 Tage
            2005-01-29 --> 2005-02-28  = 30 Tage (!)
            2005-01-30 --> 2005-02-28  = 29 Tage (!)
            2005-01-31 --> 2005-02-28  = 28 Tage (!)

            2005-02-28 --> 2005-03-28  = 28 Tage
            2004-02-28 --> 2004-03-29  = 29 Tage (Schaltjahr!)
            2004-02-29 --> 2004-03-29  = 29 Tage
            2004-03-01 --> 2004-04-01  = 31 Tage

            Die Wege des Herrn sind unergründlich ;-)
            Gegen Monatsende wird das Monat kürzer, ein aus der Relativitätstheorie bekannter Vorgang (Zeitdilatation).

            Ich habe gerade nur Excel5.0a bei der Hand, in späteren Versionen ist diese Verhalten sicher (haha) konsistenter...
            OpenOffice1.1.2 liefert exakt die gleichen Werte, viellecht liegt da doch irgendwo ein tieferer Sinn?

            mfg Alfie

            1. Hallo,
              ich will eigentlich keine Tagen addieren, sondern imme rgenau einen Monat.
              Dabei soll es egal sein, ob ich den 01.01., 05.01. oder 31.01 habe, es soll immer xx.02. rauskommen. (Die Tage müssen auch nicht dargestellt werden, es geht um eine Auslastungsansicht per MOnat).

              Um dies iregndwie hinzubekommen, habe ich eben die Tage per Monat aufgelistet , den mit Tagen kann Excel ja rechnen. Anstatt zu sagen Datum +1 Monat = neues Datum
              sage ich eben
              Datum + xx Tage (bezogen auf den Monat, per Sverweis) = neues Datum

              Ist eben nicht elegant, aber es geht bsiher gut.
              Die Funktion EDATUM habe ich nicht gefunden...
              Stefan

              1. Hallo Stefan,

                versuche es mal so:

                =DATUM(JAHR(A2);MONAT(A2)+1;TAG(A2))

                Viele Grüße

                Jörg

                1. Hallo!

                  versuche es mal so:

                  =DATUM(JAHR(A2);MONAT(A2)+1;TAG(A2))

                  hast du das vor dem Absenden selbst einmal versucht?

                  2005-01-01 --> Februar
                  ...
                  2005-01-28 --> Februar
                  2005-01-29 --> März (!)
                  ...

                  mfg Alfie

                  1. Hi,

                    2005-01-01 --> Februar
                    ...
                    2005-01-28 --> Februar
                    2005-01-29 --> März (!)

                    Ups, das habe ich ja noch nie so erlebt und verwende die Formel so schon seit Jahren.

                    2005-01-29: Mit =MONAT(A2) kommt 1 raus, also müßte das:

                    =DATUM(JAHR(A2);MONAT(A2)+1;TAG(A2))

                    ja 2 ergeben. Bug in Excel?

                    Weiterhin interessant:

                    Folgende Funktion rechnet mit den letzten Januar-Tagen falsch:

                    Function NeuesDatum(datDatum As Date) As Date
                    NeuesDatum = CDate(Day(datDatum) & "." & Month(datDatum) + 1 & "." & Year(datDatum))
                    End Function

                    Folgende Sub rechnet aber richtig:

                    Sub Test()
                    MsgBox CDate(Day([A2]) & "." & Month([A2]) + 1 & "." & Year([A2]))
                    End Sub

                    Also doch ein Bug?

                    Viele Grüße

                    Jörg

                    1. Hallo!

                      Ups, das habe ich ja noch nie so erlebt und verwende die Formel so schon seit Jahren.

                      Tja, shit happens!
                      Ich teste Funktionen immer besonders intensiv an den 'Rändern' des Geltungsbereiches.

                      2005-01-29: Mit =MONAT(A2) kommt 1 raus, also müßte das:

                      =DATUM(JAHR(A2);MONAT(A2)+1;TAG(A2))

                      ja 2 ergeben. Bug in Excel?

                      Möglicherweise. Vielleicht verstehen *wir* die Funktion aber auch nur nicht ;-)

                      Folgende Funktion rechnet mit den letzten Januar-Tagen falsch:

                      Function NeuesDatum(datDatum As Date) As Date
                      NeuesDatum = CDate(Day(datDatum) & "." & Month(datDatum) + 1 & "." & Year(datDatum))
                      End Function

                      Folgende Sub rechnet aber richtig:

                      Sub Test()
                      MsgBox CDate(Day([A2]) & "." & Month([A2]) + 1 & "." & Year([A2]))
                      End Sub

                      Faszinierend!

                      Nachdem ich beruflich mit Mathematik und Statistik zu tun habe, kenne ich viele Artikel mit der Grundaussage 'Excel rechnet falsch'. Datums- und Zeitfunktionen sind dabei *besonders* übel beleumundet.

                      Schwacher Trost:
                      der Windows Taschenrechner in der Standard-Ansicht rechnet 2+5x3=10, erst im 'Wissenschaft'-Modus schafft er die Aufgabe 2+5x3=17...

                      mfg Alfie

                      1. Hi,

                        Folgende Sub rechnet aber richtig:

                        Sub Test()
                        MsgBox CDate(Day([A2]) & "." & Month([A2]) + 1 & "." & Year([A2]))
                        End Sub

                        Halt - da habe ich mich vertan, das funktioniert auch nicht. Das kommt davon, wenn man zwei Sachen zugleich macht

                        Nachdem ich beruflich mit Mathematik und Statistik zu tun habe, kenne ich viele Artikel mit der Grundaussage 'Excel rechnet falsch'. Datums- und Zeitfunktionen sind dabei *besonders* übel beleumundet.

                        Ja, da gibt es wirklich ein paar Probleme. Ein Beispiel ist das Jahr 1900. Per Zelle wird es fälschlicherweise als Schaltjahr behandelt, in Excel-VBA aber nicht.

                        Was an der konkreten Sache kurios ist:

                        In A30 steht 29.01.2005
                        =MONAT(A30)+1 ergibt 2 (z. B. in C30)
                        =DATUM(JAHR(A30);C30;TAG(A30)) ergibt 01.03.2005

                        Leider habe ich jetzt keine Zeit zum intensiven Testen (stehe gerade im Unterricht - vorne ;-)).

                        Viele Grüße

                        Jörg

                        1. Hallo!

                          Leider habe ich jetzt keine Zeit zum intensiven Testen (stehe gerade im Unterricht - vorne ;-)).

                          Ist auch gut so, ich hoffe die anderen dürfen sitzen ;-)

                          Schau dir doch einmal diese Nachricht in der Excel Discussion Group an.

                          Aus dem 29.1.2005 wird der 29.2.2005, dieses Datum gibt es nicht. In seiner unendlichen Weisheit verwendet Excel daher ein 'plausibles' Monat - und das ist der März ;-)

                          mfg Alfie

                          1. Hi Alfie,

                            Schau dir doch einmal diese Nachricht in der Excel Discussion Group an.

                            Vielleicht später mal ;-)

                            Aus dem 29.1.2005 wird der 29.2.2005, dieses Datum gibt es nicht. In seiner unendlichen Weisheit verwendet Excel daher ein 'plausibles' Monat - und das ist der März ;-)

                            Ja, das aber inkonsequent.

                            Ich habe mal auf die Schnelle was gebastelt, das aber nur eine Grundlage sein kann:

                            Function xyz(x As Date) As Date
                            Application.Volatile
                            a = Day(x): b = Month(x): c = Year(x)
                            If b = 12 Then
                                b = 1: c = c + 1
                            Else
                                b = b + 1
                            End If
                            d = CDate(a & "." & b & "." & c)
                            If Year(d) > Year(x) + 1 Then xyz = "" Else xyz = d
                            End Function

                            Das ist aber ungetestet und müßte noch etwas verfeinert werden.

                            In die Zelle könnte man dann z. B. schreiben:

                            =WENN(ISTFEHLER(xyz(A2));"";xyz(A2))

                            Oder so ähnlich.

                            Viele Grüße

                            Jörg

                      2. Hallo,

                        2005-01-29: Mit =MONAT(A2) kommt 1 raus, also müßte das:
                        =DATUM(JAHR(A2);MONAT(A2)+1;TAG(A2))
                        ja 2 ergeben. Bug in Excel?

                        Nein. Das Ergebnis ist der 29.02.2005, da es ein solches Datum aber nicht gibt, folglich der 01.03.2005.

                        Folgende Funktion rechnet mit den letzten Januar-Tagen falsch:
                        Folgende Sub rechnet aber richtig:

                        Definiere "richtig" und "falsch". Sprich: erwartest Du wirklich einen 29.02.2005?

                        Schwacher Trost:
                        der Windows Taschenrechner in der Standard-Ansicht rechnet 2+5x3=10, erst im 'Wissenschaft'-Modus schafft er die Aufgabe 2+5x3=17...

                        Bei mir nicht.
                        Standard-Ansicht:
                        2 + 5 (Zwischenergebnis 7) * 3 = 21
                        Welcher Standard-Taschenrechner würde das anders machen? Sprich welcher Standard-Taschenrechner wartet auf mehr als eine Rechenoperation?

                        Der wissenschaftliche Rechner berechnet den kompletten Term 2+5*3 und kommt auf 17.

                        viele Grüße

                        Axel

                        1. Hi Axel,

                          2005-01-29: Mit =MONAT(A2) kommt 1 raus, also müßte das:
                          =DATUM(JAHR(A2);MONAT(A2)+1;TAG(A2))
                          ja 2 ergeben. Bug in Excel?
                          Nein. Das Ergebnis ist der 29.02.2005, da es ein solches Datum aber nicht gibt, folglich der 01.03.2005.

                          Probiere das mal bei anderen Monats- oder sogar Jahreswechseln aus.

                          Viele Grüße

                          Jörg

                        2. Hallo!

                          Schwacher Trost:
                          der Windows Taschenrechner in der Standard-Ansicht rechnet 2+5x3=10, erst im 'Wissenschaft'-Modus schafft er die Aufgabe 2+5x3=17...
                          Bei mir nicht.
                          Standard-Ansicht:
                          2 + 5 (Zwischenergebnis 7) * 3 = 21
                          Welcher Standard-Taschenrechner würde das anders machen? Sprich welcher Standard-Taschenrechner wartet auf mehr als eine Rechenoperation?

                          'Zwischenergebnis 7' hat niemand angefordert; nach der Eingabe '5' kommt die Eingabe '*', also ein höherwertiger Operator als '='...

                          Der wissenschaftliche Rechner berechnet den kompletten Term 2+5*3 und kommt auf 17.

                          Die Regel 'Punktrechnung vor Strichrechnung' als 'wissenschaftlich' zu bezeichnen, finde ich hybrid.

                          mfg Alfie

                          1. Hallo,

                            'Zwischenergebnis 7' hat niemand angefordert;

                            Doch. Die Funktionsweise eines normalen Taschenrechners ist genau so definiert. Sprich: der Benutzer eines normalen Taschenrechners erwartet es so.

                            Die Regel 'Punktrechnung vor Strichrechnung'

                            hat damit genau gar nichts zu tun. Normale Taschenrechner werten keine komplexen Terme aus. Das muss der Benutzer _vor_ der Eingabe tun.

                            viele Grüße

                            Axel

                2. Danke,
                  das ist genau das, was ich gesucht habe.
                  Soweit hatte ich es, nur ich habe den zusammengesetzten Wert dann nicht mehr als Datum hinbekommen...
                  Stefan