Excel Monatsliste

Dieses Thema im Forum "Office-Programme" wurde erstellt von Aleunam, 29. März 2003.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Aleunam

    Aleunam Byte

    Registriert seit:
    4. Juli 2001
    Beiträge:
    27
    Hallo

    Ich habe ein Problem, eine fortlaufende Liste von Daten zu berechnen.
    Folgendes Beispiel:
    In a1 soll die Eingabe eines frei wählbaren Datums erfolgen.
    In a2, a3... fortlaufend soll aus diesem Datum ein Datum errechnet werden, das einen Monat später liegt; z.B. 2.8.01, 2.9.01, 2.10.01....... In b1, b2, b3.... soll das jeweilige Ende des Monats berechnet werden also im Beispiel 1.9.01, 1.10.01, 1.11.01.

    Das funktioniet auch ganz gut führt aber bei einem Datum wie z.B. 31.8.xx zu verschiedenen falschen Werten.

    Kennt einer von Euch eine Lösung die immer funktioniert?
    Würde mir die Arbeit sehr erleichtern!

    Danke im voraus.

    Gruß
    Aleunam
     
  2. Geertakw

    Geertakw Kbyte

    Registriert seit:
    25. Februar 2001
    Beiträge:
    418
    Hi
    Ich denke nun hab ichs:
    A1: Startdatum
    A2: = Z(-1)S(-1)+1
    B1: =WENN((MONAT(Z(-1)S+TAG(MONATSENDE(Z(-1)S;0)))-MONAT(Z(-1)S))=1;DATUM(JAHR(Z(-1)S);MONAT(Z(-1)S)+1;TAG(Z1S1)-1);Z(-1)S+TAG(MONATSENDE(Z(-1)S;1)-1))

    Der Algorithmus:
    letzter Tag des Monats =erster Tag - 1
    Wenn nächster Erster im Folgemonat nicht vorhanden, Letzter des
    Monats -1

    Nächster Erster = Letzter +1

    Alles klar und OK??

    Gruss Geert

    Eine klare Beschreibung des Problems - wenn es denn jetzt gelöst
    sein sollte - hätte das Prozedere stark abgekürzt.:-)
     
  3. mkl

    mkl Kbyte

    Registriert seit:
    9. August 2000
    Beiträge:
    345
    Dann versuch doch mal dieses:
    =WENN(MONAT(DATUM(JAHR($A$1);MONAT($A$1)+ZEILE($A2)-1;TAG($A$1)))<>MONAT($A$1)+ZEILE($A2)-1;DATUM(JAHR($A$1);MONAT($A$1)+ZEILE($A2);0);DATUM(JAHR($A$1);MONAT($A$1)+ZEILE($A2)-1;TAG($A$1)))
    Das ist der Eintrag in A2; sieht etwas wüst aus, aber geht.
    die Folgeeinträge kannst Du dann mit unten auffüllen erzeugen. Wichtig: Voraussetzung ist, daß das wirklich in A1 beginnt. Ansonsten muß man die Formel noch etwas anpassen. Der Einfachheit halber ist dann B1=A2-1 ;-)
    Hat nur den Nachteil, daß in der letzten Zeile das nicht funktioniert bzw. in der A-Spalte ein Wert mehr vorhanden sein muß als in der B-Spalte. Reicht das so ? Wenn nicht, benutze diese Formel für B1:
    =WENN(MONAT(DATUM(JAHR($A$1);MONAT($A$1)+ZEILE($A2)-1;TAG($A$1)))<>MONAT($A$1)+ZEILE($A2)-1;DATUM(JAHR($A$1);MONAT($A$1)+ZEILE($A2);0);DATUM(JAHR($A$1);MONAT($A$1)+ZEILE($A2)-1;TAG($A$1)))-1
    und fülle damit die B-Spalte.
    Das geht übrigens ohne irgendwelche Add-Ons !!!
    [Diese Nachricht wurde von mkl am 31.03.2003 | 12:16 geändert.]
     
  4. Geertakw

    Geertakw Kbyte

    Registriert seit:
    25. Februar 2001
    Beiträge:
    418
    Nicht wirklich
    Wenn ein Kind am 31.5.geboren wird, wird es den 30.4. des selben
    Jahres nur per Zeitreise als geboren erleben können ;-).

    Aber das mit dem 5. war wohl eher einTippfehler - wie gesagt,
    schaun mer mal.

    Gruss Geert

    Ich hab jetzt zwar eine Formel, die das weitgehend erfüllt,
    aber wieso ist der 29.2. mit dem 30.3. verbunden??
    Bei meiner Formel - ensprechend dem bisher dargelegten -
    ergibt sich der 28.3. ( oder werden die Differenzen immer zum
    Monatsende gebildet? )
    Irgendwie ist der Algorithmus noch nicht vollständig dargelegt

    [Diese Nachricht wurde von Geertakw am 31.03.2003 | 09:31 geändert.]
    [Diese Nachricht wurde von Geertakw am 31.03.2003 | 11:13 geändert.]
    [Diese Nachricht wurde von Geertakw am 31.03.2003 | 11:16 geändert.]
     
  5. Aleunam

    Aleunam Byte

    Registriert seit:
    4. Juli 2001
    Beiträge:
    27
    Grins. So erging es mir am Anfang auch.

    In Spalte A stehen das Datum des Beginn des Lebensmonats.
    Ist das Kind am 31.05. geboren beginnt der zweite Lebensmonat also am "31.04.". Da es diesen Tag nicht gibt wird auf den 30.4. vorgerückt; usw. In Spalte B steht immer das Ende des Lebensmonats. Das ist also ein Tag weniger als in der nächsten Zeile in Spalte A.

    Besonders schwierig wird das Ganze, wenn der Februar und das Schaltjahr eine Rolle spielen.

    Hast Du die Logik verstanden?

    Gruß
    Thomas
     
  6. Geertakw

    Geertakw Kbyte

    Registriert seit:
    25. Februar 2001
    Beiträge:
    418
    Schaun mer mal - die Logik war aus den bisherigen Postings
    für mich nicht ohne Weiters erkennbar.
    Aber heut abend nicht mehr

    Gruss Geert

    PS: Beim zweiten Lesen erkenne ich die Logik immer noch nicht,
    insbesondere da die Beispiele 1 und 3 übereinstimmten.
    Grübel grübel
    [Diese Nachricht wurde von Geertakw am 30.03.2003 | 21:31 geändert.]
     
  7. Aleunam

    Aleunam Byte

    Registriert seit:
    4. Juli 2001
    Beiträge:
    27
    Shit.

    Die haben die Zeilen zusammengerutscht. Ich hoffe Du kannst es entziffern.

    Gruß
    Thomas
     
  8. Aleunam

    Aleunam Byte

    Registriert seit:
    4. Juli 2001
    Beiträge:
    27
    Mhm

    Bei der Verwendung Deiner Formel ergibt sich folgendes Ergebnis:

    A B A B
    31.03.03 30.04.03 <- falsch! Richtig 31.03.03 29.04.03
    01.05.03 31.05.03 <- falsch! Richtig 30.04.03 30.05.03
    01.06.03 30.06.03 <- falsch! Richtig 31.05.03 29.06.03
    01.07.03 31.07.03 <- falsch! Richtig 30.06.03 30.07.03
    01.08.03 31.08.03 <- falsch! Richtig 31.07.03 30.08.03
    01.09.03 30.09.03 <- falsch! Richtig 31.08.03 29.09.03
    01.10.03 31.10.03 <- falsch! Richtig 30.09.03 30.10.03
    01.11.03 30.11.03 <- falsch! Richtig 31.10.03 29.11.03
    01.12.03 31.12.03 <- falsch! Richtig 30.11.03 30.12.03
    01.01.04 31.01.04 <- falsch! Richtig 31.12.03 30.01.03
    01.02.04 29.02.04 <- falsch! Richtig 31.01.03 28.02.03
    01.03.04 31.03.04 <- falsch! Richtig 29.02.04 30.03.04

    Recht kompliziert. Ich weiss. Aber so werden nun einmal die Lebensmonate ab der Geburt berechnet.
    In Spalte C sollen dann mal Beträge eingetragen werden.

    Hast Du auch noch zu dieser etwas ausführlicheren Darstellung eine Idee?

    Gruß
    Thomas
     
  9. Geertakw

    Geertakw Kbyte

    Registriert seit:
    25. Februar 2001
    Beiträge:
    418
    Ah ja!

    Wie wärs damit:
    ( Das Add-On Analyse muß installiert und aktiviert sein! )

    A1: Startwert
    B1: =Z(-1)S+TAG(MONATSENDE(Z(-1)S;0))-1
    ( Addiert die Anzahl der Tage des monats minus 1 )
    A2: =Z(1)S(-1)+1
    ( Ergebnis aus B1 um eins erhöhen )

    Zeile A und B nach rechts auffüllen
    Ergibt in Beispielen 1 und 3 die gleichen Werte

    Müßte Beispiel 2 nicht lauten:
    31.5. | 30. 6. (jeweils letzter Tag des Monats ) ?

    Gruss Geert
     
  10. Aleunam

    Aleunam Byte

    Registriert seit:
    4. Juli 2001
    Beiträge:
    27
    Okay das mit den Betügen haut nun hin.

    Die Tabelle liefert aber nicht das Ergebnis, das ich wollte. Vielleicht habe ich mich etwas undeutlich ausgedrückt. Aus diesem Grund hier mal ein Beispiel:

    Eingabe in Feld a1: 15.03.01
    Dann soll die Tabelle so aussehen:

    15.03.01 | 14.04.01
    15.04.01 | 14.05.01
    15.05.01 | 14.06.01

    bei Eingabe von 31.05.01

    31.05.01 | 29.06.01
    30.06.01 | 30.07.01
    31.07.01 | 30.08.01

    bei Eingabe von 02,02,03

    02,02,03 | 01.03.03
    02.03.03 | 01.04.03
    .
    .

    Weisst Du auch dafür ne Lösung?
    Wäre echt super.

    Gruß
    Thomas
     
  11. Geertakw

    Geertakw Kbyte

    Registriert seit:
    25. Februar 2001
    Beiträge:
    418
    Hi
    Z =Zeile
    S =Spalte
    Z1 = Zeile 1
    S1 = Spalte 1
    Z(1) = eine Zeile relativ weiter
    Z(-1) 1 Zeile realativ zurück
    S(1) = 1 Spalte reativ weiter
    S(-1) = 1 Spalte relitv zurück

    Ich benutze -schon aus weltachschaulichen Gründen - den
    ZS - Bezug ( einstellbar über Extras / Optionen / Allgemein )
    Die in der nicht funktionierenden Tabelle benutzten Bezüge mit
    dem $-Zeichen ergeben absolute Bezüge, die alles eher unübersichtlich gestalten.
    Da es bei mir korrekt funktioniert, stelle doch einfach auf
    ZS-Bezüge um, teste meinen Vorschlag und stelle danach,
    wenn notwendig ZS-Bezugsart wieder aus.
    Ernsthaft: Mit ZS-Bezugsart meine Vorschläge einsetzen:
    es funktioniert wie in meinem Posting beschrieben!!
    Wiederholt getestet.

    Geert
    [Diese Nachricht wurde von Geertakw am 29.03.2003 | 23:55 geändert.]
     
  12. Aleunam

    Aleunam Byte

    Registriert seit:
    4. Juli 2001
    Beiträge:
    27
    Danke erst mal für Deine Mühe, aber bei mir funktioniert das nicht. Schon bei der Eingabe nimmt Excel die Formeln nicht. Muss ich irgendwelche Einstellungen beachten?
    Was bedeuten die "Z" und "ZS" sowie "S" in Deiner Formel?

    Die nicht funktionierende Tabelle von mir sah so aus:

    a1=Startdatum
    a2=DATUM(JAHR($A$1);MONAT($A$1)+1;TAG($A$1))
    a3=DATUM(JAHR($A$1);MONAT($A$1)+2;TAG($A$1))
    .
    .
    b1=DATUM(JAHR($A$1);MONAT($A$1)+1;TAG($A$1)-1)
    b2=DATUM(JAHR($A$1);MONAT($A$1)+2;TAG($A$1)-1)
    .
    .

    Hast Du vielleicht noch ne Idee?

    Thx

    Thomas
     
  13. Geertakw

    Geertakw Kbyte

    Registriert seit:
    25. Februar 2001
    Beiträge:
    418
    Hi

    A1: = Startdatum
    A2: =DATUM(JAHR(ZS(-1));MONAT(ZS(-1))+1;TAG(ZS(-1)))
    nach recht auffüllen

    B1: =DATUM(JAHR(Z(-1)S);MONAT(Z(-1)S)+1;0)

    nach rechts auffüllen
    ergibt:

    02.08.03 | 02.09.03 | 02.10.03 | 02.11.03
    31.08.03 | 30.09.03 | 31.10.03 | 30.11.03

    Wenn in der Formel für Zeile B die Null durch eien Eins
    ersetzt wird, ergibt sich der jeweils nächste Monatserste.

    Hth

    Geert
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen