Google Sheets-Kochbuch: Terminkalender
In diesem Kapitel zeige ich eine Möglichkeit, einen Jahresplaner zu erstellen. Er soll folgende Anforderungen erfüllen:
- Der Kalender soll über 12 Monate laufen.
- Insbesondere kann man das Jahr und den Anfangsmonat frei wählen. Alle anderen Daten sollen daran angepasst werden.
- Es sollen möglichst wenige Daten "händisch" eingegeben werden.
- Wochenenden und Feiertage sollen optisch hervorgehoben werden.
tl;dr - Zusammenfassung
Bearbeiten- Erstellen Sie eine Tabelle mit drei Tabellenblättern.
- Benennen Sie die Tabellenblätter wie folgt:
- Jahresplaner
- TD
- SD
- Definieren Sie auf der Seite TD die benannten Bereiche:
- Jahr: G3
- Monat: G4
- Terminliste: C3:D27
Ist Ihre Terminliste länger, müssen Sie den benannten Bereich erweitern.
- Fügen Sie auf der Seite TD die Tabelle von "Tabelleneinträge in TD" ein (in Zelle A1).
- Fügen Sie auf der Seite SD die Tabelle von "Tabelleneinträge in SD" ein (in Zelle A1).
- Wenn das Einfügen nicht richtig funktioniert, wählen Sie noch einmal die ganze Tabelle von dieser Wikibooks-Seite aus. Es ist mir einige Male passiert, dass ich eine Zelle nicht ausgewählt hatte, dann werden die Einträge nicht richtig eingefügt.
- Fügen Sie auf der Seite Jahresplaner die Tabelle von "Tabelleneinträge in Jahresplaner" ein (in Zelle A1).
- Fügen Sie auf der Seite Jahresplaner für den Bereich B3:Y33 die beiden folgenden Regeln für die Bedingte Formatierung ein (benutzerdefinierte Formel):
=OR(IFERROR(SEARCH("Ft";B3));IFERROR(SEARCH("Ft";C3)))
=OR(REGEXMATCH(A3;"\d\d\sS");REGEXMATCH(B3;"\d\d\sS"))
- Verbinden Sie die Zellen B1:Y1 und zentrieren Sie die Überschrift.
- Verbinden Sie die Zellen B2:C2, D2:E2, usw.
- Fügen Sie weitere Formatierungen nach Ihrem Gusto hinzu: Rahmen, Schriftarten, Schriftgrößen usw.
Fertig ist Ihr flexibel anpassbarer Jahresplaner.
Langfassung
BearbeitenEs gibt drei verschiedene Ebenen für den Kalender.
- Die Eingabeebene. Auf dieser werden Startjahr und Startmonat eingetragen. Außerdem werden alle Termine eingetragen, die in den Kalender eingetragen werden sollen. Diese Daten liegen auf der Seite TD.
- Die Datenebene. Auf dieser werden alle notwendigen Steuerungsdaten berechnet, insbesondere die Folge der Monatsnummern und die Tage der Monate. Diese Daten liegen auf der Seite SD.
- Die Darstellungsebene. Hier werden keine Eintragungen vorgenommen, alle Änderungen geschehen automatisch. Diese Seite trägt den Namen Jahresplaner.
Eingegeben werden müssen zwei Daten. Diese werden als benannte Bereiche gespeichert.
- das Anfangsjahr (Jahr)
- der Anfangsmonat (Monat)
Die Daten fließen als von der Eingabeebene zur Datenebene und zum Jahresplaner. Die Jahreszahlen fließen von der Datenebene zur Eingabeebene und von dort zum Jahresplaner.
Die Datenebene SD
BearbeitenAuf der Datenebene werden alle Kalenderdaten berechnet. Wir beginnen mit den Monaten. Es sollen jeweils 12 Monate sein, beginnend mit einem beliebigen Monat. Um die Darstellung später zu vereinfachen, die aus zwei Spalten besteht, wird jede zweite Spalte befüllt. Es wäre aber natürlich genauso möglich, drei Spalten oder nur eine Spalte zu wählen.
=SPLIT(JOIN(", ,";INDEX(MOD(SEQUENCE(1;12;Monat);12)+12*(MOD(SEQUENCE(1;12;Monat);12)=0)));",";TRUE;FALSE)
- Bräuchten wir nur eine Sequenz von 1-12, könnten wir diese über
=SEQUENCE(1;12)
erzeugen. SPLIT(JOIN(", ,";SEQUENCE(1;12));",";TRUE;FALSE)
verteilt diese Folge auf jede zweite Spalte. Zunächst wird das von SEQUENCE erzeugte Zeilenarray zu einer Zeichenkette verbunden, anschließend durch SPLIT auf jede zweite Spalte aufgeteilt (leere Einträge nicht löschen).- Wir brauchen aber - abhängig vom Anfangsmonat - unterschiedliche Folgen (1-12 oder 2-1, oder 3-2 usw.)
INDEX(MOD(SEQUENCE(1;12;Monat);12)+12*(MOD(SEQUENCE(1;12;Monat);12)=0))
- Hiermit erhalten wir unsere gewünschten Folgen, abhängig vom Anfangsmonat.
- Bräuchten wir nur eine Sequenz von 1-12, könnten wir diese über
Nun müssen wir die Jahre berechnen. Wir fangen im Anfangsjahr an (Jahr). Die Jahreszahl steigt um 1, wenn der Monat Januar ist.
=Jahr
- In B1 kommt also nur das Anfangsjahr.
=If(D2=1;$B1+1;B1)
- In D1 wird überprüft, ob der aktuelle Monat Januar 1, dann wird das Jahr erhöht, sonst nicht. Entsprechend für alle folgenden Zellen bis X1.
Am Schluss kommen die Tage der Monate. Das machen wir wieder mit einer Sequenz. Den letzten Tag des Kalendermonats erhalten wir über DATE, indem wir den 0. Tag des folgenden Monats berechnen. Der letzte Tag des Februars ist der 0. Tag des März, der letzte Tag des Augustes der 0. Tag des September, usw.
=SEQUENCE(DAY(DATE(B$1;D2;0)))
- Wir erzeugen einen Spaltenvektor, dessen Länge durch die Anzahl der Tage festgelegt wird (in B$1 steht das Jahr, in D2 der Folgemonat, 0. Tag).
- Das geht für jede Spalte, bis auf die letzte. In der letzten Spalte beziehen wir uns auf wieder auf die erste Spalte, da wir den Folgemonat brauchen (der in der ersten Spalte steht).
Tabelleneinträge in SD
BearbeitenVorausgesetzt, Sie haben die zwei benannten Bereiche definiert, können Sie auch einfach die Tabelle kopieren und auf das Blatt SD einfügen.
Jahr | =Jahr |
=If(D2=1;$B1+1;B1) | =If(F2=1;$B1+1;D1) | =If(H2=1;$B1+1;F1) | =If(J2=1;$B1+1;H1) | =If(L2=1;$B1+1;J1) | =If(N2=1;$B1+1;L1) | =If(P2=1;$B1+1;N1) | =If(R2=1;$B1+1;P1) | =If(T2=1;$B1+1;R1) | =If(V2=1;$B1+1;T1) | =If(X2=1;$B1+1;V1) | |||||||||||
Monat | =SPLIT(JOIN(", ,"; INDEX(MOD(SEQUENCE(1;12;Monat);12) + 12*(MOD(SEQUENCE(1;12;Monat); 12)=0)));",";TRUE;FALSE) |
||||||||||||||||||||||
Tag | =SEQUENCE(DAY(DATE(B$1;D2;0))) | =SEQUENCE( DAY( DATE(D$1;F2;0))) | =SEQUENCE( DAY( DATE(F$1;H2;0))) | =SEQUENCE( DAY( DATE(H$1;J2;0))) | =SEQUENCE( DAY( DATE(J$1;L2;0))) | =SEQUENCE( DAY( DATE(L$1;N2;0))) | =SEQUENCE( DAY( DATE(N$1;P2;0))) | =SEQUENCE( DAY( DATE(P$1;R2;0))) | =SEQUENCE( DAY( DATE(R$1;T2;0))) | =SEQUENCE( DAY( DATE(T$1;V2;0))) | =SEQUENCE( DAY( DATE(V$1;X2;0))) | =SEQUENCE( DAY( DATE(X$1;B2;0))) |
Die Eingabeebene TD
BearbeitenEingegeben werden müssen zwei Daten:
- das Anfangsjahr (Jahr)
- der Anfangsmonat (Monat)
Die zwei Felder speichert man am besten als benannten Bereich (Jahr/Monat).
Terminliste
BearbeitenFeiertage bleiben in der Regel am gleichen Datum (mit Ausnahme der mit Ostern zusammenhängenden Feiertage). Auch Jubiläen verändern in der Regel nicht ihr Datum. Außerdem lassen sich noch einzelne Termine händisch eintragen. Da die Anzahl der Termine nicht feststeht, verwenden wir wieder einen benannten Bereich, der bei Bedarf beliebig viele Termine aufnehmen kann. Diese Termine müssen nicht in der kalendarischen Reihenfolge eingetragen werden. Den benannten Bereich nennen wir Terminliste. Damit die Jahreszahlen nicht angepasst werden müssen, werden diese automatisch berechnet (bis auf die Ostertermine).
Die Jahreszahlen schauen wir durch einen HLOOKUP nach, da der Suchwert in der unteren Zeile steht, drehen wir die Zeilen durch ein Array um.
=DATE(IFERROR(HLOOKUP(B4;{SD!$B$2:$X$2;SD!$B$1:$X$1};2;0));B4;A4)
- Dieser Code wird in Feld C17 verwendet.
- Wir basteln uns das Datum aus dem Tag, dem Monat und dem entsprechenden Jahr zusammen. Dabei müssen wir das Jahr auf der Seite SD nachschauen.
In der Liste finden Sie "Fake"-Einträge (2 Geburtstage, einen Hochzeitstag). Feiertage werden durch "Ft" gekennzeichnet. Sie könnten auch eine unauffälligere Kennzeichnung verwenden. Diese Kennzeichnung sorgt später auf der Darstellungsseite dafür, dass Feiertag farblich hervorgehoben werden.
Ostern und mit Ostern zusammenhängende Feiertage
BearbeitenDas Osterdatum kann folgendermaßen berechnet werden, wenn das Jahr bekannt ist:
=TO_DATE(7*ROUND((4&-Osterjahr)/7+MOD(19*MOD(Osterjahr;19)-7;30)*0,14;)-6)
- Es gibt verschiedene andere Berechnungsmöglichkeiten, aber die angegebene funktioniert.
- Karfreitag ist zwei Tage vorher.
- Ostermontag ist einen Tag später.
- Christi-Himmelfahrt ist 39 Tage später.
- Pingsten ist 49 Tage später.
- Pfingstmontag ist 50 Tage später.
- Fronleichnam ist 60 Tage später.
Die Tage und die Monate berechnen wir entsprechend aus dem Osterdatum. Da die Ostertage - je nach Anfangsmonat - im aktuellen oder im folgenden Jahr liegen können, berechnen wir die Ostertage für das aktuelle Jahr und das folgende Jahr, also alle Termine zweimal.
Tabelleneinträge in TD
Bearbeiten- Erstellen Sie die Seite TD.
- Definieren Sie die benannten Bereiche
- Jahr: G3
- Monat: G4
- Terminliste: C3:D27
Sie können nun diese Tabelle nehmen, und auf das Blatt TD einfügen.
Termindaten mit Eintrag | ||||||
Tag | Monat | Datum | Eintrag | Tabellendaten | ||
=TO_DATE(7*ROUND( (4&-Jahr)/7+MOD( 19*MOD(Jahr;19)-7;30)*0,14;)-6) | Ostern | Anfangsjahr | 2024 | |||
=TO_DATE(7*ROUND( (4&-(Jahr+1))/7+MOD( 19*MOD((Jahr+1);19)-7;30)*0,14;)-6) | Ostern | Anfangsmonat | 4 | |||
=DAY(C$3-2) | =MONTH(C$3-2) | =DATE(Jahr;B5;A5) | Karfreitag Ft | |||
=DAY(C$4-2) | =MONTH(C$4-2) | =DATE(Jahr+1;B6;A6) | Karfreitag Ft | |||
=DAY(C$3+1) | =MONTH(C$3+1) | =DATE(Jahr;B7;A7) | Ostermontag Ft | |||
=DAY(C$4+1) | =MONTH(C$4+1) | =DATE(Jahr+1;B8;A8) | Ostermontag Ft | |||
=DAY(C$3+39) | =MONTH(C$3+39) | =DATE(Jahr;B9;A9) | Christi Him. Ft | |||
=DAY(C$4+39) | =MONTH(C$4+39) | =DATE(Jahr+1;B10;A10) | Christi Him. Ft | |||
=DAY(C$3+49) | =MONTH(C$3+49) | =DATE(Jahr;B11;A11) | Pfingsten | |||
=DAY(C$4+49) | =MONTH(C$4+49) | =DATE(Jahr+1;B12;A12) | Pfingsten | |||
=DAY(C$3+50) | =MONTH(C$3+50) | =DATE(Jahr;B13;A13) | Pfingstmontag Ft | |||
=DAY(C$4+50) | =MONTH(C$4+50) | =DATE(Jahr+1;B14;A14) | Pfingstmontag Ft | |||
=DAY(C$3+60) | =MONTH(C$3+60) | =DATE(Jahr;B15;A15) | Fronleichnam Ft | |||
=DAY(C$4+60) | =MONTH(C$4+60) | =DATE(Jahr+1;B16;A16) | Fronleichnam Ft | |||
1 | 1 | =DATE( IFERROR(HLOOKUP(B10; {SD!$B$2:$X$2;SD!$B$1:$X$1} ;2;0));B10;A10) | Neujahr Ft | |||
3 | 4 | =DATE( IFERROR(HLOOKUP(B11; {SD!$B$2:$X$2;SD!$B$1:$X$1} ;2;0));B11;A11) | Sabrina* | |||
1 | 5 | =DATE( IFERROR(HLOOKUP(B12; {SD!$B$2:$X$2;SD!$B$1:$X$1} ;2;0));B12;A12) | 1. Mai Ft | |||
19 | 9 | =DATE( IFERROR(HLOOKUP(B13; {SD!$B$2:$X$2;SD!$B$1:$X$1} ;2;0));B13;A13) | Hochzeitstag | |||
28 | 7 | =DATE( IFERROR(HLOOKUP(B14; {SD!$B$2:$X$2;SD!$B$1:$X$1} ;2;0));B14;A14) | Felix* | |||
3 | 10 | =DATE( IFERROR(HLOOKUP(B15; {SD!$B$2:$X$2;SD!$B$1:$X$1} ;2;0));B15;A15) | TdD Einheit Ft | |||
1 | 11 | =DATE( IFERROR(HLOOKUP(B16; {SD!$B$2:$X$2;SD!$B$1:$X$1} ;2;0));B16;A16) | Allerheiligen Ft | |||
24 | 12 | =DATE( IFERROR(HLOOKUP(B17; {SD!$B$2:$X$2;SD!$B$1:$X$1} ;2;0));B17;A17) | Heilig Abend | |||
25 | 12 | =DATE( IFERROR(HLOOKUP(B18; {SD!$B$2:$X$2;SD!$B$1:$X$1} ;2;0));B18;A18) | Weihnachten Ft | |||
26 | 12 | =DATE( IFERROR(HLOOKUP(B19; {SD!$B$2:$X$2;SD!$B$1:$X$1} ;2;0));B19;A19) | 2. Weinachtstag Ft | |||
31 | 12 | =DATE( IFERROR(HLOOKUP(B20; {SD!$B$2:$X$2;SD!$B$1:$X$1} ;2;0));B20;A20) | Silvester |
Jahresplaner
BearbeitenAuf der Seite Jahresplaner werden nun die Daten zusammengefügt und die optischen Anpassungen vorgenommen (Farben, Schriftarten etc.). Der Jahresplaner beginnt in der Spalte B, damit wir Eigenschaften der bedingten Formatierung ausnützen können.
Jeweils zwei Spalten erzeugen einen Tag. In der linken Spalte steht das Tagesdatum, in der rechten Spalte die Termineinträge.
=CONCAT("Jahresplaner: "; Jahr &" - " & SD!X1)
in B1:Y1- Die Überschrift wird mit diesem String erzeugt.
=IFERROR(INDEX(TEXT(DATE(SD!B1:X1;SD!B2:X2;1);"MMMM")))
in B2:C2TEXT(DATE(SD!B1:X1;SD!B2:X2;1);"MMMM")
gibt das Datum als Monatsnamen aus.- Die Arrayformel, die wir mit INDEX erzeugen, sorgt dafür, dass die Funktion auf den ganzen Bereich SD!B2:X2 angewendet wird.
- IFERROR sorgt dafür, dass für leere Zellen keine Ausgabe erzeugt wird.
=INDEX(IF(ISBLANK(SD!B3:SD!B33);;TEXT(DATE(SD!B$1;SD!B$2;SD!B3:SD!B33);"dd") &" " & LEFT(TEXT(DATE(SD!B$1;SD!B$2;SD!B3:SD!B33);"ddd"))))
in B3.- Diese Formel erzeugt die Ausgabe des Tagesdatums für einen Monat. Da mir keine der Formatierungsmöglichkeiten gefiel, habe ich mir diese Ausgabe selbst zusammengebaut.
TEXT(DATE(SD!B$1;SD!B$2;SD!B3:SD!B33);"dd")
gibt den Tag jeweils zweistellig aus (mit führender Null wo nötig).LEFT(TEXT(DATE(SD!B$1;SD!B$2;SD!B3:SD!B33);"ddd"))
gibt den ersten Buchstaben des Tagesnamens aus.- Mit
IF(ISBLANK(SD!B3:SD!B33)...
erzeugen wir keine Ausgabe für Zellen, in denen es kein Tagesdatum gibt (31.04. etc.) - INDEX wendet die Formel wieder auf den ganzen Bereich B3:B33 an.
- Diese Formel muss nun 11* kopiert werden, in D3, F3, H3 usw.
=INDEX( IF(ISBLANK(B3:B33);;IFERROR( VLOOKUP( DATE(SD!B$1; SD!B$2; SD!B3:SD!B33); Terminliste;2;0))))
in C3.
- Diese Formel erzeugt die Ausgabe der Termine aus der Terminliste.
- Mit VLOOKUP suchen wir nach dem Datum in der Terminliste, und geben das Datum in den Kalender aus. Eine Nachlässigkeit gibt es hier: es ist nur ein Eintrag pro Datum möglich.
- INDEX wendet die Formel wieder auf den ganzen Bereich an.
- Diese Formel muss nun 11* kopiert werden, in E3, G3, I3 usw.
Tabelleneinträge in Jahresplaner
BearbeitenFügen Sie diese Tabelle auf das Blatt Jahresplaner ein. Anschließend müssen Sie die Zellen so verbinden wie sie es für passend halten, und die Formatierungen vornehmen.
=CONCAT( "Jahresplaner: "; Jahr &" - " & SD!X1) |
||||||||||||||||||||||||
=IFERROR( INDEX( TEXT( DATE(SD!B1:X1;SD!B2:X2;1); "MMMM"))) |
||||||||||||||||||||||||
=INDEX( IF( ISBLANK(SD!B3:SD!B33); ; TEXT( DATE(SD!B$1; SD!B$2; SD!B3:SD!B33); "dd") & " " & LEFT( TEXT( DATE( SD!B$1; SD!B$2; SD!B3:SD!B33); "ddd")))) | =INDEX( IF(ISBLANK(B3:B33);;IFERROR( VLOOKUP( DATE(SD!B$1; SD!B$2; SD!B3:SD!B33); Terminliste;2;0)))) | =INDEX( IF( ISBLANK(SD!D3:SD!D33); ; TEXT( DATE(SD!D$1; SD!D$2; SD!D3:SD!D33); "dd") & " " & LEFT( TEXT( DATE(SD!D$1; SD!D$2; SD!D3:SD!D33); "ddd")))) | =INDEX( IF(ISBLANK(D3:D33);;IFERROR( VLOOKUP( DATE(SD!D$1; SD!D$2; SD!D3:SD!D33); Terminliste;2;0)))) | =INDEX( IF( ISBLANK(SD!F3:SD!F33); ; TEXT( DATE(SD!F$1; SD!F$2; SD!F3:SD!F33); "dd") & " " & LEFT( TEXT( DATE(SD!F$1; SD!F$2; SD!F3:SD!F33); "ddd")))) | =INDEX( IF(ISBLANK(F3:F33);;IFERROR( VLOOKUP( DATE(SD!F$1; SD!F$2; SD!F3:SD!F33); Terminliste;2;0)))) | =INDEX( IF( ISBLANK(SD!H3:SD!H33); ; TEXT( DATE(SD!H$1; SD!H$2; SD!H3:SD!H33); "dd") & " " & LEFT( TEXT( DATE(SD!H$1; SD!H$2; SD!H3:SD!H33); "ddd")))) | =INDEX( IF(ISBLANK(H3:H33);;IFERROR( VLOOKUP( DATE(SD!H$1; SD!H$2; SD!H3:SD!H33); Terminliste;2;0)))) | =INDEX( IF( ISBLANK(SD!J3:SD!J33); ; TEXT( DATE(SD!J$1; SD!J$2; SD!J3:SD!J33); "dd") & " " & LEFT( TEXT( DATE(SD!J$1;SD!J$2;SD!J3:SD!J33); "ddd")))) | =INDEX( IF(ISBLANK(J3:J33);;IFERROR( VLOOKUP( DATE(SD!J$1; SD!J$2; SD!J3:SD!J33); Terminliste;2;0)))) | =INDEX( IF( ISBLANK(SD!L3:SD!L33); ; TEXT( DATE(SD!L$1; SD!L$2; SD!L3:SD!L33); "dd") & " " & LEFT( TEXT( DATE(SD!L$1;SD!L$2;SD!L3:SD!L33); "ddd")))) | =INDEX( IF(ISBLANK(L3:L33);;IFERROR( VLOOKUP( DATE(SD!L$1; SD!L$2; SD!L3:SD!L33); Terminliste;2;0)))) | =INDEX( IF( ISBLANK(SD!N3:SD!N33); ; TEXT( DATE(SD!N$1;SD!N$2;SD!N3:SD!N33); "dd") & " " & LEFT( TEXT( DATE(SD!N$1;SD!N$2;SD!N3:SD!N33); "ddd")))) | =INDEX( IF(ISBLANK(N3:N33);;IFERROR( VLOOKUP( DATE(SD!N$1; SD!N$2; SD!N3:SD!N33); Terminliste;2;0)))) | =INDEX( IF( ISBLANK(SD!P3:SD!P33); ; TEXT( DATE(SD!P$1;SD!P$2;SD!P3:SD!P33); "dd") & " " & LEFT( TEXT( DATE(SD!P$1;SD!P$2;SD!P3:SD!P33); "ddd")))) | =INDEX( IF(ISBLANK(P3:P33);;IFERROR( VLOOKUP( DATE(SD!P$1; SD!P$2; SD!P3:SD!P33); Terminliste;2;0)))) | =INDEX( IF( ISBLANK(SD!R3:SD!R33); ; TEXT( DATE(SD!R$1;SD!R$2;SD!R3:SD!R33); "dd") & " " & LEFT( TEXT( DATE(SD!R$1;SD!R$2;SD!R3:SD!R33); "ddd")))) | =INDEX( IF(ISBLANK(R3:R33);;IFERROR( VLOOKUP( DATE(SD!R$1; SD!R$2; SD!R3:SD!R33); Terminliste;2;0)))) | =INDEX( IF( ISBLANK(SD!T3:SD!T33); ; TEXT( DATE(SD!T$1; SD!T$2; SD!T3:SD!T33); "dd") & " " & LEFT( TEXT( DATE(SD!T$1; SD!T$2; SD!T3:SD!T33); "ddd")))) | =INDEX( IF(ISBLANK(T3:T33);;IFERROR( VLOOKUP( DATE(SD!T$1; SD!T$2; SD!T3:SD!T33); Terminliste;2;0)))) | =INDEX( IF( ISBLANK(SD!V3:SD!V33); ; TEXT( DATE(SD!V$1;SD!V$2;SD!V3:SD!V33); "dd") & " " & LEFT( TEXT( DATE(SD!V$1; SD!V$2; SD!V3:SD!V33); "ddd")))) | =INDEX( IF(ISBLANK(V3:V33);;IFERROR( VLOOKUP( DATE(SD!V$1; SD!V$2; SD!V3:SD!V33); Terminliste;2;0)))) | =INDEX( IF( ISBLANK(SD!X3:SD!X33); ; TEXT( DATE(SD!X$1; SD!X$2; SD!X3:SD!X33); "dd") & " " & LEFT( TEXT( DATE(SD!X$1; SD!X$2; SD!X3:SD!X33); "ddd")))) | =INDEX( IF(ISBLANK(X3:X33);;IFERROR( VLOOKUP( DATE(SD!X$1; SD!X$2; SD!X3:SD!X33); Terminliste;2;0)))) |
Bedingte Formatierung
BearbeitenWir wenden zwei bedingte Formatierungen an, beide für den Bereich B3:Y33. Die eine formatiert die Wochenenden, die andere die Feiertage. Die Reihenfolge im Fenster "Regeln für die bedingte Formatierung" entscheidet darüber, welche Regel Vorrang hat. Es "gewinnt" die obere Formatierung.
=OR(IFERROR(SEARCH("Ft";B3));IFERROR(SEARCH("Ft";C3)))
- Diese Regel fomatiert die Feiertage, die durch die Buchstabenkombination "Ft" gekennzeichnet sind.
- Wir wenden diese Regel auf den Bereich an, d.h. sie wird für jede einzelne Zelle angewendet. Dadurch wird die aktuelle Zelle, oder die Zelle rechts daneben auf den Eintrag "Ft" überprüft.
=OR(REGEXMATCH(A3;"\d\d\sS");REGEXMATCH(B3;"\d\d\sS"))
- Diese Regel formatiert die Wochenenden.
- Sie sucht mit einem regulären Ausdruck nach zwei Zahlen, gefolgt von einem Leerzeichen, gefolgt von einem großen S.
- Wenn Sie die Wochentage anders formatieren, müssen Sie den regulären Ausdruck entsprechend anpassen.
- Es wird die aktuelle Zelle, oder die Zelle links daneben überprüft. Da wir die Zelle links daneben überprüfen, überprüft die Regel die Zelle A3 (die natürlich leer ist). Da die Regel aber auf jede Zelle im Bereich angewendet wird, wird für die Zelle C3 die Regel auf B3 angewendet, für E3 auf D3 usw.
Die Beispiele auf dieser Seite wurden getestet: 04/2024