Monats-Kalender erstellen

Monatskalender, verschiedene Wege zum Ziel „Monatsende”

Für ver­schiedene Zwecke wer­den Monatskalen­der gebraucht. Dabei wird auf 1 Arbeits­blatt genau 1 Kalen­der­monat erstellt. Für die ersten 28 Tage ist das immer der gle­iche Weg, der indi­vidu­ell gewählt wer­den kann. Ab dem 29. ist es vom Monat abhängig, ob der entsprechende Tag in dem Monat existiert oder nicht.

Beispiel (erst einmal) für die ersten 28 Tage

Zugegeben, auch hier gibt es ver­schiedene Wege, die vom per­sön­lichen Geschmack geprägt sind. Aber da diese nicht das eigentliche The­ma sind, an dieser Stelle nur ein Weg stel­lvertre­tend für viele. Aber dafür in ganz kleinen Schrit­ten gut nachvol­lziehbar, auch für Ein­steiger in Sachen Excel.

▲ nach oben …

Kopf-Bereich

In A1 kommt erst ein­mal ein ein­fach­er Text: Monat:. In B1 schreiben Sie irgend einen Tag des gewün­scht­en Monats. Das kann ein „nor­males” Datum sein wie 24.2.2016, aber auch Feb 16 oder 216 sind denkbar. Sie erken­nen, dass nicht unbe­d­ingt der Monat­ser­ste ver­wen­det wer­den muss.

Nun ist es mehr als hil­fre­ich, wenn Sie B1 mit einem bes­timmten Zahlen­for­mat verse­hen. Es soll nur der Monat und das Jahr angezeigt wer­den:

Nur Monat & Jahr

Nur Monat und Jahr

Dazu wählen Sie im Menü Start, Gruppe Zahl das Benutzerdefinierte Zahlen­for­mat aus und geben MMMM JJJJ als Typ: ein. Im obi­gen Beispiel ist ein hell­blauer Hin­ter­grund gewählt und ein dün­ner Rah­men unten geset­zt wor­den.

▲ nach oben …

Die Tage des Monats in Zeilen

In der Zelle A3 soll automa­tisch der Monat­ser­ste des Monats eingegeben bzw. aus­ge­füllt wer­den, der in B1 ste­ht. Dazu geben Sie dort diese Formel ein: 
=DATUM(JAHR($B$1);MONAT($B$1);1) 
Zugegeben, die Dol­lar-Zeichen sind in diesem Fall nicht unbe­d­ingt erforder­lich, aber sie schaden auch nicht.  😉 Hier­mit ist nun gewährleis­tet, dass auch dann der Erste des entsprechen­den Monats in A3 ste­ht, wenn in B1 eine Änderung vorgenom­men wird. Pro­bieren Sie es doch ein­fach ein­mal aus, es klappt.

Der näch­ste Schritt ist recht unkom­pliziert. Sie schreiben in A4 die Formel =A3+1. Damit wird der Wert aus der Zelle darüber genau um 1 (Tag) erhöht. Nun ziehen Sie die Zelle A4 mit dem Aus­fül­lkästchen bis zur Zeile 30 nach unten. Der let­zte Wert ist nun der 28. des jew­eili­gen Monats. Dieses ist der let­zte Tag, den es in jedem Monat jeden Jahres gibt. Denn den 29.2. gibt es nur alle 4 Jahre. Bei dieser Gele­gen­heit soll­ten Sie erforder­lichen­falls B1 auf den Feb­ru­ar 2016 set­zen.

Auch wenn es zum falschen Ergeb­nis führt, soll­ten Sie nun die Formel bis zur Zeile 33 nach unten aus­füllen. Und da ja dank der Formel immer genau 1 Tag erhöht wird, sind auch Tage aus dem Fol­ge­monat sicht­bar:

Der "Überhang" sollte nicht erscheinen

Der „Über­hang” sollte nicht erscheinen

Die Darstel­lung im Bild hierüber sollte Sie nicht irri­tieren. Der besseren Über­sicht wegen habe ich die ersten drei Zeilen des Fen­sters fix­iert. – Das Ziel aber ist klar: Es sollen nur Tage des Monats angezeigt wer­den, der in B1 aus­gewiesen ist. Nicht mehr. Und da gibt es diverse Möglichkeit­en. Gute aber auch weniger gute; wobei in erster Lin­ie die Gesamt-Sicht der Auswirkung wichtig ist, nicht die Ein­fach­heit der Anwen­dung.

▲ nach oben …

Die letzten möglichen drei Tage

Sie haben eben erkan­nt, dass mit der bish­eri­gen Formel kon­se­quent 31 Tage seit dem Monat­ser­sten angezeigt wer­den. Dabei wird nicht geprüft, ob der entsprechende Tag noch zum oben aus­gewiese­nen Monat gehört oder nicht. Auf die schein­bar ein­fach­ste Möglichkeit, Über­hänge ein­fach per Hand zu löschen, will ich hier nicht weit­er einge­hen. Das ist wirk­lich zu unpro­fes­sionell …  😥 

Unsichtbar (1)

Wenn es auss­chließlich darum geht, Werte des Fol­ge­monats nicht anzuzeigen, dann bietet sich eine irgend­wie faszinierende Möglichkeit an: Bed­ingte For­matierung. Um alle Werte, die außer­halb des gewün­scht­en Bere­ichs liegen unsicht­bar zu machen, markieren Sie den Bere­ich A3:A33 und geben bei Bed­ingte For­matierung die fol­gende (neue) Formel ein:
=MONAT(A3)<>MONAT($B$1) 
und bei For­matieren… wählen Sie die Reg­is­terkarte Zahlen, die Kat­e­gorie: ist dann Benutzerdefiniert und als Typ: dann ;;;, also nur 3 Semi­ko­la.

Damit ist der Zweck erfüllt. Aber beacht­en Sie, dass keine andere Funk­tion in irgend ein­er Form abfra­gen sollte, ob in der entsprechen­den Zelle (beispiel­sweise A32) eine Zahl oder ein Datum ste­ht. Das kann zu Fehlergeb­nis­sen führen, denn es ste­ht ja ein entsprechen­der Wert in der Zelle, wenn auch nicht sicht­bar.

▲ nach oben …

Unsichtbar (2)

Wenn Ihnen die erste Ver­sion zu „unheim­lich” ist, weil Sie dann nichts mehr per Hand for­matieren kön­nen, dann gibt es eine weit­ere Möglichkeit. Markieren Sie die Zellen, in denen der Fol­ge­monat aufge­führt ist und ver­wen­den Sie ein­fach die Schrift­farbe weiß. Auf dem (nor­maler­weise) weißem Hin­ter­grund wird dann auch nichts dargestellt. 

Das muss dann zwar für jeden Monat neu „einge­färbt” wer­den, bei Monat­en mit 31 Tagen ent­fällt das sog­ar kom­plett aber Sie kön­nen auch beispiel­sweise einen Grau­ton oder eine beliebige andere Farbe oder For­matierung für die entsprechen­den Tage ver­wen­den. – Anson­sten gel­ten die gle­ichen Ein­schränkun­gen wie hierüber  bere­its genan­nt.

▲ nach oben …

Inhaltslos (leer)

Prinzip­iell ist es die sin­nvoll­ste Lösung, ein­fach „nichts” in die entsprechende Zelle der Spalte A zu schreiben, wenn das berech­nete Datum nicht im Monat der Zelle B1 liegt. Dazu allerd­ings muss die Formel zur Berech­nung des Fol­ge­tages in Spalte A geän­dert wer­den. Zumin­d­est teil­weise, denn bis zum 28. Tag des Monats stimmt die Formel ja auf jeden Fall. Begin­nend in A31 schreiben Sie diese Formel: 
=WENN(MONAT(A28+3)=MONAT($B$1);A28+3;"") 
und ziehen Sie diese Formel bis A33 nach unten. Prüfen Sie gerne mit ver­schiede­nen Monat­en, ob das Ergeb­nis stimmt. Es wird hin­hauen. Falls Sie über­legen, warum ich in der ersten geän­derten Formel nicht MONAT(A30+1) als Ref­erenz ver­wen­det habe, dann pro­bieren Sie es gerne ein­mal aus …  😕 

Hin­weis: Diese Form wird sehr oft ver­wen­det. Es ist in vie­len Fällen die „sauber­ste” Lösung. Aber bedenken Sie, dass diese "" – Zellen nicht wirk­lich leer sind. Sie enthal­ten eine Zeichen­kette (einen String) der Länge null.

▲ nach oben …

Unsichtbar (3)

Es ist dur­chaus denkbar, dass in ein­er Spalte der entsprechen­den Zeile eine Formel bzw. Funk­tion über­prüft, ob in Spalte A ein (gültiges) Datum ste­ht. Ein markantes Beispiel wäre, dass bei einem Datum­swert abge­fragt wird, ob es ein Woch­enende ist oder nicht. Falls „nein”, dann wird automa­tisch eine Soll-Arbeit­szeit in die Zelle einge­tra­gen.

Die bei­den eben genan­nten „Unsichtbar”-Methoden hät­ten dann ja den Nachteil, dass dur­chaus in der entsprechen­den Zelle ein gültiges Datum ste­ht. Es ist nur nicht sicht­bar. Und die ""-Lösung kann bei ein­er Prü­fung dur­chaus zu ein­er sehr aufwendi­gen Formel führen, wenn Fehler aus­geschlossen wer­den sollen. Da bietet sich eine Meth­ode an, die viel Ähn­lichkeit mit der ersten vorgestell­ten Lösung hat und etwas „tricky” ist: Wenn das berech­nete Datum nicht im Ref­erenz­monat liegt, dann wird ein Null in die Zelle geschrieben: =WENN(MONAT(A28+3)=MONAT($B$1);A28+3;0) 

Prinzip­iell ist es die gle­iche Formel wie in dem vorheri­gen Lösungsansatz, nur wird kein Leer­String einge­fügt son­dern die Zahl, nein der Wert 0. Und wahrschein­lich wird bei Ihnen ein wirk­lich eige­nar­tiges Datum in den entsprechen­den Zellen ste­hen, wenn sie nicht zum Monat gehören. Das wird dann der 00.01.1900 sein. Der Excel-Logik fol­gend ist (zumin­d­est in der Win­dows-Ver­sion) der 1.1.1900 mit dem Wert 1 belegt. Die Null ist ja eins weniger und Excel drückt das in dieser Form als Datum­swert aus. Mehr soll an dieser Stelle nicht dazu gesagt wer­den, es würde zu weit führen.

In Sachen For­matierung, genauer gesagt Zahlen­for­mat kön­nen Sie nun A3:A33 markieren und beispiel­sweise dieses Benutzerdefinierte For­mat ver­wen­den: TT.MM.JJJJ;; wobei der Teil vor dem ersten Semi­kolon von Ihnen nach Wun­sch angepasst wer­den kann. Die bei­den fol­gen­den Strich­punk­te (Semi­ko­la) sind Pflicht.

Diese Meth­ode ist mein per­sön­lich­er Favorit gewor­den. Nicht nur, weil es eine Mis­chung der ver­schiede­nen vorher gezeigten Wege ist, nein mir ist es aus­ge­sprochen wichtig, dass in der Spalte A eine Zahl ste­ht, die auf ein­fache Weise als Datum iden­ti­fizier­bar ist. Und das ist nun wirk­lich ein­fach mach­bar, denn wenn die Zahl größer ist als Null, dann ist es ein Datum des entsprechen­den Monats, son­st eben nicht.

Hier ist bewusst auf Funk­tio­nen wie MONATSENDE() verzichtet wor­den, so kön­nen sie die aufgezeigten Wege in prak­tisch jed­er Excel-Ver­sion anwen­den. – Es gibt noch viele andere Wege, um zum gewün­scht­en Ziel zu gelan­gen. Wichtig ist im End­ef­fekt nur, dass das gewün­schte Ziel so weit­ge­hend wie möglich erre­icht wird und Sie nach Möglichkeit auch ver­ste­hen, wie das Ganze funk­tion­iert.

[NachOben­Let­zte Verweis=„ML: Kalen­der­monat aus­füllen”] 
Dieser Beitrag wurde unter Datum und Zeit, Formatierung, Musterlösungen, Ohne Makro/VBA, Rechnen & Zahlen, Tabelle und Zelle abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.