Dynamischer monatlicher Excel-Kalender

9701
ariane Hamelin

Ich möchte einen Monatskalender erstellen (1 Monat pro Blatt), in dem sich nur das Jahr ändern könnte (und damit das Datum). Meine Vorlage des Kalenders ist bereits erstellt. Alles, was ich möchte, ist, eine Formel hinzuzufügen, die das Datum entsprechend dem Wochentag ändert, wenn ich das Jahr ändere. Die Woche beginnt am Sonntag

Vielen Dank !

2
Eine Kopie oder ein Screenshot Ihrer Vorlage wäre nützlich. Beschreiben Sie auch vorhandene Formeln und alles, was Sie bereits versucht haben. Anscheinend sollte dies machbar sein, wäre aber sehr knifflig. Gibt es einen bestimmten Grund dafür, dass dies in Excel sein muss, und nicht eine andere Anwendung, die speziell für die Verarbeitung von Kalendern entwickelt wurde? Iszi vor 9 Jahren 2

4 Antworten auf die Frage

2
Iszi

Hier ist was ich mir ausgedacht habe. Passen Sie die Anweisungen nach Bedarf an Ihre eigene Vorlage an.


Anleitung

  1. Stellen Sie A1 auf den Wert des Jahres für den Monat ein, den Sie darstellen möchten.
    • Für das Datum der ersten Überarbeitung dieses Beitrags wäre es "2015".
  2. Stellen Sie A2 auf den vollständigen Namen des Monats ein, den Sie darstellen möchten.
    • Für das Datum der ersten Überarbeitung dieses Beitrags wäre es "Mai".
  3. Füllen Sie A3: G3 mit den Wochentagen, beginnend mit "Sonntag" in A3 und enden mit "Samstag" in G3.
  4. Geben Sie die folgende Formel in A4 ein: =IF(WEEKDAY(DATEVALUE(CONCATENATE($A$2," 1, ",$A$1)))=1,1,"")
    • Abhängig vom Monat / Jahr kann diese Formel hier einen leeren Wert zurückgeben. (Es wird für Mai 2015 sein.) Dies ist normal.
  5. Fügen 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)
    • Abhängig vom Monat / Jahr kann diese Formel hier einen leeren Wert zurückgeben. (Es wird für Mai 2015 sein.) Dies ist normal.
  6. Kopieren Sie die Formel aus B4 über die Zellen C4: G4. Excel sollte die Zellverweise in der Formel nach Bedarf automatisch anpassen.
    • Zu diesem Zeitpunkt sollte die Formel in einer der Zellen in Zeile 4 "1" sein, und jede Zelle sollte danach ein höheres Inkrement als die vorherige Zelle zurückgeben. Zellen vor der "1" sollten leer sein. Für Mai 2015 sollten Sie Leerzeichen in A4 sehen: E4, "1" in F4 (Freitag) und "2" in G4 (Samstag) .
  7. Fügen Sie die folgende Formel in A5 ein: =IF(ISERROR(DATEVALUE(CONCATENATE($A$2," ",G4+1,", ",$A$1))),"",G4+1)
    • Das Formelergebnis 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 Zellverweise in der Formel nach Bedarf automatisch anpassen.
    • A6: A9 wird jetzt zu Leerzeichen ausgewertet. Das ist normal.
  9. Fügen Sie die folgende Formel in B5 ein: =IF(ISERROR(DATEVALUE(CONCATENATE($A$2," ",A5+1,", ",$A$1))),"",A5+1)
    • Das Formelergebnis sollte um eins höher als der Wert von A5 sein.
  10. Kopieren Sie die Formel in B5 über die Zellen C5: G5. Excel sollte die Zellverweise in der Formel nach Bedarf automatisch anpassen.
    • Die Formeln in Zeile 5 sollten jetzt zu einer Menge von Zahlen ausgewertet werden, die von Spalte A zu Spalte G stufenweise ansteigen.
  11. Wählen Sie B5: G5 und kopieren Sie diese Zellen durch B6: G9. Excel sollte die Zellverweise in der Formel nach Bedarf automatisch anpassen.
    • Zu diesem Zeitpunkt sollte der Kalender für den angegebenen Monat entsprechend gefüllt sein. Zellen vor dem Ersten des Monats und nach dem letzten Tag des Monats sollten leer sein.
    • Für bestimmte Monate wie Januar 2015 ist Zeile 9 vollständig leer. Das ist normal.

Funktionen

  • CONCATENATE fügt Textzeichenfolgen zusammen.
  • DATEVALUE gibt einen Excel-Wert "Seriennummer" für das durch eine Textzeichenfolge dargestellte Datum zurück. Es wird ein Fehler zurückgegeben, wenn die Zeichenfolge nicht mit einem bekannten Datumsformat übereinstimmt oder wenn die Zeichenfolge kein tatsächliches Datum darstellt (z. B. "31. Januar 2015" oder "29. Februar 2015").
  • WEEKDAY gibt einen Wert zwischen 1 und 7 zurück, der den Wochentag eines bestimmten Datums darstellt.
  • COLUMNS gibt die Anzahl der Spalten zurück, die von einem angegebenen Zellenfeld überspannt werden.
  • IF ermöglicht es Ihnen, einen ausgewählten Wert (oder ein Formelergebnis) zurückzugeben, je nachdem, ob eine angegebene Formel TRUE oder FALSE ist.
  • ISERROR gibt TRUE zurück, wenn die angegebene Formel zu einem Fehler führt, oder FALSE, wenn die Formel keinen Fehler generiert.

Formelerklärungen

  • A4 stellt Informationen aus A1 und A2 zusammen, um eine Textzeichenfolge zu erstellen, die den ersten Tag des Monats darstellt. (Bsp .: "1. Mai 2015".) Anschließend wird geprüft, ob der Wochentag dieses Datums Sonntag ist. Gibt 1 zurück, wenn es sich um einen Sonntag handelt, leer, wenn nicht.

  • B4: G4 Überprüfen Sie die vorherige Zelle, um zu sehen, ob sie leer ist. Wenn nicht, wird ein Wert zurückgegeben, der um eins höher ist als die vorherige Zelle. Wenn die vorherige Zelle leer ist, wird geprüft, ob der aktuelle Wochentag mit dem ersten Tag des angegebenen Monats übereinstimmt. Gibt 1 zurück, wenn ja, leer, falls nicht.

  • A5: A9 addiert den Wert vom Ende der vorhergehenden Zeile um 1 und kombiniert dann das Ergebnis mit den Informationen von A1 und A2, um eine Datumszeichenfolge zu bilden. Überprüft, ob das Datum tatsächlich vorhanden ist. Gibt die Nummer des Monats zurück, wenn ja, leer, falls nicht.

  • B5: G9 addiert den Wert aus der vorhergehenden Zelle um 1 und kombiniert das Ergebnis mit den Informationen von A1 und A2, um eine Datumszeichenfolge zu bilden. Überprüft, ob das Datum tatsächlich vorhanden ist. Gibt die Nummer des Monats zurück, wenn ja, leer, falls nicht.


Bildschirmfoto

Beispielausgabe für Mai 2015.

0
STTR

New WorkbookAus Vorlage erstellen Calendar sundaySuchbegriff.

Suchzeichenfolge "Kalender Sonntag"

Tagesbereich auswählen und Manage Rulesim Conditional FormattingMenü drücken .

Excel-Formatierungsregelmenü bearbeiten

Hinzufügen New Rule

Formatierungsdialog für Excel-Regeln

Regel gleich hinzufügen =TODAY()

Excel-Formatierungsregel hinzufügen gleich "= TODAY ()"

Ergebnis:

Excel-Formatierungsregel Kalenderergebnis

Ok, das ist Betrug. :-P Iszi vor 9 Jahren 0
Ich mag die Einfachheit von Grund auf, aber OP hat bereits eine Vorlage. Wenn sie es ändern können, ist dies der richtige Weg. Wenn nicht, benötigen sie einen Formelansatz. Engineer Toast vor 9 Jahren 0
@EngineerToast Alle können in der öffentlichen Vorlage eine Formel sehen. STTR vor 9 Jahren 0
0
Hannu

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) + (REIHEN ($ A $ 4: A4) -1) * 7; "YYYY-MM") = TEXT ($ C $ 1; "JJJJ-MM"); $ C $ 2-1 + SPALTEN ($ A $ 4: A4) + (REIHEN ($ A $ 4: A4) -1) * 7; "")  

Kopieren Sie dann C4 und C5, um die Breite von sieben (7) Zellen zu füllen.
Es folgt eine Kopie von Zeile 7, um insgesamt sechs (6) Zeilen aufzufüllen.
Wählen Sie die Zellen in den letzten 6 Zeilen aus und drücken Sie CTRL+ 1, klicken Sie im linken Fensterbereich auf Benutzerdefiniert und geben Sie Dfür das benutzerdefinierte Format eine einzelne ein .

Das Ergebnis wird so aussehen:

2015 erster Tag 2015-05-01  5 Wochen-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 allen anderen Tabellenkalkulationen.

-1
Hannu

Linux:

Öffnen Sie ein Terminal und geben Sie Folgendes ein:

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

Die Ausgabe sieht folgendermaßen 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 mit einer "umgekehrten Blocknummer" gekennzeichnet. Kopieren und als Text einfügen.
Der erforderliche Arbeitsaufwand hängt von dem verwendeten Werkzeug ab.


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

Erzeugt eine CSV-Datei, die in eine beliebige Tabelle geladen werden kann. ändern y=2015, um das Jahr wiederzugeben, für das Sie einen Kalender erstellen möchten.

`für ((i = 1; i <13; i ++)) do cal $ i 2015; done` erstellt eine Liste von Monaten anstelle der obigen Tabelle. "Man cal" für mehr Optionen. Hannu vor 9 Jahren 0
Schön, aber die Frage war ganz besonders Excel. Das bedeutet zwei Dinge: 1. Die Wahrscheinlichkeit ist groß, dass der Fragesteller eine bestimmte Anforderung hat, um in Excel zu arbeiten, oder dass er dieses Werkzeug am besten verwendet. 2. Der Fragesteller befindet sich wahrscheinlich auf einem Windows-System - möglicherweise Mac. Auf keinen Fall Linux. Iszi vor 9 Jahren 0
Für das, was es wert ist: "Excel" für einige ist das gleiche wie "Spreadsheet", und es gibt eine Reihe von Varianten davon. Hannu vor 9 Jahren 0
Meinetwegen. Aber die meisten Leute denken "Computer" == "Windows PC". ;-) Iszi vor 9 Jahren 0
=) hängt davon ab, wer deine Freunde sind. Hannu vor 9 Jahren 0