(HILFE) dynamischer Kalender

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Kosmo
Beiträge: 5
Registriert: Mi, 18.11.2015 20:40

(HILFE) dynamischer Kalender

Beitrag von Kosmo »

Hallo Leute,
ich verusche mich an einem dynamischen Kalender. (mit eigentlich so gut wie keinem Wissen) :D
Habe mehrere OpenOffice Kalender geladen und angeschaut doch leider war nie etwas dabei, was mich zu 100 % zufrieden gestellt hatten.
Natürlich habe ich mich bei verschiedenen Kalendervorlagen an Formeln bedient um den Kalender so hinzubekommen wie er jetzt ist.

Ich haben bei "meinem" Kalender zwei Probleme, die ich einfach nicht finden kann und nicht ausmerzen kann;(
und hoffe auf eure Hilfe.
Aktuell wird z.B. in den Monaten die weniger als 31 Tage haben in den offenen bzw. leeren Tagen der 2. Weihnachtstag mit angezeigt, aber der gehört da ja nicht hin.
Außer ich trage bei Heilige drei Könige ein "Ja" ein dann sind ie 2.Weihnachtstage weg aber
der Tag ist bei mir leider kein Feiertag.

Im Anhang hab ich den Kalender angefügt damit ihr mal drüber schauen könnt.
Wenn der Fehler raus ist , wäre er für mich zu 99% perfekt ;P

vielen dank
PS: aktuell nutze ich AOO 4.1.2.
Dateianhänge
Jahreskalender_ganz neu.ods
(112.66 KiB) 276-mal heruntergeladen
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: (HILFE) dynamischer Kalender

Beitrag von balu »

Hallo Kosmo,

ich spreche aus langjähriger Erfahrung, dass ein Feiertagsbereich von weit über 65000 Zeilen einfach übertrieben ist. Es reichen höchstens 100. Meinetwegen auch 365, für jeden Tag einen.

Also das hier

Code: Alles auswählen

=WENN(ISTFEHLER(INDEX($Feiertage.$A$2:$A$65536;VERGLEICH(H64;$Feiertage.$A$1:$A$65536;0)))=WAHR();"";1)
 
auf das hier ändern.

Code: Alles auswählen

=WENN(ISTFEHLER(INDEX($Feiertage.$A$2:$A$100;VERGLEICH(H64;$Feiertage.$A$1:$A$100;0)))=WAHR();"";1)
 
Und am besten schmeißt Du gleich diese Technik vollkommen über Bord. Du willst wissen ob das zu suchende Datum ein Feiertag ist, und wenn Ja, dann soll eine 1 ausgegeben werden. Na dann machs dir doch einfacher.

Code: Alles auswählen

=WENN(ZÄHLENWENN($Feiertage.$A$1:$A$100;H64);1;"")
 
So, und nun zu deinem eigentlichen Problem.
Nun musst Du noch eine Überprüfung einbauen um festzustellen ob in deiner Datumsspalte überhaupt ein Datum vorhanden ist. Und das wird in die vorige Formel noch mit eingebaut

Code: Alles auswählen

=WENN(ZÄHLENWENN($Feiertage.$A$1:$A$100;H64)*(H64<>"");1;"")
 
und schon hast Du ein Problem weniger.

Ach ja! Les dir ruhig mal die Hilfe zu VERWEIS durch, denn die erklärt eigentlich warum der 2.Weihnachtstag ausgegeben wird. Wenn Du es nicht verstehst, dann frag noch mal nach. Okay!?


Du gehst davon aus, das deine Feiertagsliste immer aufsteigend sortiert ist. Darauf würde ich mich nicht verlassen. Setze also nicht =VERWEIS() ein, da sie eine aufsteigend sortierte Liste voraussetzt. Nimm lieber =SVERWEIS()
Also das hier weg damit

Code: Alles auswählen

=WENN(L65=1;VERWEIS(H64;$Feiertage.$A$1:$A$65536;$Feiertage.$C$1:$C$65536);"")
 
und dafür sicherheitshalber die hier.

Code: Alles auswählen

=WENN(L65=1;SVERWEIS(H64;$Feiertage.$A$1:$C$100;3;0);"")
 
Nun kann die Liste auch unsortiert sein.


Und zu guter letzt, für heute.
Die Datumhandhabung im Blatt *Feiertage* würde ich einfacher gestalten.
Anstatt diese hier

Code: Alles auswählen

=WENN(B2="ja";DATWERT(VERKETTEN("01.01.";$Kalender.$A$1));"")
 
ganz einfach das.

Code: Alles auswählen

=WENN(B2="ja";DATUM($A$1;1;1);"")
 
Okay, einen kleinen schönheitsfehler gibt es dabei. Mann muss sich angewöhnen das erst das Jahr, dann der Monat und zu letzt der Tag angegeben wird.


Übrigens. Schön das sich mal wieder einer an Kalender in Calc ran wagt. Ist so selten geworden in letzter Zeit. Dann bin ich wenigstens nicht mehr ganz so alleine. :D



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
mikeleb
*******
Beiträge: 1412
Registriert: Fr, 09.12.2011 16:50

Re: (HILFE) dynamischer Kalender

Beitrag von mikeleb »

Hallo,

balu hat ja schon eine Menge Infos gegeben.
Ich habe mal an deiner Datei herumgeändert (Spalten entfernt, Formeln umgeschrieben, ...) - schau's dir mal an.
Dateianhänge
Jahreskalender_ganz neu.ods
(133.28 KiB) 223-mal heruntergeladen
Gruß,
mikeleb
Kosmo
Beiträge: 5
Registriert: Mi, 18.11.2015 20:40

Re: (HILFE) dynamischer Kalender

Beitrag von Kosmo »

ihr zwei seit der hammer,

vielen vielen dank
einmal fürs erklären und einmal danach noch fürs machen :D
hab ein richtig breites grinsen im Gesicht.

@mikeleb: wie schnell hast du das so umgeschrieben?
Dafür hätte ich Tage gebraucht, da ich jede einzelen Zeile geändert hätte.
Ich hätte viel zu viel Angst nur den Januar umzuschreiben und dies dann nach rechts zu ziehen... :D

Das passt so perfekt für mich.
nur eine kleine Sache verstehe ich nicht bei der Tabelle Geburtstage,
ist zwar nur ein Schönheitsfehler aber nunja. ;)

es wird der erste geburtstagstermin in b2 eingetragen aber der rechnet
das irgendwie hinten in e2 und in f falsch aus ist in dem Hauptkalender richtig eingepflegt?
In den Nachfolgenden Zeilen rechnet er es wiederrum richtig aus.
Hier wird das Datum aber in (MM.TT.JJ) angezeigt, obwohl die Formatierung (TT.MM.JJ) ist.

Habt ihr hierbei noch ein Tipp für mich.

Danke nochmals.. ^^
Unbenannt.JPG
Unbenannt.JPG (33.92 KiB) 5474 mal betrachtet
Dateianhänge
Jahreskalender_ganz neu2.ods
(82.75 KiB) 130-mal heruntergeladen
Hiker
******
Beiträge: 593
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: (HILFE) dynamischer Kalender

Beitrag von Hiker »

Kosmo hat geschrieben:In den Nachfolgenden Zeilen rechnet er es wiederrum richtig aus.
Hier wird das Datum aber in (MM.TT.JJ) angezeigt, obwohl die Formatierung (TT.MM.JJ) ist.
Die Funktion DATUM erwartet die Parameter Jahr,Monat, Tag in dieser Reihenfolge.
Wenn DU die Parameter vertauscht Jahr, TAG, MONAT wird ein falsches Datum berechnet.
Wie soll die Funktion denn erkennen ob Du den 5.11. oder den 11.5. meinst?
Die Formatierung regelt dann nur das Anzeigeformat der falsch berechneten Werte.

Tipp für Testdaten: Eindeutige Daten nehmen - 31.1.2018 lässt sich nicht als 1.Tag des 31. Monats
interpretieren... Alternativ als Format "1 Jan 18", dann sieht Du auch sofort was der Monat ist.

MfG, Jörn
Libre Office 6.3.1 (Win 10 Pro) / Libre Office 6.0.7 (Win8.1 Pro, Win 7 Pro) / AOO (Win 7)
Kosmo
Beiträge: 5
Registriert: Mi, 18.11.2015 20:40

Re: (HILFE) dynamischer Kalender

Beitrag von Kosmo »

:mrgreen:

daumen hoch...

danke
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: (HILFE) dynamischer Kalender

Beitrag von balu »

Hallo!

Neuer Tag, neues Glück.


@Kosmo

Code: Alles auswählen

=WENN(MONAT(A6+1)=MONAT(A$6);A6+1;"")
Ich weiss nicht woher Du das hast, aber bei so einem Kalender ist das absoluter Blödsinn. Es gibt nur einen einzigen Monat im Jahr wo man das zum Monatsende anwenden kann, aber doch nicht schon ab dem 2. Tag in jedem Monat und das bis zum Monatsende.

Bei so einen aufgebauten Kalender mit festen Datum gibt es nur eine Devise: "Machs dir leicht, machs einfach!"

Das heißt; Du hast doch schon in der 4. Zeile (z.B. A4) ein Datum stehen.

Code: Alles auswählen

=DATUM($A$1;1;1)
Und nun noch in A6 einfach =A4.
Und ab dem 2. Tag wird ganz einfach wie folgt gerechnet.
In A8 =A6+1
In A10 =A8+1
... etc.
und das bis zum Monatsende.

Nur beim Februar macht die obige Formel Sinn. Und dort dann wie mikeleb es schon gemacht hat, in die Zelle D62.

Code: Alles auswählen

=WENN(MONAT(D60+1)=MONAT(D$6);D60+1;"")
Natürlich könnte man auch einfach in der Datumspalte die Zahlen 1 bis 31 eintragen, aber dann wird das mit einer Datumsberechnung schon wieder etwas umständlicher da dann jedesmal erst ein Datum generiert werden muss, wenn man auf die Datumspalte zugreift. Also lassen wir das lieber sein.



@mikeleb
Du hast bei den beiden folgenden Formeln

Code: Alles auswählen

=WENN(ODER(ISTFEHLER(SVERWEIS(A6;geburtstag;2;0));A6="");"";SVERWEIS(A6;geburtstag;2;0))

=WENN(ODER(ISTFEHLER(SVERWEIS(A6;feiertag;3;0));A6="");"";SVERWEIS(A6;feiertag;3;0))
mit benannten Namensbereichen gearbeitet. Und das ist schon mal nicht schlecht. Aber diese Formeln lassen sich noch etwas übersichtlicher gestalten, indem man den Datumspalten für Feiertag und Geburtstag auch einen Namen vergibt und diese Spalte dann ganz einfach per ZÄHLENWEN durchsucht, dass dann wie folgt aussieht.

Code: Alles auswählen

=WENN(ZÄHLENWENN(GeburtstagDatum;A6);SVERWEIS(A6;geburtstag;2;0);"")

=WENN(ZÄHLENWENN(FeiertagDatum;A6);SVERWEIS(A6;feiertag;3;0);"")
Du hast so gesehen schon den Grundstein für einen wartungsfreundlicheren Kalender gelegt, und das wollen wir doch gleich mal weiter ausnutzen.

Meinen Formeln vergeben wir auch einen Namen.

Code: Alles auswählen

=WENN(ZÄHLENWENN(GeburtstagDatum;A6);SVERWEIS(A6;geburtstag;2;0);"")
Name => GEBURTSTAGnamen

Code: Alles auswählen

=WENN(ZÄHLENWENN(FeiertagDatum;A6);SVERWEIS(A6;feiertag;3;0);"")
Name => FEIERTAGnamen

Und für den 29. Februar ergänzen wir die Namenformel um das.
In F62

Code: Alles auswählen

=WENN(D62<>"";GEBURTSTAGnamen;"")
In F63

Code: Alles auswählen

=WENN(D62<>"";FEIERTAGnamen;"")
Und damit er noch wartungsfreundlicher wird, nehmen wir uns als nächstes das Thema Kalenderwoche vor.

Code: Alles auswählen

=WENN(WOCHENTAG(A6;2)=1;KALENDERWOCHE(A6;2);"")
Dieser Formel ordnen wir den Namen
KalenderwochenNr
zu. Bis auf den 29. Februar, wo wir die Formel wieder leicht ergänzen.

Code: Alles auswählen

=WENN(D62<>"";KalenderwochenNr;"")


Und zu guter letzt habe ich für den 29. Februar die Bedingte Formatierung etwas modifiziert. Einfach anschauen.



Gruß
balu
Dateianhänge
Jahreskalender_ganz neu_balu.ods
(40.27 KiB) 154-mal heruntergeladen
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
mikeleb
*******
Beiträge: 1412
Registriert: Fr, 09.12.2011 16:50

Re: (HILFE) dynamischer Kalender

Beitrag von mikeleb »

Hallo,

in meinem Vorschlag vergaß ich noch zu erwähnen, dass auf dem Tabellenblatt "Geburtstage" die Spalten E bis I nun überflüssig sind. Das Datum wird in der ausgeblendeten Spalte C bestimmt (balu hat's gemerkt :) ).
@balu: Schöne Erläuterungen!
Gruß,
mikeleb
Kosmo
Beiträge: 5
Registriert: Mi, 18.11.2015 20:40

Re: (HILFE) dynamischer Kalender

Beitrag von Kosmo »

ihr seit echt krass........ :shock: :D

sehr cool.
Aber mal ne Verständnisfrage:
Wie funktionert das mit der Namensgebung?
Also man kann ja nicht einfach in die Zelle eintragen...
"GEBURTSTAGnamen" oder "FEIERTAGnamen"
und das Programm erkennt dann direkt, dass er danach suchen soll..??
Das Programm muss doch wissen wie und wo es schauen soll...
-------> habs entdeckt... nennt sich wohl Bereichsnamen in der Navigator Anzeige... ^^

Ich weiß zwar auch wie ich es generieren kann, dass beim Geburtstag das Alter der Person angezeigt wird.
z.B. Peter Müller (55)
aber was passiert wenn man zwei Personen hat die am selben Tag Geburtstag haben und man beide angezeigt bekommen möchte mit dem Alter ?
Wäre dies einfach zu gestalten?
Wenn ja wie?

Es sollte dann sozusagen in dem Kalender
Peter Müller (55), Hans Werner (65)
stehen

Hoffe Ihr versteht was ich meine :lol:
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: (HILFE) dynamischer Kalender

Beitrag von balu »

Moin moin!

Es ist immer wieder schön, wenn man Lob und Anerkennung bekommt. Danke dafür. :D
Kosmo hat geschrieben: Aber mal ne Verständnisfrage:
Wie funktionert das mit der Namensgebung?
Also man kann ja nicht einfach in die Zelle eintragen...
"GEBURTSTAGnamen" oder "FEIERTAGnamen"
Tja, das ist für den Anfang auch gar nicht so einfach. Aber Du siehst ja schon mal das es funktioniert, und anhand einer funktionierenden Formel kann man irgendwie besser lernen.

Also, es gibt hier im Forum reichlich Lesestoff dazu. Einfach nach "NamenFürFormeln" suchen. Oder einen Blick ins Wiki werfen.
NamenFürZellen
NamenFürFormeln
Wenn man einmal das Prinzip verstanden hat, wird es mit der Zeit sehr leicht.

Ein extrem kurzer Überblick.
Um zu sehen welche Namen für Formeln oder Zellbereiche vergeben sind, drückt man einfach "Strg" + "F3". Oder; ->Menü ->Einfügen ->Namen -->Festlegen
Will man eine existierende Formel für Namen ändern, also die hinterlegte Formel, so muss man die Zellmarkierung auf dem dementsprechenden Namen setzen (z.B. auf C3) und dann die eben genannte Tastenkombination aufrufen. Nun kann man die Formel ändern.

Wie zu sehen ist, hatte ich die benannten Zellbereiche in die NamenFürFormeln integriert. Dabei ist es extrem wichtig, dass man erst die Namen vergibt und dann die Formel mit den vergebenen Namen erstellt. Das heißt beispielsweise, erst die Namen für die Zellbereiche vergeben, und das Fenster mit OK beenden. Danach wieder dies Fenster aufrufen und dann die Formel erstellen. Gibt man beides in einem rutsch ein, ohne das Fenster zu schließen, so wird es zwangsläufig zu Fehlermeldungen kommen.


Kosmo hat geschrieben: aber was passiert wenn man zwei Personen hat die am selben Tag Geburtstag haben und man beide angezeigt bekommen möchte mit dem Alter ?
Wäre dies einfach zu gestalten?
Machbar ist es. Aber von einfach, glaube es mir, keine Spur.

Deinen Kalender hatte ich schon vor Jahren erstellt, jedoch mit folgenden Ergänzungen: Ferien und Mondphasen. Und er kann außerdem maximal 3 Ereignisse pro Tag anzeigen.

Er ist wohl nicht wie deiner für DIN-A3, sondern für DIN-A4 ausgelegt und das Jahr ist auf 2 Blätter aufgeteilt nicht so wie deiner wo das Jahr auf ein Blatt passt.
Bist neugierig?
Dann downloade ihn dir hier.

Ohne die Hilfe der Forenmitglieder hier hätte ich ihn auf gar keinen Fall damals so hinbekommen, besonders das mit mehreren Ereignissen pro Tag. Natürlich habe ich auch meinen Teil dazu beigetragen damit er so ist, wie er ist. Wobei ich eben feststellen musste das mir da noch ein winzig kleiner Schönheitsfehler bei den Namen für Formeln unterlaufen ist. Aber es funktioniert trotzdem alles so wie es soll, und darauf kommt es an.

Aber schau ihn dir einfach mal mit sehr viel Zeit und Ruhe an. Und wenn Du das mit den Namen für Formeln, besondsers das mit dem Überblick verstanden hast, dann kannst Du den Kalender auch besser durchblicken.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Teddy62
*
Beiträge: 12
Registriert: Fr, 24.10.2014 13:07

Re: (HILFE) dynamischer Kalender

Beitrag von Teddy62 »

Ich möchte auch mal helfen.
Ich habe einen Kalender entwickelt, der auf Beispielen aus dem Forum beruht. Balu hat viel dazu beigetragen.
Kallender_Teddy62.ods
(30.42 KiB) 238-mal heruntergeladen
Kosmo
Beiträge: 5
Registriert: Mi, 18.11.2015 20:40

Re: (HILFE) dynamischer Kalender

Beitrag von Kosmo »

hi,
danke nochmal an alle !
werde mich die nächsten Tage nochmal hinsetzen und schaue mir die Kalender von euch nochmal genauer an.
Habe Sie eben nur mal schnell überflogen.

@Teddy62: deiner ist super für Leute, die in Schichtarbeit sind, ich denke mal mein Bruder könnte ihn gebrauchen :D

@balu: danke für deine ganzen tipps und fürs drüber schauen und umschreiben des Kalenders. Der Dank geht natürlich auch an mikeleb.
Den Kalender muss ich mir defintiv in Ruhe anschauen da gibts einiges zu beobachten.
Vielen Dank auch dafür.


schönes Wochenende euch allen.

Cheers
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: (HILFE) dynamischer Kalender

Beitrag von balu »

Hallo Kosmo,
Den Kalender muss ich mir defintiv in Ruhe anschauen da gibts einiges zu beobachten.
Ja, da gibts so manches was für einen Anfänger interessant aussieht ;-).

Aber verderbe ich dir jetzt die Lust am studieren, wenn ich dir sage, dass ich deinen Wunsch mit mehreren Geburtstagen pro Kalendertag -{momentan sinds 3 pro Tag}- schon in deinen Kalender integriert habe?
Das System beruht wohl auf dem vom QUERKALENDER, welches ich aber etwas überarbeitet habe. Und es ist momentan nicht auf 2 Blätter aufgeteilt, sondern um das System etwas leichter zu überblicken können auf einem einzigen Blatt untergebracht.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Antworten