Praktisch ist es, wenn Excel selber ermittelt, wie viele Tage der Monat hat und nicht mehr Tage ausfüllt. Unten sehen Sie einmal das Startdatum 01. März und einmal 01. Februar. Im März wird bis zum 31.03. ausgefüllt, im Februar nur bis 28.02. Dabei gehen in beiden Fällen die Formeln bis zur Zeile 32.
In Zelle A2 wird jeweils das Startdatum geschrieben. Ab A3 berechnet sich das Folgedatum:
=A2+1
Damit würde aber endlos weitergerechnet werden bis in den Folgemonat hinein. Die Stoppstelle lässt sich anhand des Monats festmachen. Wenn das errechnete Datum im nächsten Monat liegt, ist Schluss.
Wenn der Monat, der sich bei der Berechnung “A2+1” ergibt, größer ist als der Monat des Startdatums in A2, dann darf nichts mehr geschrieben werden. Den Monat aus einem gegebenen Datum bestimmt man mit
=MONAT(A2).
Im Klartext:
WENN der MONAT aus A2+1 nicht identisch mit dem MONAT aus A2, dann schreibe nichts, sonst rechne A2+1
Als Formel:
=WENN(MONAT(A2+1)<>MONAT(A$2);””;A2+1)
Warum <> (ungleich) und nicht > (größer)?
Für alle Monate außer dem Dezember würde “größer” passen.
Auf den Februar (2) folgt der März (3), auf den Oktober (10) folgt der November (11).
Aber auf den Dezember (12) folgt der Januar (1).
Für den Dezember würde es also einen Fehler geben, wenn man mehr als die benötigten Zellen mit Formeln gefüllt hat. Ungleich passt aber immer.
Es gibt allerdings noch einen Sonderfall: Wenn die vorhergehende Zelle leer ist, darf auch nichts geschrieben werden. Berücksichtigt man das nicht, erscheint zum Beispiel im Februar für die Zeilen 30 und 32 der Fehlerwert #WERT!. Wir haben also zwei Bedingungen: die Größe der Monatszahl und die Füllung der vorhergehenden Zelle.
Komplett sieht die Formel so aus:
WENN(A2="";"";WENN(MONAT(A2+1)<>MONAT(A$2);"";A2+1))
Nach unten kopieren bis zu Zeile 32 und wenn gewünscht noch die bedingte Formatierung von gestern für die Wochenenden einrichten.
Das ist eine mögliche Lösung - ich bin sicher, man kann die Formel auch auf anderen Wegen erreichen.
Beispielsweise funktioniert auch diese Formel:
WENN(A2="";"";WENN(A2+1>MONATSENDE(A$2;0);””;A2+1))
Keine Kommentare:
Kommentar veröffentlichen