Kalender erstellen

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
redeagle56
Beiträge: 39
Registriert: Sa 26. Sep 2015, 20:37

Kalender erstellen

Beitrag von redeagle56 » So 21. Feb 2016, 15:41

Hallo alle zusammen,
ich habe wieder mal ein bischen mit Kalendern rumprobiert. Ich stelle einen zur Verfügung zum weiteren basteln. Vielleicht hat jemand noch Ideen dazu oder Vorschläge zur Verbesserung. Kann sein das beim Passwort die Umschalttaste gedrückt war.
Gruß redeagle56
Kalender redeagle56.ods
(41.69 KiB) 232-mal heruntergeladen

balu
Beiträge: 150
Registriert: Di 12. Okt 2010, 11:35

Re: Kalender erstellen

Beitrag von balu » Mo 22. Feb 2016, 13:07

Hallo redeagle56,
ich habe wieder mal ein bischen mit Kalendern rumprobiert.
Da ich ja selber aus eigener Erfahrung weiß wie schwer jeder Anfang bei so etwas ist, werde ich mich mit meiner Kritik ein wenig zurückhalten. Aber so viel sei schon mal vorweg gesagt: Das geht auch besser und einfacher.;-)

So ein Kalender fällt bei mir seit langem in die Kategorien: 08/15, Kleinkram. Und damit Du das auch bald sagen kannst, nimm bitte meine Worte als Sachgerechte Kritik und Hilfe auf.

Ich stelle einen zur Verfügung zum weiteren basteln.
Ich werde nicht daran basteln, sondern das machst Du selber.

Vielleicht hat jemand noch Ideen dazu oder Vorschläge zur Verbesserung.
Ooooh jaaaa! Da habe ich so einige.


In deiner Datei:
In der Datei hat geschrieben: Das Passwort für Bastler: redeagle56
Für das Blatt *Kalender* trifft das nicht zu. Macht aber nix, da ich trotzdem den Schutz umgehen konnte.

In der Datei hat geschrieben: Bei den Geburtstagen können am gleichen Tag zwei Personen nebeneinander eingetragen werden.
Das ist schon mal sehr gut.

In der Datei hat geschrieben: Bei den Geburtstagen ist zu beachten, dass die Daten von oben nach unten in chronologischer
Reihenfolge (Datum ist entscheidend) vorgenommen werden.
Dies System ist unklug. Denn wenn ein Geburtsdatum hinzu kommt oder eines entfällt, muss man alles eventuell umschreiben. Aber dazu später mehr.



Kommen wir zum eigentlichem Kalender.

Man kann es sich auch unnötig schwer machen. Doch zu erst musst Du erstmal alles von A38 bis einschließlich J443 und die Spalten I und J löschen. Warum, das wirst Du noch merken.

In G2 das Jahr einzutragen ist ok.

Aber in B2 den Monat von Hand eintragen ist blöd. Das geht eleganter. Und zwar:
In B2 folgende Formel

Code: Alles auswählen

=DATUM(G2;1;1)
Und die Zelle mit "MMMM" formatieren.

Spalte B, in B5.

Code: Alles auswählen

=DATWERT(VERKETTEN(I5;".01.";$G$2))
Das geht einfacher, und zwar bedeutend einfacher.
Einfach in B5

Spalte C, in C5.

Code: Alles auswählen

=WENN(ISTFEHLER(INDEX($Feiertage.$A$2:$A$28;VERGLEICH(B5;$Feiertage.$A$2:$A$28;0)))=WAHR();"";1)
Einfacher.

Code: Alles auswählen

=ZÄHLENWENN($Feiertage.$A$2:$A$28;B5)
Was geschieht hier?
Ganz einfach!
ZÄHLENWENN zählt wie oft das Datum in B5 in der Feiertagsliste vorkommt und gibt die gezählten Treffer aus. Und da die Feiertagsliste momentan keine doppelten Datume enthällt, wird immer schön brav die 1 ausgegeben

Die direkte Zellformatierung kannst Du z.B. wie folgt umstellen.

Spalte D, in D5

Code: Alles auswählen

=DATUM($G$2;1;I5)
Da der Inhalt von Spalte I nicht mehr existiert, machst Du es dir widerum einfacher. Und zwar so.

Spalte F, in F5

Code: Alles auswählen

=WENN(C5=1;VERWEIS(B5;$Feiertage.$A$2:$A$28:$Feiertage.$B$2:$B$28);"")
Tja, und durch den Einsatz von VERWEIS macht man sich natürlich das leben nur unnötig schwer.
Besser ist es, wenn man SVERWEIS nimmt, denn da kann und darf die Liste ruhig unsortiert sein. Also in F5.

Code: Alles auswählen

=WENN(C5=1;SVERWEIS(B5;$Feiertage.$A$2:$B$28;2;0);"")


Spalte G, in G5

Code: Alles auswählen

=WENN(J5=1;VERWEIS(B5;$Geburtstage.$A$3:$A$55:$Geburtstage.$B$3:$B$55);"")
Auch hier setzen wir wieder SVERWEIS ein, aber diesmal mit einer Ergänzung die dir jetzt nicht mehr ganz unbekannt vorkommen dürfte.

Code: Alles auswählen

=WENN(ZÄHLENWENN($Geburtstage.$A$3:$A$55;B5);SVERWEIS(B5;$Geburtstage.$A$3:$B$55;2;0);"")
Diesmal übernimmt die ZÄHLENWENN in kombination mit WENN eine andere Funktion. Denn WENN überprüft mit dem 1. Argument ob eine Bedingung WAHR oder FALSCH ist. Und da ZÄHLENWENN bei keinem Treffer eine 0 (Null) ausgibt, wertet WENN das als FALSCH aus. Gibt jedoch ZÄHLENWENN irgendeine Zahl aus, so ist das für WENN gleichzusetzen mit WAHR, egal wie groß die zurückgegebene Zahl ist.

Etwas anderes wäre es wenn man z.B. sagen würde:

Code: Alles auswählen

=WENN(ZÄHLENWENN($Geburtstage.$A$3:$A$55;B5)=1;SVERWEIS(B5;$Geburtstage.$A$3:$B$55;2;0);"")
Bei keinem Treffer bleibt es so wie eben erklärt.
Wenn aber ein Datum, warum auch immer, mehrfach vorkommt, also sagen wir mal mindestens 2 mal, so wertet WENN die von ZÄHLENWENN zurückgegebene 2 als FALSCH aus, da 2 nicht das gleiche wie 1 ist. Das hat aber widerum den Nachteil, das überhaupt kein Geburtstagskind angezeigt wird obwohl doch 2 vorhanden sind. Und deshalb ist diese Variante nicht so sehr zu empfehlen. Besser ist die erste vorgestellte Methode ohne "=1".

Auch wenn Du schon die Möglichkeit bietest 2 Geburtstagskinder pro Tag anzeigen zu lassen, so musst Du dir schon Gedanken darüber machen was bei anderen Anwendern deines Kalenders passiert die durchaus mehr als nur 2 Geburtstage pro Tag eintragen. Und deshalb solltest Du zumindest ein Hinweis darauf geben, das in diesem Kalender es nicht möglich ist mehr als 2 Geburtagskinder pro Datum einzutragen.



Nun änderst Du noch das Drehfeld, womit man das Jahr hoch- oder runterzählen kann. Dazu wählst Du in den Einstellungen *Allgemein* bei "Druckbar" NEIN aus.



Kommen wir nun zu der "Bedingten Formatierung".

Spalte B, auf B5.

Code: Alles auswählen

WENN(ODER(WOCHENTAG(B5)=7;WOCHENTAG(B5)=1))
Als erste Bedingung ist sie fehlplaziert, dort gehört die Bedingung für Feiertag rein.
Und außerdem gehört eine WENN-Funktion überhaupt nicht in die "Bedingte Formatierung" rein. Man sollte sich schon mit Logischen Ausdrücken befassen, denn nur um die geht es dort.

Also als 2. Bedingung trägst Du folgendes ein, da dies viel einfacher ist.

Code: Alles auswählen

WOCHENTAG(B5;2)>5
Und das ist schon ein Logischer Ausdruck. Es kommt entweder nur WAHR oder FALSCH dabei raus. Und bei WAHR wird die Formatierung angewendet.

Und als 1. Bedingung kannst Du dies ruhig so belassen, das braucht nicht geändert werden.

Code: Alles auswählen

C5=1
Immer daran denken!
-> Erst den Feiertag, und danach die Wochenenden <-


Spalte D, auf D5.
Das gleiche prozedere wie eben.


Spalte F, auf F5.
Nanu!?
Hier sind auf einmal 3 Bedingte Formatierungen eingetragen?

Aber auch hier lässt sich einiges ändern.

1. Bedingung:
Für den Feiertag wie eben.
Zellvorlage *Feiertag*

2. Bedingung:

Code: Alles auswählen

WOCHENTAG(B5;2)=6
Zellvorlage *Samstag*


3. Bedingung:

Code: Alles auswählen

WOCHENTAG(B5;2)=7
Zellvorlage *Sonntag*



Spalte G, auf G5.
Tja, da Du ja eben auf meine Anweisung hin die Spalten I und J gelöscht hast, ändern wir nun die Bedingte Formatierung dafür.
Du hattest;
1. Bedingung
Formel ist:

Code: Alles auswählen

J5=1
Zellvorlage *Geburtstag*

Und jetzt machst Du folgendes.
- Von "Formel ist" umschalten auf "Zellwert ist".
- Nun wählst Du in der erscheinenden Auswahlliste "ungleich" aus,
- und rechts daneben gibst Du einfach das hier ein ""


Jetzt den Bereich B5 bis G5 markieren, und um eine Zeile nach unten kopieren.

Nun wechselst Du in die Zelle B6.
Dort kommt jetzt

Code: Alles auswählen

=B5+1
rein.
Nun kannst Du den Zellbereich B6 bis G6 markieren und nach unten bis zur Zeile 35 runterziehen.


Und damit wäre der 1. Grundstock für die folgenden Monate erledigt. Weiter gehts mit den anderen Monaten.

- Markiere den Zellbereich A2 bis H36.
- Kopiere diesen.
- Wähle Zelle A39 an.
- Füge den kopierten Bereich hier ein.
- Lösche das Drehfeld.
- Ändere B39 wie folgt:

Code: Alles auswählen

=DATUM(G39;MONAT(B2)+1;1)
- Ändere G39 auf

Code: Alles auswählen

=$G$2
- Markiere den Zellbereich A39 bis H73.
- Kopiere diesen.
- Wähle Zelle A76 an.
- Füge den kopierten Bereich hier ein.

Und was siehst Du jetzt?
Der Monatsname hat sich ganz automatisch umgestellt.

Du brauchst jetzt nur noch den eben kopierten Bereich immer an den dafür vorgesehenen Stellen wieder einzufügen.
Danach machst Du noch etwas Feintuning, wie z.B. die Monate mit weniger als 31 Tagen etwas nacharbeiten.

Ich hoffe mir ist jetzt kein Fehler unterlaufen. Ansonsten darfst Du mich ruhig anmäääkkäärn ;-)

Bei Problemen oder sonstige Fragen dazu, einfach hier melden.

Viel Spaß auch noch



Gruß
balu

redeagle56
Beiträge: 39
Registriert: Sa 26. Sep 2015, 20:37

Re: Kalender erstellen

Beitrag von redeagle56 » Do 25. Feb 2016, 10:36

Hallo BALU,
vielen Dank für die Hilfe bei der Kalendererstellung. Klappt prima. Bis auf eine Kleinigkeit.
Wenn das Jahr keinen 29. Februar hat, dann komme ich mit der Bedingten Formatierung nicht klar.
In der Spalte Feiertage wird die Zelle mit der Hintergrundfarbe für Feiertage dargestellt.
Ich habe schon die verschiedensten Bedingten Formatierungen versucht, hatte aber bisher keinen Erfolg.

Hast Du einen Vorschlag?

MfG redeagle56
Dateianhänge
Kalender redeagle56.ods
(47.94 KiB) 65-mal heruntergeladen

balu
Beiträge: 150
Registriert: Di 12. Okt 2010, 11:35

Re: Kalender erstellen

Beitrag von balu » Do 25. Feb 2016, 21:21

Hallo redeagle56,
vielen Dank für die Hilfe bei der Kalendererstellung. Klappt prima.
Freut mich wirklich zu hören, weiß ich doch dadurch das meine Arbeit nicht umsonst war. Danke schön :D

Bis auf eine Kleinigkeit.
Wenn das Jahr keinen 29. Februar hat
Ja, ja! Dieser böse Februar! Das der aber auch immer aus der Reihe tanzen muss, frechheit. :lol:

Das ist jetzt so eine Geschmacksache wie man das Problem lösen will, da es verschiedene Methoden gibt.

Du weißt schon, das CALC die Funktion =ISTSCHALTJAHR() zur Verfügung stellt!? Damit kann man den Februar auf seine Anzahl an Tagen hin begrenzen.
Gib in B73 folgendes ein.

Code: Alles auswählen

=ISTSCHALTJAHR(B68)
Zelle B70

Code: Alles auswählen

=WENN(F72=1;DATUM($G$2;2;29);"")
änderst Du wie folgt

Code: Alles auswählen

=WENN(B73=1;B69+1;"")
Die überprüfung ob in B73 eine 1 für Schaltjahr steht, setzt Du auch noch in den anderen Formelzellen in der Zeile 70 mit ein.

Das mit ISTSCHALTJAHR ist eine Methode, weil kurz und knackig und einfach.

dann komme ich mit der Bedingten Formatierung nicht klar.
In der Spalte Feiertage wird die Zelle mit der Hintergrundfarbe für Feiertage dargestellt.
Ich habe schon die verschiedensten Bedingten Formatierungen versucht, hatte aber bisher keinen Erfolg.
Dein Gedankengang auf Überprüfung ob D70 leer ist, ist ja als solches nicht ganz verkehrt, da Du Informationen aus einer Zelle auslesen und verarbeiten willst. Aber das alleine hilft nicht weiter, da Du ja mindestens 2 zu verarbeitende Informationen brauchst. Und zwar einerseits ob die zu überprüfende Zelle einen Inhalt hat, UND ob die Zelle, wenn sie einen Inhalt hat, einen bestimmten Wochentag entspricht.

Hmmm!
Hört sich irgendwie kompliziert an. Ist es aber eigentlich gar nicht, wenn man sich dies "hinter die Ohren" schreibt.
balu hat geschrieben: Man sollte sich schon mit Logischen Ausdrücken befassen, denn nur um die geht es dort.
Nein! Um Gottes Willen nein! Ich mache dir absolut keine Vorwürfe. Ich will dir nur das eine oder andere erklären.

In den Formeln in einer CALC-Zelle wird auch sehr oft mit Logischen Ausdrücken gearbeitet. Beispiel hatte ich ja schon an Hand der WENN() erklärt. Und damit will ich sagen, das Du auch ohne Probleme in einer Zelle dich mit Logischen Ausdrücken befassen kannst um dafür ein Gespürr zu bekommen.
Mal ein totales einfaches und simples Beispiel:
In A1 in B1 und in C1

Code: Alles auswählen

=A1=B1
Das Ergebnis wird dir sogar mit einem Wort mitgeteilt, und zwar WAHR.
Und wenn Du jetzt in den Optionen das Anzeigen von Nullwerten aktivierst, dann lösche mal A1. Und Du wirst sehen, auch jetzt wird wieder das Ergenis in einem Wort mitgeteilt: FALSCH.

Mit anderen Worten; das kann man als "vergleichende Logik" bezeichnen.

Und jetzt kommen wir zur "Multiplizierende Logik".
Bei dieser Logik wird entweder 1 oder 0 zurückgegeben. Wobei 1 für WAHR und 0 für FALSCH steht.
Beispiel:
In A1

Code: Alles auswählen

Hallo
in B1

Code: Alles auswählen

2016
und in C1

Code: Alles auswählen

=ISTTEXT(A1)*ISTZAHL(B1)
Ergebnis wird wie folgt lauten: 1
ISTTEXT und ISTZAHL(B1) einzeln in eine seperate Zelle geschrieben ergeben einzeln WAHR.
Und WAHR mal WAHR ergibt wohl auch wieder WAHR, wird jetzt aber zur 1.
Lösche jetzt wieder die A1, und es kommt 0 dabei raus.

Das ganze habe ich jetzt mal etwas ausführlicher beschrieben, um dir die Angst vor den"Logischen Ausdrücken" zu nehmen, und um dich auf das folgende vorzubereiten.

Du hast in der bedingten Formatierung in F70 folgende Formel stehen.

Code: Alles auswählen

WOCHENTAG(B70;2)>5
Die ist ja auch soweit korrekt. Nur müssen wir ja wegen ende Februar, wie oben schon gesagt, 2 Informationen auswerten. Und das geht jetzt ganz easy.

Code: Alles auswählen

ISTZAHL(B70)*WOCHENTAG(B70;2)>5
Also!
Nur wenn B70 eine Zahl beinhaltet (ein Datum) UND wenn B70 der Wochentag Samstag oder Sonntag ist, dann wird die Bedingte Formatierung angewendet.

Wenn man das einmal verstanden hat, dann ist das eine sehr hilfreiche Sache. ;)


Wünsche dir viel Erfolg und Spaß.



Gruß
balu

redeagle56
Beiträge: 39
Registriert: Sa 26. Sep 2015, 20:37

Re: Kalender erstellen

Beitrag von redeagle56 » Fr 4. Mär 2016, 18:33

Hallo Balu,
vielen Dank für Deine Hilfe bei der Erstellung eines Kalenders. Ich habe mich weiter in die Sache vertieft und wie ich glaube, einen ganz passablen, persönlichen Kalender kreiert.
Ich hänge den Kalender als Datei an.
Bis zum nächsten Problemchen.

Habe weiter gebastelt und stelle die 2 Kalender zur Verfügung.
Gruß redeagle56
Dateianhänge
Kalender 2.ods
(80.89 KiB) 103-mal heruntergeladen
Kalender 1.ods
(390.29 KiB) 82-mal heruntergeladen

Antworten