Dynamischer monatlicher Excel-Kalender

Dynamischer monatlicher Excel-Kalender

Ich möchte einen Monatskalender erstellen (1 Monat pro Blatt), bei dem sich nur das Jahr ändern kann (und damit auch das Datum). Meine Kalendervorlage ist bereits erstellt. Ich möchte nur eine Formel hinzufügen, die das Datum entsprechend dem Wochentag ändert, wenn ich das Jahr ändere. Die Woche beginnt am Sonntag

Danke !

Antwort1

Hier ist, was mir eingefallen ist. Passen Sie die Anweisungen nach Bedarf an Ihre eigene Vorlage an.


Anweisungen

  1. Setzen Sie A1 auf den Jahreswert für den Monat, den Sie darstellen möchten.
    • Als Datum der ersten Überarbeitung dieses Beitrags wäre hier „2015“ anzugeben.
  2. Setzen Sie A2 auf den vollständigen Namen des Monats, der dargestellt werden soll.
    • Als Datum für die erste Überarbeitung dieses Beitrags würde man „Mai“ angeben.
  3. Füllen Sie A3:G3 mit den Wochentagen, beginnend mit „Sonntag“ in A3 und endend mit „Samstag“ in G3.
  4. Tragen Sie folgende Formel in A4 ein:=IF(WEEKDAY(DATEVALUE(CONCATENATE($A$2," 1, ",$A$1)))=1,1,"")
    • Je nach Monat/Jahr kann diese Formel hier einen leeren Wert zurückgeben. (Das ist im Mai 2015 der Fall.) Das ist normal.
  5. Setzen Sie die folgende Formel in B4 ein:=IF(A4="",IF(WEEKDAY(DATEVALUE(CONCATENATE($A$2," 1, ",$A$1)))=COLUMNS($A$4:B4),1,""),A4+1)
    • Je nach Monat/Jahr kann diese Formel hier einen leeren Wert zurückgeben. (Das ist im Mai 2015 der Fall.) Das ist normal.
  6. Kopieren Sie die Formel aus B4 in die Zellen C4:G4. Excel sollte die Zellbezüge in der Formel bei Bedarf automatisch anpassen.
    • An diesem Punkt sollte die Formel in einer der Zellen in Zeile 4 „1“ ergeben und jede Zelle danach sollte einen höheren Wert als die vorherige Zelle zurückgeben. Zellen vor der „1“ sollten leer sein. Für Mai 2015 sollten Sie Leerzeichen in A4:E4, „1“ in F4 (Freitag) und „2“ in G4 (Samstag) sehen..
  7. Tragen Sie in A5 folgende Formel ein:=IF(ISERROR(DATEVALUE(CONCATENATE($A$2," ",G4+1,", ",$A$1))),"",G4+1)
    • Das Ergebnis der Formel sollte um eins höher sein als der Wert von G4.
  8. Kopieren Sie die Formel in A5 in die Zellen A6:A9. Excel sollte die Zellbezüge in der Formel bei Bedarf automatisch anpassen.
    • A6:A9 wird vorerst als Leerzeichen ausgewertet. Das ist normal.
  9. Tragen Sie in B5 folgende Formel ein:=IF(ISERROR(DATEVALUE(CONCATENATE($A$2," ",A5+1,", ",$A$1))),"",A5+1)
    • Das Ergebnis der Formel sollte um eins höher sein als der Wert von A5.
  10. Kopieren Sie die Formel in B5 in die Zellen C5:G5. Excel sollte die Zellbezüge in der Formel bei Bedarf automatisch anpassen.
    • Die Formeln in Zeile 5 sollten nun eine Reihe von Zahlen ergeben, die von Spalte A bis Spalte G schrittweise ansteigen.
  11. Wählen Sie B5:G5 aus und kopieren Sie diese Zellen nach unten bis B6:G9. Excel sollte die Zellbezüge in der Formel bei Bedarf automatisch anpassen.
    • An diesem Punkt sollte der Kalender für den angegebenen Monat entsprechend ausgefüllt sein. Zellen vor dem ersten Tag des Monats und nach dem letzten Tag des Monats sollten leer sein.
    • Für bestimmte Monate, wie z. B. Januar 2015, ist Zeile 9 vollständig leer. Das ist normal.

Funktionen

  • VERKETTENfügt Textzeichenfolgen zusammen.
  • DATEVALUEGibt einen Excel-„Seriennummern“-Wert für das durch eine Textzeichenfolge dargestellte Datum zurück. Es wird ein Fehler zurückgegeben, wenn die Zeichenfolge keinem bekannten Datumsformat entspricht oder wenn die Zeichenfolge kein tatsächliches Datum darstellt (z. B. „32. Januar 2015“ oder „29. Februar 2015“).
  • WOCHENTAGGibt einen Wert zwischen 1 und 7 zurück, der den Wochentag eines bestimmten Datums darstellt.
  • SÄULENGibt die Anzahl der Spalten zurück, die von einem angegebenen Zellenarray überspannt werden.
  • WENNermöglicht Ihnen, einen ausgewählten Wert (oder ein Formelergebnis) zurückzugeben, abhängig davon, ob eine angegebene Formel WAHR oder FALSCH ergibt.
  • ISTFEHLERGibt TRUE zurück, wenn die angegebene Formel zu einem Fehler führt, oder FALSE, wenn die Formel keinen Fehler generiert.

Formelerklärungen

  • A4setzt Informationen aus A1 und A2 zusammen, um eine Textzeichenfolge zu generieren, die den ersten Tag des Monats darstellt. (z. B.: „1. Mai 2015“) Anschließend wird geprüft, ob der Wochentag dieses Datums ein Sonntag ist. Gibt 1 zurück, wenn es ein Sonntag ist, andernfalls ist es leer.

  • B4:G4überprüft die vorhergehende Zelle, um zu sehen, ob sie leer ist. Wenn nicht, wird ein um eins höherer Wert als in der vorherigen Zelle zurückgegeben. Wenn die vorherige Zelle leer ist, wird überprüft, ob der aktuelle Wochentag mit dem ersten Tag des angegebenen Monats übereinstimmt. Wenn ja, wird 1 zurückgegeben, andernfalls leer.

  • A5:A9addiert 1 zum Wert vom Ende der vorhergehenden Zeile und kombiniert das Ergebnis dann mit Informationen aus A1 und A2, um eine Datumszeichenfolge zu bilden. Überprüft, ob das Datum tatsächlich existiert. Gibt in diesem Fall die Tageszahl zurück, andernfalls ist das Ergebnis leer.

  • B5:G9addiert 1 zum Wert der vorhergehenden Zelle und kombiniert das Ergebnis dann mit Informationen aus A1 und A2, um eine Datumszeichenfolge zu bilden. Überprüft, ob das Datum tatsächlich existiert. Gibt in diesem Fall die Tageszahl zurück, andernfalls ist kein Wert angegeben.


Bildschirmfoto

Beispielausgabe für Mai 2015.

Bildbeschreibung hier eingeben

Antwort2

New WorkbookAus Vorlage erstellen . Calendar sundaySuchzeichenfolge.

Suchbegriff "Kalendersonntag"

WählenTage Flächeund Manage Rulesim Conditional FormattingMenü drücken.

Menü „Excel-Formatierungsregel bearbeiten“

HinzufügenNew Rule

Dialogfeld „Excel-Regelformatierung“

Regel gleich hinzufügen=TODAY()

Excel: Formatierungsregel „=HEUTE()“ hinzufügen

Ergebnis:

Excel-Formatierungsregel Kalenderergebnis

Antwort3

Geben Sie diese Elemente in die angegebenen Zellen ein:

A1: 2015 B1: Erster Tag C1: =DATEVALUE(A1&"-"&A2&"-01")
A2: 5 B2: Woche-Sonntag C2: =C1-WOCHENTAG(C1;2)

C4: =TEXT(SPALTEN($A$4:A4);"Ddd")
C5: =WENN(TEXT($C$2-1+SPALTEN($A$4:A4)+(ZEILEN($A$4:A4)-1)*7;"JJJJ-MM")=TEXT($C$1;"JJJJ-MM");$C$2-1+SPALTEN($A$4:A4)+(ZEILEN($A$4:A4)-1)*7;"")

Kopieren Sie dann C4 und C5, um die Breite
von sieben (7) Zellen zu füllen. Anschließend kopieren Sie Zeile 7, um insgesamt sechs (6) Zeilen zu füllen.
Wählen Sie die Zellen in diesen letzten 6 Zeilen aus und drücken Sie CTRL+ 1, klicken Sie im linken Bereich auf Benutzerdefiniert und geben Sie einen Wert Dfür das benutzerdefinierte Format ein.

Das Ergebnis sieht dann so aus:

2015 Erster Tag 01.05.2015              
5 Woche-Sonntag 2015-04-26              

Sonne mon tue wed thu fri saß
                    1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31                      

Dies funktioniert in Excel, LibreOffice und höchstwahrscheinlich auch in jeder anderen Tabellenkalkulation.

Antwort4

Linux:

Öffnen Sie ein Terminal und geben Sie Folgendes ein:

ncal 2015und drücken Sie ENTER(bei der $Eingabeaufforderung).

Die Ausgabe sieht wie folgt aus:

                                  2015
    January           February          March             April             
Su     4 11 18 25     1  8 15 22        1  8 15 22 29        5 12 19 26   
Mo     5 12 19 26     2  9 16 23        2  9 16 23 30        6 13 20 27   
Tu     6 13 20 27     3 10 17 24        3 10 17 24 31        7 14 21 28   
We     7 14 21 28     4 11 18 25        4 11 18 25        1  8 15 22 29   
Th  1  8 15 22 29     5 12 19 26        5 12 19 26        2  9 16 23 30   
Fr  2  9 16 23 30     6 13 20 27        6 13 20 27        3 10 17 24      
Sa  3 10 17 24 31     7 14 21 28        7 14 21 28        4 11 18 25      

    May               June              July              August            
Su     3 10 17 24 31     7 14 21 28        5 12 19 26        2  9 16 23 30
Mo     4 11 18 25     1  8 15 22 29        6 13 20 27        3 10 17 24 31
Tu     5 12 19 26     2  9 16 23 30        7 14 21 28        4 11 18 25   
We     6 13 20 27     3 10 17 24        1  8 15 22 29        5 12 19 26   
Th     7 14 21 28     4 11 18 25        2  9 16 23 30        6 13 20 27   
Fr  1  8 15 22 29     5 12 19 26        3 10 17 24 31        7 14 21 28   
Sa  2  9 16 23 30     6 13 20 27        4 11 18 25        1  8 15 22 29   

    September         October           November          December          
Su     6 13 20 27        4 11 18 25     1  8 15 22 29        6 13 20 27   
Mo     7 14 21 28        5 12 19 26     2  9 16 23 30        7 14 21 28   
Tu  1  8 15 22 29        6 13 20 27     3 10 17 24        1  8 15 22 29   
We  2  9 16 23 30        7 14 21 28     4 11 18 25        2  9 16 23 30   
Th  3 10 17 24        1  8 15 22 29     5 12 19 26        3 10 17 24 31   
Fr  4 11 18 25        2  9 16 23 30     6 13 20 27        4 11 18 25      
Sa  5 12 19 26        3 10 17 24 31     7 14 21 28        5 12 19 26      

... mit aktuellem Datum, das mit einer „umgekehrten Blocknummer“ gekennzeichnet ist. Kopieren und als Text einfügen.
Der erforderliche Arbeitsaufwand hängt vom verwendeten Tool ab.


Bearbeiten: Tippen Sie in die Eingabeaufforderung der Bash-Shell.
$ y=2015; for (( i=1 ; i<13 ; i++)) do cal $i $y ; done | sed -re 's/([^ ]+ 2015|[a-zåäö]{2}|[ 0-9]{2} )/"\1",/g' | sed -re 's/"\,[ ]*$/"/' >calendar-$y.csv

Erstellt eine CSV-Datei, die in jede Tabellenkalkulation geladen werden kann. Ändern Sie sie, y=2015um das Jahr widerzuspiegeln, für das Sie einen Kalender erstellen möchten.

verwandte Informationen