Home / EasyLinux / 2013 / 01 / Kalender basteln mit LibreOffice

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Große Klappe

Kalender basteln mit LibreOffice

Ermittlung der Kalenderwoche

Am Montag soll der Kalender ansonsten neben dem Wochentag auch die aktuelle Kalenderwoche anzeigen. Dazu müssen Sie die bisherige Formel in der Zelle B38 abändern:

=WENN(WOCHENTAG(A38)=2;TEXT(A38;"TTT")&"   KW "  &KALENDERWOCHE(A38;1);A38)

Diese Formel prüft an jedem Tag, ob der Wochentag der besagten Zelle ein Montag ist (WOCHENTAG = 2). Ist dies der Fall, weist Calc den Kalendertag dieser Zelle mit dem Format-Code TTT – wie oben beschrieben – als Text aus. Dann folgen der Text " KW " (drei Leerzeichen vor KW, eines danach) sowie die errechnete Kalenderwoche (KALENDERWOCHE(A38;1)). Zusätzlich müssen Sie den Inhalt der Zelle linksbündig ausrichten und als Format-Code wieder TTT angeben. Doch tragen Sie auch diese Formel noch nicht kalenderweit ein, es geht noch weiter mit den Feiertagen.

Feiertage einfügen

Für Feiertage gibt es leider keine eingebaute Funktion, die Calc abfragen könnte. Deshalb müssen Sie selbst eine Feiertagsliste anlegen, solche Listen finden Sie zum Beispiel hier [1]. Diese fügen Sie in einem freien Bereich der Kalendertabelle ein – beispielsweise irgendwo rechts daneben oder in einer eigenen Tabelle. Anschließend vergleichen Sie die Datumsangaben des Kalenders mit dieser Liste und weisen so Feiertage im Kalender aus. Für dieses Beispiel nehmen wir an, dass Sie die gesamte Liste der Feiertage in der Tabelle2 ablegen. Diese benennen Sie über einen Rechtsklick auf den Reiter Tabelle2 und über den Menüpunkt Tabelle umbenennen in Feiertage um. Im Tabellenbereich A2:A100 (Abbildung 5) fügen Sie die Daten der Feiertage ein, in die Zellen B2:B100 kommen die zugehörigen Namen. In der Zeile 1 sehen Sie die Überschriften.

Die Datumswerte in Spalte A tragen Sie mit Hilfe der Funktion DATUM(Jahr; Monat; Tag) ein, etwa =DATUM(Kalender.A36;12;24) für Heiligabend, =OSTERSONNTAG(Kalender.A36)-2 für Karfreitag, =DATUM(Kalender.A36;1;1) für Neujahr und so weiter. Auf diese Weise verwenden Sie die Liste für jedes Kalenderjahr, das die Zelle A36 der Tabelle Kalender anbietet. Letztere müssen Sie dazu, wie eben gezeigt, von Tabelle1 in Kalender umbenennen, damit jeder Benutzer sofort merkt, um welche Tabellenblätter es sich handelt. Zum Schluss weisen Sie der Liste noch das gewünschte Datumsformat zu, in diesem Fall TT.MM.JJ. Damit die Feiertage auch mit ihrem Namen im Kalender erscheinen, tragen Sie in die danebenliegende Spalte B ihre Namen ein.

Zur einfacheren Handhabung markieren Sie nun den Datumsbereich Feiertage.A2:A100 und versehen ihn über Einfügen / Namen / Festlegen mit dem Namen Feiertage. Da sich der gesamte Feiertagsabschnitt aber auf den Bereich Feiertage.A2:B100 erstreckt, markieren Sie auch diesen und nennen ihn Feiertagsbereich.

Die Spalte C der Tabelle Feiertage enthält zusätzlich sämtliche in Spalte A verwendeten Formeln in lesbarer Form. Möglich macht dies die Funktion =FORMEL() – in Zelle C2 heißt sie etwa =FORMEL(A2).

Abbildung 5

Abbildung 5: Im Internet gibt es zahlreiche Listen, welche die Feiertage nach Bundesländern aufdröseln. Aus ihnen erstellen Sie die Tabelle "Feiertage".

Für die zum Anzeigen des Feiertags verwendete Formel spielt es keine Rolle, ob Sie in die Feiertagsliste zuerst die Feiertagsnamen und dann die Datumswerte oder beides in umgekehrter Reihenfolge eingeben. Sie müssen die Feiertagsliste auch nicht chronologisch sortieren. Die Formel, die diese Bedingungen erfüllt und den Feiertagsnamen liefert, besitzt exemplarisch folgenden Aufbau:

=WENN(ISTNV(VERGLEICH(<Datumskriterium>;
<Datumsbereich des Feiertagsbereich>;0));
"";INDEX(<gesamter Feiertagsbereich>;
VERGLEICH(<Datumskriterium>;
<Datumsbereich des Feiertagsbereich>;0);
<Index der Namensspalte des Feiertagsbereich>))

In der Tabelle Feiertage finden Sie die Feiertage in den Spalten A und B, den gesamten Feiertagsbereich unter Feiertage.A2:B100. Den Datumsbereich des Feiertagsbereich haben Sie bereits mit Feiertage gelabelt (A2:A100). Der Parameter Index der Namensspalte des Feiertagsbereich gibt an, in welcher Spalte des Feiertagsbereichs Sie die Namen der Feiertage finden. Im Beispiel handelt es sich um Spalte B – der Index erhält somit den Wert 2. Gehen Sie weiterhin davon aus, dass Sie das Datumskriterium von Zelle C38 verwenden, lautet die mit Werten gefüllte Formel:

=WENN(ISTNV(VERGLEICH(C38;Feiertage;0));"";
" - "&INDEX(Feiertagsbereich;VERGLEICH(C38;Feiertage;0);2))

Diese prüft zuerst mit Hilfe der Funktion ISTNV(), ob das gesuchte Datum überhaupt in der Feiertagsliste existiert. Die Suche erfolgt über die Funktion VERGLEICH(Suchkriterium; Suchmatrix; Typ), die den Fehlerwert #NV zurück gibt, wenn sie keine Übereinstimmung findet. Dieser Wert lässt die Funktion ISTNV() "wahr" werden, weshalb die umgebende WENN-Abfrage das "Dann-Ergebnis" ausgibt – was hier aus einer leeren Zeichenfolge (zwei Anführungszeichen) besteht.

Bei einer Übereinstimmung erhalten Sie den Feiertagsnamen über die Funktion INDEX(Bezug; Zeile; Spalte; Bereich). Diese liefert den Wert am Schnittpunkt einer Zeile und einer Spalte aus der Feiertagsliste. Aus welcher Zeile der Wert stammt, bestimmt die bereits bekannte Funktion VERGLEICH(), die – im Gegensatz zu anderen Verweisfunktionen – nicht den Wert, sondern die Position der Fundstelle liefert. Die Spaltenposition für die INDEX()-Funktion richtet sich nach dem Aufbau der Feiertagstabelle – in diesem Fall befinden sich die Namen in Spalte 2.

Die komplette verknüpfte Formel in der Zelle D38 sieht am Ende also so aus:

=TEXT(C38;"TTT")&WENN(ISTNV(VERGLEICH(C38;Feiertage;0));
WENN(WOCHENTAG(C38)=2;"   KW "&KALENDERWOCHE(C38;1);"");
" - "&INDEX(Feiertagsbereich;VERGLEICH(C38;Feiertage;0);2))

Geben Sie in die Zelle C38 ein Datum ein, erscheint in der Zelle D38 der Wochentag im Zahlenformat TTT zusammen mit dem Feiertagsnamen oder – wenn es keinen Feiertag gibt und der Wochentag auf einen Montag fällt – zusammen mit der errechneten Kalenderwochennummer. Diese Formel kopieren Sie und fügen sie in allen übrigen Monatstageszellen (etwa Spalte B, D etc.) ein. Eine Ausnahme bildet Zelle F66, die den Wochentag zum 29. Februar anzeigt. Hier stellen Sie vor die eben gezeigte Formel (bei der Sie das = entfernen) noch einen zusätzlichen Teil:

=WENN(MONAT(E65+1)<>MONAT($E$37);"";

Der sorgt dafür, dass der Wochentag auch im Schaltjahr auftaucht.

Tip a friend    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

title_2014_02

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

EasyLinux erscheint vierteljährlich und kostet EUR 9,80. Weitere Informationen zum Heft finden Sie auf der EasyLinux-Homepage.

Das EasyLinux-Jahresabo mit Prämie kostet ab EUR 33,30. Details zum EasyLinux-Jahresabo finden Sie im Medialinx-Shop.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...